diff --git a/pom.xml b/pom.xml index 4b2212f..a20db19 100644 --- a/pom.xml +++ b/pom.xml @@ -95,17 +95,17 @@ - - org.flywaydb - flyway-maven-plugin - 9.16.3 - - jdbc:mysql://localhost:3306/ - root - subscription - subscription - - + + org.flywaydb + flyway-maven-plugin + 9.16.3 + + jdbc:mysql://localhost:3306/ + root + subscription + subscription + + org.springframework.boot spring-boot-maven-plugin diff --git a/src/main/java/ada/tech/tenthirty/tvpackages/payloads/PackageRequest.java b/src/main/java/ada/tech/tenthirty/tvpackages/application/payloads/PackageRequest.java similarity index 71% rename from src/main/java/ada/tech/tenthirty/tvpackages/payloads/PackageRequest.java rename to src/main/java/ada/tech/tenthirty/tvpackages/application/payloads/PackageRequest.java index ee301d7..69f2246 100644 --- a/src/main/java/ada/tech/tenthirty/tvpackages/payloads/PackageRequest.java +++ b/src/main/java/ada/tech/tenthirty/tvpackages/application/payloads/PackageRequest.java @@ -1,4 +1,4 @@ -package ada.tech.tenthirty.tvpackages.payloads; +package ada.tech.tenthirty.tvpackages.application.payloads; import lombok.Data; diff --git a/src/main/java/ada/tech/tenthirty/tvpackages/payloads/SubscriptionRequest.java b/src/main/java/ada/tech/tenthirty/tvpackages/application/payloads/SubscriptionRequest.java similarity index 66% rename from src/main/java/ada/tech/tenthirty/tvpackages/payloads/SubscriptionRequest.java rename to src/main/java/ada/tech/tenthirty/tvpackages/application/payloads/SubscriptionRequest.java index bbc5812..707e79d 100644 --- a/src/main/java/ada/tech/tenthirty/tvpackages/payloads/SubscriptionRequest.java +++ b/src/main/java/ada/tech/tenthirty/tvpackages/application/payloads/SubscriptionRequest.java @@ -1,7 +1,7 @@ -package ada.tech.tenthirty.tvpackages.payloads; +package ada.tech.tenthirty.tvpackages.application.payloads; -import ada.tech.tenthirty.tvpackages.entity.StatusSubscription; +import ada.tech.tenthirty.tvpackages.domain.StatusSubscription; import lombok.Data; import java.util.List; diff --git a/src/main/java/ada/tech/tenthirty/tvpackages/payloads/UpdateSubscriptionRequest.java b/src/main/java/ada/tech/tenthirty/tvpackages/application/payloads/UpdateSubscriptionRequest.java similarity index 67% rename from src/main/java/ada/tech/tenthirty/tvpackages/payloads/UpdateSubscriptionRequest.java rename to src/main/java/ada/tech/tenthirty/tvpackages/application/payloads/UpdateSubscriptionRequest.java index 68011fe..1b3d224 100644 --- a/src/main/java/ada/tech/tenthirty/tvpackages/payloads/UpdateSubscriptionRequest.java +++ b/src/main/java/ada/tech/tenthirty/tvpackages/application/payloads/UpdateSubscriptionRequest.java @@ -1,4 +1,4 @@ -package ada.tech.tenthirty.tvpackages.payloads; +package ada.tech.tenthirty.tvpackages.application.payloads; import lombok.Data; diff --git a/src/main/java/ada/tech/tenthirty/tvpackages/payloads/response/PackageResponse.java b/src/main/java/ada/tech/tenthirty/tvpackages/application/payloads/response/PackageResponse.java similarity index 68% rename from src/main/java/ada/tech/tenthirty/tvpackages/payloads/response/PackageResponse.java rename to src/main/java/ada/tech/tenthirty/tvpackages/application/payloads/response/PackageResponse.java index b85d242..21724c0 100644 --- a/src/main/java/ada/tech/tenthirty/tvpackages/payloads/response/PackageResponse.java +++ b/src/main/java/ada/tech/tenthirty/tvpackages/application/payloads/response/PackageResponse.java @@ -1,4 +1,4 @@ -package ada.tech.tenthirty.tvpackages.payloads.response; +package ada.tech.tenthirty.tvpackages.application.payloads.response; import lombok.Data; diff --git a/src/main/java/ada/tech/tenthirty/tvpackages/payloads/response/SubscriptionResponse.java b/src/main/java/ada/tech/tenthirty/tvpackages/application/payloads/response/SubscriptionResponse.java similarity index 56% rename from src/main/java/ada/tech/tenthirty/tvpackages/payloads/response/SubscriptionResponse.java rename to src/main/java/ada/tech/tenthirty/tvpackages/application/payloads/response/SubscriptionResponse.java index 78ed201..f480468 100644 --- a/src/main/java/ada/tech/tenthirty/tvpackages/payloads/response/SubscriptionResponse.java +++ b/src/main/java/ada/tech/tenthirty/tvpackages/application/payloads/response/SubscriptionResponse.java @@ -1,7 +1,6 @@ -package ada.tech.tenthirty.tvpackages.payloads.response; +package ada.tech.tenthirty.tvpackages.application.payloads.response; -import ada.tech.tenthirty.tvpackages.entity.Package; -import ada.tech.tenthirty.tvpackages.entity.StatusSubscription; +import ada.tech.tenthirty.tvpackages.domain.StatusSubscription; import lombok.Data; import java.util.List; diff --git a/src/main/java/ada/tech/tenthirty/tvpackages/rest/SubscriptionController.java b/src/main/java/ada/tech/tenthirty/tvpackages/application/rest/SubscriptionController.java similarity index 70% rename from src/main/java/ada/tech/tenthirty/tvpackages/rest/SubscriptionController.java rename to src/main/java/ada/tech/tenthirty/tvpackages/application/rest/SubscriptionController.java index b41e789..bf3b3ac 100644 --- a/src/main/java/ada/tech/tenthirty/tvpackages/rest/SubscriptionController.java +++ b/src/main/java/ada/tech/tenthirty/tvpackages/application/rest/SubscriptionController.java @@ -1,10 +1,10 @@ -package ada.tech.tenthirty.tvpackages.rest; +package ada.tech.tenthirty.tvpackages.application.rest; -import ada.tech.tenthirty.tvpackages.payloads.SubscriptionRequest; -import ada.tech.tenthirty.tvpackages.payloads.UpdateSubscriptionRequest; -import ada.tech.tenthirty.tvpackages.payloads.response.SubscriptionResponse; -import ada.tech.tenthirty.tvpackages.service.AddPackageSubscription; -import ada.tech.tenthirty.tvpackages.service.CreateSubscription; +import ada.tech.tenthirty.tvpackages.application.payloads.SubscriptionRequest; +import ada.tech.tenthirty.tvpackages.application.payloads.UpdateSubscriptionRequest; +import ada.tech.tenthirty.tvpackages.application.payloads.response.SubscriptionResponse; +import ada.tech.tenthirty.tvpackages.application.service.AddPackageSubscription; +import ada.tech.tenthirty.tvpackages.application.service.CreateSubscription; import ada.tech.tenthirty.tvpackages.utils.SubscriptionConvert; import lombok.RequiredArgsConstructor; diff --git a/src/main/java/ada/tech/tenthirty/tvpackages/service/AddPackageSubscription.java b/src/main/java/ada/tech/tenthirty/tvpackages/application/service/AddPackageSubscription.java similarity index 88% rename from src/main/java/ada/tech/tenthirty/tvpackages/service/AddPackageSubscription.java rename to src/main/java/ada/tech/tenthirty/tvpackages/application/service/AddPackageSubscription.java index 5c7c80b..5cf135f 100644 --- a/src/main/java/ada/tech/tenthirty/tvpackages/service/AddPackageSubscription.java +++ b/src/main/java/ada/tech/tenthirty/tvpackages/application/service/AddPackageSubscription.java @@ -1,4 +1,4 @@ -package ada.tech.tenthirty.tvpackages.service; +package ada.tech.tenthirty.tvpackages.application.service; import org.springframework.stereotype.Service; diff --git a/src/main/java/ada/tech/tenthirty/tvpackages/application/service/CreateSubscription.java b/src/main/java/ada/tech/tenthirty/tvpackages/application/service/CreateSubscription.java new file mode 100644 index 0000000..311eb5c --- /dev/null +++ b/src/main/java/ada/tech/tenthirty/tvpackages/application/service/CreateSubscription.java @@ -0,0 +1,73 @@ +package ada.tech.tenthirty.tvpackages.application.service; + +import ada.tech.tenthirty.tvpackages.domain.Package; +import ada.tech.tenthirty.tvpackages.domain.Subscription; +import ada.tech.tenthirty.tvpackages.domain.User; +import ada.tech.tenthirty.tvpackages.application.payloads.SubscriptionRequest; +import ada.tech.tenthirty.tvpackages.infra.queue.NotifyInvoiceProducer; +import ada.tech.tenthirty.tvpackages.infra.queue.ScheduleTechnicalVisitProducer; +import ada.tech.tenthirty.tvpackages.infra.queue.payloads.NotifyInvoiceRequest; +import ada.tech.tenthirty.tvpackages.infra.queue.payloads.ScheduleTechnicalVisitRequest; +import ada.tech.tenthirty.tvpackages.infra.repository.SubscriptionRepository; +import ada.tech.tenthirty.tvpackages.infra.repository.UserRepository; +import ada.tech.tenthirty.tvpackages.utils.FormatDate; +import ada.tech.tenthirty.tvpackages.utils.SubscriptionConvert; +import com.fasterxml.jackson.core.JsonProcessingException; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +@RequiredArgsConstructor +@Slf4j +public class CreateSubscription { + private final SubscriptionRepository subscriptionRepository; + private final UserRepository userRepository; + private final ScheduleTechnicalVisitProducer technicalVisitQueue; + private final NotifyInvoiceProducer notifyInvoiceQueue; + + + public Subscription execute(SubscriptionRequest subscriptionRequest) { + User user = new User(); + user.setTransactionId(subscriptionRequest.getUserId()); + userRepository.save(user); + + Subscription subscription = SubscriptionConvert.toEntity(subscriptionRequest); + subscription.setUser(user); + subscriptionRepository.save(subscription); + + ScheduleTechnicalVisit(subscriptionRequest.getTransactionId(), true); + NotifyInvoice(subscriptionRequest.getUserId(), subscription.getListPackage()); + return subscription; + } + + private void ScheduleTechnicalVisit(String idUser, Boolean newUser){ + ScheduleTechnicalVisitRequest scheduleTechnicalVisitRequest = new ScheduleTechnicalVisitRequest(); + scheduleTechnicalVisitRequest.setIdUser(idUser); + scheduleTechnicalVisitRequest.setNewUSer(newUser); + + try { + technicalVisitQueue.execute(scheduleTechnicalVisitRequest); + } catch (JsonProcessingException e) { + log.error("Não foi possível enviar a mensagem ao destinatário", e); + throw new RuntimeException(e); + } + } + + private void NotifyInvoice(String idUser, List listPackage){ + NotifyInvoiceRequest notifyInvoiceProducer = new NotifyInvoiceRequest(); + + notifyInvoiceProducer.setIdUser(idUser); + notifyInvoiceProducer.setIssueDate(FormatDate.dayMothYears()); + notifyInvoiceProducer.setListPackage(listPackage); + + try{ + notifyInvoiceQueue.execute(notifyInvoiceProducer); + } catch (JsonProcessingException e) { + log.error("Não foi possível enviar a mensagem ao destinatário", e); + throw new RuntimeException(e); + } + } +} diff --git a/src/main/java/ada/tech/tenthirty/tvpackages/service/GetOpenInvoice.java b/src/main/java/ada/tech/tenthirty/tvpackages/application/service/GetOpenInvoice.java similarity index 87% rename from src/main/java/ada/tech/tenthirty/tvpackages/service/GetOpenInvoice.java rename to src/main/java/ada/tech/tenthirty/tvpackages/application/service/GetOpenInvoice.java index d1bc88f..90b1517 100644 --- a/src/main/java/ada/tech/tenthirty/tvpackages/service/GetOpenInvoice.java +++ b/src/main/java/ada/tech/tenthirty/tvpackages/application/service/GetOpenInvoice.java @@ -1,4 +1,4 @@ -package ada.tech.tenthirty.tvpackages.service; +package ada.tech.tenthirty.tvpackages.application.service; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/src/main/java/ada/tech/tenthirty/tvpackages/service/GetSubscriptionById.java b/src/main/java/ada/tech/tenthirty/tvpackages/application/service/GetSubscriptionById.java similarity index 63% rename from src/main/java/ada/tech/tenthirty/tvpackages/service/GetSubscriptionById.java rename to src/main/java/ada/tech/tenthirty/tvpackages/application/service/GetSubscriptionById.java index 2fe86fd..295426e 100644 --- a/src/main/java/ada/tech/tenthirty/tvpackages/service/GetSubscriptionById.java +++ b/src/main/java/ada/tech/tenthirty/tvpackages/application/service/GetSubscriptionById.java @@ -1,7 +1,7 @@ -package ada.tech.tenthirty.tvpackages.service; +package ada.tech.tenthirty.tvpackages.application.service; -import ada.tech.tenthirty.tvpackages.entity.Subscription; -import ada.tech.tenthirty.tvpackages.repository.SubscriptionRepository; +import ada.tech.tenthirty.tvpackages.domain.Subscription; +import ada.tech.tenthirty.tvpackages.infra.repository.SubscriptionRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/src/main/java/ada/tech/tenthirty/tvpackages/service/HttpPayment.java b/src/main/java/ada/tech/tenthirty/tvpackages/application/service/HttpPayment.java similarity index 95% rename from src/main/java/ada/tech/tenthirty/tvpackages/service/HttpPayment.java rename to src/main/java/ada/tech/tenthirty/tvpackages/application/service/HttpPayment.java index 3c8b4bb..e2d1880 100644 --- a/src/main/java/ada/tech/tenthirty/tvpackages/service/HttpPayment.java +++ b/src/main/java/ada/tech/tenthirty/tvpackages/application/service/HttpPayment.java @@ -1,4 +1,4 @@ -package ada.tech.tenthirty.tvpackages.service; +package ada.tech.tenthirty.tvpackages.application.service; import org.springframework.core.ParameterizedTypeReference; import org.springframework.http.HttpMethod; diff --git a/src/main/java/ada/tech/tenthirty/tvpackages/config/WebClientConfig.java b/src/main/java/ada/tech/tenthirty/tvpackages/config/WebClientConfig.java deleted file mode 100644 index 2e80d04..0000000 --- a/src/main/java/ada/tech/tenthirty/tvpackages/config/WebClientConfig.java +++ /dev/null @@ -1,22 +0,0 @@ -package ada.tech.tenthirty.tvpackages.config; - -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.web.reactive.function.client.WebClient; - - -@Configuration -public class WebClientConfig { - @Value("${config.subscription-package.url}") - private String subscriptionUrl; - - @Value("${config.technical-visit.url}") - private String technicalVisitUrl; - - @Bean - WebClient webClient(){ - return WebClient.builder().baseUrl(subscriptionUrl) - .build(); - } -} diff --git a/src/main/java/ada/tech/tenthirty/tvpackages/entity/Package.java b/src/main/java/ada/tech/tenthirty/tvpackages/domain/Package.java similarity index 90% rename from src/main/java/ada/tech/tenthirty/tvpackages/entity/Package.java rename to src/main/java/ada/tech/tenthirty/tvpackages/domain/Package.java index 4690e3c..0964c52 100644 --- a/src/main/java/ada/tech/tenthirty/tvpackages/entity/Package.java +++ b/src/main/java/ada/tech/tenthirty/tvpackages/domain/Package.java @@ -1,4 +1,4 @@ -package ada.tech.tenthirty.tvpackages.entity; +package ada.tech.tenthirty.tvpackages.domain; import java.math.BigDecimal; diff --git a/src/main/java/ada/tech/tenthirty/tvpackages/entity/StatusSubscription.java b/src/main/java/ada/tech/tenthirty/tvpackages/domain/StatusSubscription.java similarity index 59% rename from src/main/java/ada/tech/tenthirty/tvpackages/entity/StatusSubscription.java rename to src/main/java/ada/tech/tenthirty/tvpackages/domain/StatusSubscription.java index 0af4766..4138672 100644 --- a/src/main/java/ada/tech/tenthirty/tvpackages/entity/StatusSubscription.java +++ b/src/main/java/ada/tech/tenthirty/tvpackages/domain/StatusSubscription.java @@ -1,4 +1,4 @@ -package ada.tech.tenthirty.tvpackages.entity; +package ada.tech.tenthirty.tvpackages.domain; public enum StatusSubscription { SUSPENDED, diff --git a/src/main/java/ada/tech/tenthirty/tvpackages/entity/Subscription.java b/src/main/java/ada/tech/tenthirty/tvpackages/domain/Subscription.java similarity index 92% rename from src/main/java/ada/tech/tenthirty/tvpackages/entity/Subscription.java rename to src/main/java/ada/tech/tenthirty/tvpackages/domain/Subscription.java index 1c6f004..97074e6 100644 --- a/src/main/java/ada/tech/tenthirty/tvpackages/entity/Subscription.java +++ b/src/main/java/ada/tech/tenthirty/tvpackages/domain/Subscription.java @@ -1,4 +1,4 @@ -package ada.tech.tenthirty.tvpackages.entity; +package ada.tech.tenthirty.tvpackages.domain; import java.util.List; import jakarta.persistence.*; diff --git a/src/main/java/ada/tech/tenthirty/tvpackages/entity/User.java b/src/main/java/ada/tech/tenthirty/tvpackages/domain/User.java similarity index 88% rename from src/main/java/ada/tech/tenthirty/tvpackages/entity/User.java rename to src/main/java/ada/tech/tenthirty/tvpackages/domain/User.java index ba49766..caa300f 100644 --- a/src/main/java/ada/tech/tenthirty/tvpackages/entity/User.java +++ b/src/main/java/ada/tech/tenthirty/tvpackages/domain/User.java @@ -1,4 +1,4 @@ -package ada.tech.tenthirty.tvpackages.entity; +package ada.tech.tenthirty.tvpackages.domain; import jakarta.persistence.*; import lombok.AllArgsConstructor; diff --git a/src/main/java/ada/tech/tenthirty/tvpackages/config/SubscriptionQueue.java b/src/main/java/ada/tech/tenthirty/tvpackages/infra/config/NotifyInvoiceQueue.java similarity index 72% rename from src/main/java/ada/tech/tenthirty/tvpackages/config/SubscriptionQueue.java rename to src/main/java/ada/tech/tenthirty/tvpackages/infra/config/NotifyInvoiceQueue.java index fd9e2d0..8d0579a 100644 --- a/src/main/java/ada/tech/tenthirty/tvpackages/config/SubscriptionQueue.java +++ b/src/main/java/ada/tech/tenthirty/tvpackages/infra/config/NotifyInvoiceQueue.java @@ -1,4 +1,4 @@ -package ada.tech.tenthirty.tvpackages.config; +package ada.tech.tenthirty.tvpackages.infra.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -6,8 +6,8 @@ import org.springframework.beans.factory.annotation.Value; @Configuration -public class SubscriptionQueue{ - @Value("${config.subscription-package.queue.out}") +public class NotifyInvoiceQueue { + @Value("${config.notify-invoice.queue.out}") private String queueSubs; @Bean @@ -15,4 +15,3 @@ public Queue queue(){ return new Queue(queueSubs, true); } } - diff --git a/src/main/java/ada/tech/tenthirty/tvpackages/config/OpenApiConfig.java b/src/main/java/ada/tech/tenthirty/tvpackages/infra/config/OpenApiConfig.java similarity index 90% rename from src/main/java/ada/tech/tenthirty/tvpackages/config/OpenApiConfig.java rename to src/main/java/ada/tech/tenthirty/tvpackages/infra/config/OpenApiConfig.java index 632113a..9fbb212 100644 --- a/src/main/java/ada/tech/tenthirty/tvpackages/config/OpenApiConfig.java +++ b/src/main/java/ada/tech/tenthirty/tvpackages/infra/config/OpenApiConfig.java @@ -1,4 +1,4 @@ -package ada.tech.tenthirty.tvpackages.config; +package ada.tech.tenthirty.tvpackages.infra.config; import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.info.Info; diff --git a/src/main/java/ada/tech/tenthirty/tvpackages/config/TechnicalVisitQueue.java b/src/main/java/ada/tech/tenthirty/tvpackages/infra/config/TechnicalVisitQueue.java similarity index 88% rename from src/main/java/ada/tech/tenthirty/tvpackages/config/TechnicalVisitQueue.java rename to src/main/java/ada/tech/tenthirty/tvpackages/infra/config/TechnicalVisitQueue.java index 327db54..d18117e 100644 --- a/src/main/java/ada/tech/tenthirty/tvpackages/config/TechnicalVisitQueue.java +++ b/src/main/java/ada/tech/tenthirty/tvpackages/infra/config/TechnicalVisitQueue.java @@ -1,4 +1,4 @@ -package ada.tech.tenthirty.tvpackages.config; +package ada.tech.tenthirty.tvpackages.infra.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; diff --git a/src/main/java/ada/tech/tenthirty/tvpackages/queue/NotifyInvoiceProducer.java b/src/main/java/ada/tech/tenthirty/tvpackages/infra/queue/NotifyInvoiceProducer.java similarity index 85% rename from src/main/java/ada/tech/tenthirty/tvpackages/queue/NotifyInvoiceProducer.java rename to src/main/java/ada/tech/tenthirty/tvpackages/infra/queue/NotifyInvoiceProducer.java index 3dc7e88..908becb 100644 --- a/src/main/java/ada/tech/tenthirty/tvpackages/queue/NotifyInvoiceProducer.java +++ b/src/main/java/ada/tech/tenthirty/tvpackages/infra/queue/NotifyInvoiceProducer.java @@ -1,12 +1,12 @@ -package ada.tech.tenthirty.tvpackages.queue; +package ada.tech.tenthirty.tvpackages.infra.queue; +import ada.tech.tenthirty.tvpackages.infra.queue.payloads.NotifyInvoiceRequest; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.stereotype.Service; import org.springframework.amqp.core.Queue; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; -import ada.tech.tenthirty.tvpackages.queue.payloads.NotifyInvoiceRequest; import lombok.RequiredArgsConstructor; @Service diff --git a/src/main/java/ada/tech/tenthirty/tvpackages/queue/ScheduleTechnicalVisitProducer.java b/src/main/java/ada/tech/tenthirty/tvpackages/infra/queue/ScheduleTechnicalVisitProducer.java similarity index 84% rename from src/main/java/ada/tech/tenthirty/tvpackages/queue/ScheduleTechnicalVisitProducer.java rename to src/main/java/ada/tech/tenthirty/tvpackages/infra/queue/ScheduleTechnicalVisitProducer.java index 2ee2aeb..80945b0 100644 --- a/src/main/java/ada/tech/tenthirty/tvpackages/queue/ScheduleTechnicalVisitProducer.java +++ b/src/main/java/ada/tech/tenthirty/tvpackages/infra/queue/ScheduleTechnicalVisitProducer.java @@ -1,12 +1,12 @@ -package ada.tech.tenthirty.tvpackages.queue; +package ada.tech.tenthirty.tvpackages.infra.queue; +import ada.tech.tenthirty.tvpackages.infra.queue.payloads.ScheduleTechnicalVisitRequest; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.stereotype.Service; import org.springframework.amqp.core.Queue; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; -import ada.tech.tenthirty.tvpackages.queue.payloads.ScheduleTechnicalVisitRequest; import lombok.RequiredArgsConstructor; @Service @@ -21,4 +21,3 @@ public void execute(ScheduleTechnicalVisitRequest ScheduleTechnicalVisit) throws rabbitTemplate.convertSendAndReceive(queue.getName(), message); } } - diff --git a/src/main/java/ada/tech/tenthirty/tvpackages/queue/payloads/NotifyInvoiceRequest.java b/src/main/java/ada/tech/tenthirty/tvpackages/infra/queue/payloads/NotifyInvoiceRequest.java similarity index 52% rename from src/main/java/ada/tech/tenthirty/tvpackages/queue/payloads/NotifyInvoiceRequest.java rename to src/main/java/ada/tech/tenthirty/tvpackages/infra/queue/payloads/NotifyInvoiceRequest.java index d6c40b3..83e6ead 100644 --- a/src/main/java/ada/tech/tenthirty/tvpackages/queue/payloads/NotifyInvoiceRequest.java +++ b/src/main/java/ada/tech/tenthirty/tvpackages/infra/queue/payloads/NotifyInvoiceRequest.java @@ -1,12 +1,12 @@ -package ada.tech.tenthirty.tvpackages.queue.payloads; -import java.time.LocalDateTime; +package ada.tech.tenthirty.tvpackages.infra.queue.payloads; import java.util.List; +import ada.tech.tenthirty.tvpackages.domain.Package; import lombok.Data; @Data public class NotifyInvoiceRequest { private String idUser; - private LocalDateTime issueDate; + private String issueDate; private List listPackage; } diff --git a/src/main/java/ada/tech/tenthirty/tvpackages/queue/payloads/ScheduleTechnicalVisitRequest.java b/src/main/java/ada/tech/tenthirty/tvpackages/infra/queue/payloads/ScheduleTechnicalVisitRequest.java similarity index 68% rename from src/main/java/ada/tech/tenthirty/tvpackages/queue/payloads/ScheduleTechnicalVisitRequest.java rename to src/main/java/ada/tech/tenthirty/tvpackages/infra/queue/payloads/ScheduleTechnicalVisitRequest.java index 009871c..d14b317 100644 --- a/src/main/java/ada/tech/tenthirty/tvpackages/queue/payloads/ScheduleTechnicalVisitRequest.java +++ b/src/main/java/ada/tech/tenthirty/tvpackages/infra/queue/payloads/ScheduleTechnicalVisitRequest.java @@ -1,4 +1,4 @@ -package ada.tech.tenthirty.tvpackages.queue.payloads; +package ada.tech.tenthirty.tvpackages.infra.queue.payloads; import lombok.Data; diff --git a/src/main/java/ada/tech/tenthirty/tvpackages/repository/SubscriptionRepository.java b/src/main/java/ada/tech/tenthirty/tvpackages/infra/repository/SubscriptionRepository.java similarity index 65% rename from src/main/java/ada/tech/tenthirty/tvpackages/repository/SubscriptionRepository.java rename to src/main/java/ada/tech/tenthirty/tvpackages/infra/repository/SubscriptionRepository.java index b40ee5a..c5ceef8 100644 --- a/src/main/java/ada/tech/tenthirty/tvpackages/repository/SubscriptionRepository.java +++ b/src/main/java/ada/tech/tenthirty/tvpackages/infra/repository/SubscriptionRepository.java @@ -1,6 +1,6 @@ -package ada.tech.tenthirty.tvpackages.repository; +package ada.tech.tenthirty.tvpackages.infra.repository; -import ada.tech.tenthirty.tvpackages.entity.Subscription; +import ada.tech.tenthirty.tvpackages.domain.Subscription; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; diff --git a/src/main/java/ada/tech/tenthirty/tvpackages/repository/UserRepository.java b/src/main/java/ada/tech/tenthirty/tvpackages/infra/repository/UserRepository.java similarity index 56% rename from src/main/java/ada/tech/tenthirty/tvpackages/repository/UserRepository.java rename to src/main/java/ada/tech/tenthirty/tvpackages/infra/repository/UserRepository.java index db7df04..738b96b 100644 --- a/src/main/java/ada/tech/tenthirty/tvpackages/repository/UserRepository.java +++ b/src/main/java/ada/tech/tenthirty/tvpackages/infra/repository/UserRepository.java @@ -1,6 +1,6 @@ -package ada.tech.tenthirty.tvpackages.repository; +package ada.tech.tenthirty.tvpackages.infra.repository; -import ada.tech.tenthirty.tvpackages.entity.User; +import ada.tech.tenthirty.tvpackages.domain.User; import org.springframework.data.jpa.repository.JpaRepository; public interface UserRepository extends JpaRepository { diff --git a/src/main/java/ada/tech/tenthirty/tvpackages/queue/SubscriptionProducer.java b/src/main/java/ada/tech/tenthirty/tvpackages/queue/SubscriptionProducer.java deleted file mode 100644 index 04781ce..0000000 --- a/src/main/java/ada/tech/tenthirty/tvpackages/queue/SubscriptionProducer.java +++ /dev/null @@ -1,23 +0,0 @@ -package ada.tech.tenthirty.tvpackages.queue; - -import org.springframework.amqp.rabbit.core.RabbitTemplate; -import org.springframework.stereotype.Service; -import org.springframework.amqp.core.Queue; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import ada.tech.tenthirty.tvpackages.queue.payloads.SubscriptionRequest; -import lombok.RequiredArgsConstructor; - -@Service -@RequiredArgsConstructor -public class SubscriptionProducer { - private final RabbitTemplate rabbitTemplate; - private final Queue queue; - private final ObjectMapper objectMapper; - - public void execute (SubscriptionRequest SubscriptionPackage) throws JsonProcessingException { - String message = objectMapper.writeValueAsString(SubscriptionPackage); - rabbitTemplate.convertSendAndReceive(queue.getName(), message); - } -} diff --git a/src/main/java/ada/tech/tenthirty/tvpackages/queue/payloads/SubscriptionRequest.java b/src/main/java/ada/tech/tenthirty/tvpackages/queue/payloads/SubscriptionRequest.java deleted file mode 100644 index b29dd63..0000000 --- a/src/main/java/ada/tech/tenthirty/tvpackages/queue/payloads/SubscriptionRequest.java +++ /dev/null @@ -1,12 +0,0 @@ -package ada.tech.tenthirty.tvpackages.queue.payloads; -import java.time.LocalDateTime; -import java.util.List; - -import lombok.Data; - -@Data -public class SubscriptionRequest { - private String idUser; //userId:"string"; - private LocalDateTime issueDate;//LocaDate com "issueDate": 10/20/2023; //AQUI TO-DO >> 1. Necessario incluir o campo data na assinatura e 2) como vincular ? - private List listPackage; //Lista com [{"skuid": "string";},{"skuid": "string";}] //AQUI TO-DO >> 1) como vincular à lista que consta em subscription? -} diff --git a/src/main/java/ada/tech/tenthirty/tvpackages/service/CreateSubscription.java b/src/main/java/ada/tech/tenthirty/tvpackages/service/CreateSubscription.java deleted file mode 100644 index 25f8b82..0000000 --- a/src/main/java/ada/tech/tenthirty/tvpackages/service/CreateSubscription.java +++ /dev/null @@ -1,29 +0,0 @@ -package ada.tech.tenthirty.tvpackages.service; - -import ada.tech.tenthirty.tvpackages.entity.Subscription; -import ada.tech.tenthirty.tvpackages.entity.User; -import ada.tech.tenthirty.tvpackages.payloads.SubscriptionRequest; -import ada.tech.tenthirty.tvpackages.repository.SubscriptionRepository; -import ada.tech.tenthirty.tvpackages.repository.UserRepository; -import ada.tech.tenthirty.tvpackages.utils.SubscriptionConvert; -import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Service; - -@Service -@RequiredArgsConstructor -public class CreateSubscription { - private final SubscriptionRepository subscriptionRepository; - private final UserRepository userRepository; - - public Subscription execute(SubscriptionRequest subscriptionRequest) { - SubscriptionConvert.toEntity(subscriptionRequest); - User user = new User(); - user.setTransactionId(subscriptionRequest.getUserId()); - userRepository.save(user); - - Subscription subscription = SubscriptionConvert.toEntity(subscriptionRequest); - subscription.setUser(user); - - return subscriptionRepository.save(SubscriptionConvert.toEntity(subscriptionRequest)); - } -} diff --git a/src/main/java/ada/tech/tenthirty/tvpackages/utils/FormatDate.java b/src/main/java/ada/tech/tenthirty/tvpackages/utils/FormatDate.java new file mode 100644 index 0000000..2c5fae6 --- /dev/null +++ b/src/main/java/ada/tech/tenthirty/tvpackages/utils/FormatDate.java @@ -0,0 +1,12 @@ +package ada.tech.tenthirty.tvpackages.utils; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + +public class FormatDate { + public static String dayMothYears(){ + LocalDateTime createDate = LocalDateTime.now(); + DateTimeFormatter format = DateTimeFormatter.ofPattern("dd/MM/yyyy"); + return createDate.format(format); + } +} diff --git a/src/main/java/ada/tech/tenthirty/tvpackages/utils/ListPackageConvert.java b/src/main/java/ada/tech/tenthirty/tvpackages/utils/ListPackageConvert.java index a1f188e..ad69bc2 100644 --- a/src/main/java/ada/tech/tenthirty/tvpackages/utils/ListPackageConvert.java +++ b/src/main/java/ada/tech/tenthirty/tvpackages/utils/ListPackageConvert.java @@ -1,8 +1,8 @@ package ada.tech.tenthirty.tvpackages.utils; -import ada.tech.tenthirty.tvpackages.entity.Package; -import ada.tech.tenthirty.tvpackages.payloads.PackageRequest; -import ada.tech.tenthirty.tvpackages.payloads.response.PackageResponse; +import ada.tech.tenthirty.tvpackages.domain.Package; +import ada.tech.tenthirty.tvpackages.application.payloads.PackageRequest; +import ada.tech.tenthirty.tvpackages.application.payloads.response.PackageResponse; import java.util.ArrayList; import java.util.List; diff --git a/src/main/java/ada/tech/tenthirty/tvpackages/utils/SubscriptionConvert.java b/src/main/java/ada/tech/tenthirty/tvpackages/utils/SubscriptionConvert.java index 4d532ce..aa141c6 100644 --- a/src/main/java/ada/tech/tenthirty/tvpackages/utils/SubscriptionConvert.java +++ b/src/main/java/ada/tech/tenthirty/tvpackages/utils/SubscriptionConvert.java @@ -1,8 +1,8 @@ package ada.tech.tenthirty.tvpackages.utils; -import ada.tech.tenthirty.tvpackages.entity.StatusSubscription; -import ada.tech.tenthirty.tvpackages.entity.Subscription; -import ada.tech.tenthirty.tvpackages.payloads.SubscriptionRequest; -import ada.tech.tenthirty.tvpackages.payloads.response.SubscriptionResponse; +import ada.tech.tenthirty.tvpackages.domain.StatusSubscription; +import ada.tech.tenthirty.tvpackages.domain.Subscription; +import ada.tech.tenthirty.tvpackages.application.payloads.SubscriptionRequest; +import ada.tech.tenthirty.tvpackages.application.payloads.response.SubscriptionResponse; public class SubscriptionConvert { diff --git a/src/main/resources/META-INF/additional-spring-configuration-metadata.json b/src/main/resources/META-INF/additional-spring-configuration-metadata.json index 9289304..8b37421 100644 --- a/src/main/resources/META-INF/additional-spring-configuration-metadata.json +++ b/src/main/resources/META-INF/additional-spring-configuration-metadata.json @@ -1,51 +1,54 @@ -{"properties": [ - { - "name": "liquibase.change-log", - "type": "java.lang.String", - "description": "A description for 'liquibase.change-log'" - }, - { - "name": "spring.liquibase.changeLogFile", - "type": "java.lang.String", - "description": "A description for 'spring.liquibase.changeLogFile'" - }, - { - "name": "spring.config.technicalVisit.url", - "type": "java.lang.String", - "description": "A description for 'spring.config.technicalVisit.url'" - }, - { - "name": "spring.config.technicalVisit.queue.out", - "type": "java.lang.String", - "description": "A description for 'spring.config.technicalVisit.queue.out'" - }, - { - "name": "spring.config.subscription.url", - "type": "java.lang.String", - "description": "A description for 'spring.config.subscription.url'" - }, - { - "name": "spring.config.subscription.queue.out", - "type": "java.lang.String", - "description": "A description for 'spring.config.subscription.queue.out'" - }, - { - "name": "config.subscription-package.url", - "type": "java.lang.String", - "description": "A description for 'config.subscriptionPackage.url'" - }, - { - "name": "config.subscription-package.queue.out", - "type": "java.lang.String", - "description": "A description for 'config.subscriptionPackage.queue.out'" - }, - { - "name": "config.technical-visit.url", - "type": "java.lang.String", - "description": "A description for 'config.technical-visit.url'" - }, - { - "name": "config.technical-visit.queue.out", - "type": "java.lang.String", - "description": "A description for 'config.technical-visit.queue.out'" - +{ + "properties": [ + { + "name": "liquibase.change-log", + "type": "java.lang.String", + "description": "A description for 'liquibase.change-log'" + }, + { + "name": "spring.liquibase.changeLogFile", + "type": "java.lang.String", + "description": "A description for 'spring.liquibase.changeLogFile'" + }, + { + "name": "spring.config.technicalVisit.url", + "type": "java.lang.String", + "description": "A description for 'spring.config.technicalVisit.url'" + }, + { + "name": "spring.config.technicalVisit.queue.out", + "type": "java.lang.String", + "description": "A description for 'spring.config.technicalVisit.queue.out'" + }, + { + "name": "spring.config.subscription.url", + "type": "java.lang.String", + "description": "A description for 'spring.config.subscription.url'" + }, + { + "name": "spring.config.subscription.queue.out", + "type": "java.lang.String", + "description": "A description for 'spring.config.subscription.queue.out'" + }, + { + "name": "config.subscription-package.url", + "type": "java.lang.String", + "description": "A description for 'config.subscriptionPackage.url'" + }, + { + "name": "config.subscription-package.queue.out", + "type": "java.lang.String", + "description": "A description for 'config.subscriptionPackage.queue.out'" + }, + { + "name": "config.technical-visit.url", + "type": "java.lang.String", + "description": "A description for 'config.technical-visit.url'" + }, + { + "name": "config.technical-visit.queue.out", + "type": "java.lang.String", + "description": "A description for 'config.technical-visit.queue.out'" + } + ] +} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 87d23c9..b1c030d 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -32,5 +32,5 @@ spring.rabbitmq.cache.channel.size=50 config.technical-visit.url=http://localhost:9081 config.technical-visit.queue.out=schedule_technical_visit -config.subscription-package.url= http://localhost:9081 -config.subscription-package.queue.out=out: shedule_technical_visit \ No newline at end of file +config.subscription-package.url= http://localhost:9080 +config.notify-invoice.queue.out=subscription_package