Commit a9bda431 authored by Kevin Kaminski's avatar Kevin Kaminski

Merge branch 'kevin-fix-broken-pom-file' into 'dev'

Kevin fix broken pom file

See merge request !24
parents c4da26ab 06cc8d1b
Pipeline #1704 failed with stage
in 38 seconds
......@@ -92,6 +92,11 @@
<artifactId>velocity</artifactId>
<version>1.5</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
<version>2.3.4.RELEASE</version>
</dependency>
<dependency>
<groupId>io.projectreactor.kafka</groupId>
<artifactId>reactor-kafka</artifactId>
......
package com.afp.ordermanagement.config;
import java.util.Properties;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.PropertySource;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.JavaMailSenderImpl;
@ComponentScan(basePackages = { "com.afp.ordermanagement.mail" })
@PropertySource(value={"classpath:application.properties"})
public class MailConfig {
@Value("${spring.mail.host}")
private String mailServerHost;
@Value("${spring.mail.port}")
private Integer mailServerPort;
@Value("${spring.mail.username}")
private String mailServerUsername;
@Value("${spring.mail.password}")
private String mailServerPassword;
@Value("${spring.mail.properties.mail.smtp.auth}")
private String mailServerAuth;
@Value("${spring.mail.properties.mail.smtp.starttls.enable}")
private String mailServerStartTls;
@Bean
public JavaMailSender getJavaMailSender() {
JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
mailSender.setHost(mailServerHost);
mailSender.setPort(mailServerPort);
mailSender.setUsername(mailServerUsername);
mailSender.setPassword(mailServerPassword);
Properties props = mailSender.getJavaMailProperties();
props.put("mail.transport.protocol", "smtp");
props.put("mail.smtp.auth", mailServerAuth);
props.put("mail.smtp.starttls.enable", mailServerStartTls);
props.put("mail.debug", "true");
return mailSender;
}
@Bean
public SimpleMailMessage templateSimpleMessage() {
SimpleMailMessage message = new SimpleMailMessage();
message.setText("This is the test email template for your email:\n%s\n");
return message;
}
}
package com.afp.ordermanagement.controller;
import com.afp.ordermanagement.service.EmailService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class EmailController {
@Autowired
private EmailService emailService;
@GetMapping(value = "/email")
public String sendmail() {
emailService.sendMail(
"kkaminski@nisum.com",
"Email sent successfully!",
"Emails seem to be working properly, yay!"
);
return "sent";
}
}
\ No newline at end of file
......@@ -29,7 +29,7 @@ public class OrderController {
* @param orderObject
* @return
*/
@PostMapping("/ordersFromEcom")
@PostMapping("/orders")
@ResponseStatus(HttpStatus.CREATED)
public Mono<Order> getOrderFromEcom(@RequestBody Order orderObject) {
sender.sendOrderToWarehouse(orderObject);
......@@ -48,7 +48,7 @@ public class OrderController {
return orderService.getOrderById(orderId);
}
@GetMapping("/orders/byCustomer/{customerId}")
@GetMapping("/orders/customer/{customerId}")
public Flux<Order> getAllOrdersByCustomerId(@PathVariable("customerId") String customerId) {
return orderService.getAllOrdersByCustomerId(customerId);
}
......@@ -60,5 +60,9 @@ public class OrderController {
.defaultIfEmpty(ResponseEntity.notFound().build());
}
@DeleteMapping("/orders/{orderId}")
public void deleteOrderbyId(@PathVariable(value = "orderId") String orderId) {
orderService.deleteOrderById(orderId);
}
}
......@@ -36,5 +36,75 @@ public class Order {
this.orderStatus = status;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getOrderTrackingCode() {
return orderTrackingCode;
}
public void setOrderTrackingCode(String orderTrackingCode) {
this.orderTrackingCode = orderTrackingCode;
}
public OrderStatus getOrderStatus() {
return orderStatus;
}
public void setOrderStatus(OrderStatus orderStatus) {
this.orderStatus = orderStatus;
}
public long getOrderCreatedAt() {
return orderCreatedAt;
}
public void setOrderCreatedAt(long orderCreatedAt) {
this.orderCreatedAt = orderCreatedAt;
}
public long getOrderUpdatedAt() {
return orderUpdatedAt;
}
public void setOrderUpdatedAt(long orderUpdatedAt) {
this.orderUpdatedAt = orderUpdatedAt;
}
public String getCustomerId() {
return customerId;
}
public void setCustomerId(String customerId) {
this.customerId = customerId;
}
public String getCustomerEmailAddress() {
return customerEmailAddress;
}
public void setCustomerEmailAddress(String customerEmailAddress) {
this.customerEmailAddress = customerEmailAddress;
}
public List<Item> getOrderItems() {
return orderItems;
}
public void setOrderItems(List<Item> orderItems) {
this.orderItems = orderItems;
}
public CustomerAddress getCustomerAddress() {
return customerAddress;
}
public void setCustomerAddress(CustomerAddress customerAddress) {
this.customerAddress = customerAddress;
}
}
package com.afp.ordermanagement.service;
import com.afp.ordermanagement.model.Order;
import com.afp.ordermanagement.model.OrderStatus;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.stereotype.Service;
@Service
public class EmailService {
private JavaMailSender javaMailSender;
public EmailService(JavaMailSender javaMailSender) {
this.javaMailSender = javaMailSender;
}
public void sendMail(String toEmail, String subject, String message) {
SimpleMailMessage mailMessage = new SimpleMailMessage();
mailMessage.setTo(toEmail);
mailMessage.setSubject(subject);
mailMessage.setText(message);
mailMessage.setFrom("NOREPLY@nisum.com");
javaMailSender.send(mailMessage);
}
public String messageCreator(Order order) {
OrderStatus status = order.getOrderStatus();
String message1 = "message ", message2 = "build failed.";
switch (status) {
case RECEIVED:
message1 = "Hello, you order #" + order.getId() + " has been received!";
message2 = "We hope to have your order fulfilled soon.";
break;
case CANCELLED:
message1 = "I'm sorry, your order #" + order.getId() + " has been canceled.";
message2 = "For more information, contact {NULL}.";
break;
case FULFILLED:
message1 = "Good news everyone! Your order #" + order.getId() + " has been fulfilled.";
message2 = "Your tracking number is: " + order.getOrderTrackingCode();
break;
}
return message1 + message2;
}
public String subjectCreator(Order order) {
String status = "NULL";
switch (order.getOrderStatus()) {
case RECEIVED:
status = "RECEIVED";
break;
case CANCELLED:
status = "CANCELLED";
break;
case FULFILLED:
status = "FULFILLED";
break;
}
return "Your order #" + order.getId() + " has been" + status;
}
public String toCreator(Order order) {
return order.getCustomerEmailAddress();
}
public String emailCreator(Order order) {
String message = messageCreator(order);
String subject = subjectCreator(order);
String to = toCreator(order);
sendMail(to, subject, message);
return "Email sent to customer!";
}
}
......@@ -50,4 +50,8 @@ public class OrderService {
return orderRepository.save(existingOrder);
});
}
public void deleteOrderById(String orderId) {
orderRepository.deleteById(orderId);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment