Skip to content

Commit

Permalink
refactor: refactor packages domain
Browse files Browse the repository at this point in the history
  • Loading branch information
Ar3secchim committed Nov 25, 2023
1 parent b5b99d3 commit aa751ca
Show file tree
Hide file tree
Showing 34 changed files with 199 additions and 200 deletions.
22 changes: 11 additions & 11 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -95,17 +95,17 @@

<build>
<plugins>
<plugin>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-maven-plugin</artifactId>
<version>9.16.3</version> <!-- Use a versão mais recente disponível -->
<configuration>
<url>jdbc:mysql://localhost:3306/</url>
<user>root</user>
<password>subscription</password>
<schemas>subscription</schemas>
</configuration>
</plugin>
<plugin>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-maven-plugin</artifactId>
<version>9.16.3</version>
<configuration>
<url>jdbc:mysql://localhost:3306/</url>
<user>root</user>
<password>subscription</password>
<schemas>subscription</schemas>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package ada.tech.tenthirty.tvpackages.payloads;
package ada.tech.tenthirty.tvpackages.application.payloads;


import lombok.Data;
Expand Down
Original file line number Diff line number Diff line change
@@ -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;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package ada.tech.tenthirty.tvpackages.payloads;
package ada.tech.tenthirty.tvpackages.application.payloads;

import lombok.Data;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package ada.tech.tenthirty.tvpackages.payloads.response;
package ada.tech.tenthirty.tvpackages.application.payloads.response;

import lombok.Data;

Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Expand Down
Original file line number Diff line number Diff line change
@@ -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;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package ada.tech.tenthirty.tvpackages.service;
package ada.tech.tenthirty.tvpackages.application.service;

import org.springframework.stereotype.Service;

Expand Down
Original file line number Diff line number Diff line change
@@ -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<Package> 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);
}
}
}
Original file line number Diff line number Diff line change
@@ -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;
Expand Down
Original file line number Diff line number Diff line change
@@ -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;

Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package ada.tech.tenthirty.tvpackages.entity;
package ada.tech.tenthirty.tvpackages.domain;

import java.math.BigDecimal;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package ada.tech.tenthirty.tvpackages.entity;
package ada.tech.tenthirty.tvpackages.domain;

public enum StatusSubscription {
SUSPENDED,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package ada.tech.tenthirty.tvpackages.entity;
package ada.tech.tenthirty.tvpackages.domain;

import java.util.List;
import jakarta.persistence.*;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package ada.tech.tenthirty.tvpackages.entity;
package ada.tech.tenthirty.tvpackages.domain;

import jakarta.persistence.*;
import lombok.AllArgsConstructor;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,17 @@
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;
import org.springframework.amqp.core.Queue;
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
public Queue queue(){
return new Queue(queueSubs, true);
}
}

Original file line number Diff line number Diff line change
@@ -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;
Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Expand Down
Original file line number Diff line number Diff line change
@@ -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
Expand Down
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -21,4 +21,3 @@ public void execute(ScheduleTechnicalVisitRequest ScheduleTechnicalVisit) throws
rabbitTemplate.convertSendAndReceive(queue.getName(), message);
}
}

Original file line number Diff line number Diff line change
@@ -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<Package> listPackage;
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package ada.tech.tenthirty.tvpackages.queue.payloads;
package ada.tech.tenthirty.tvpackages.infra.queue.payloads;

import lombok.Data;

Expand Down
Original file line number Diff line number Diff line change
@@ -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;

Expand Down
Original file line number Diff line number Diff line change
@@ -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<User, String> {
Expand Down

This file was deleted.

This file was deleted.

Loading

0 comments on commit aa751ca

Please sign in to comment.