From e25eed9fa94380ab2a33758fb11019c0374f397e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felipe=20P=C3=BAblio?= Date: Thu, 9 Jun 2022 21:32:16 -0300 Subject: [PATCH] Removing rabbit and security --- build.gradle | 6 ++-- .../telegrampackagenotifier/Application.java | 2 -- .../config/RabbitConfig.java | 24 ------------- .../config/SecurityConfig.java | 19 ---------- .../exceptions/UsernameNotFoundException.java | 12 +++++++ .../listener/PackageUpdateListener.java | 36 ------------------- .../scheduler/ShippingTrackerUpdate.java | 10 +++--- .../service/QueueService.java | 33 ----------------- .../service/UserService.java | 2 +- src/main/resources/application.yml | 14 -------- 10 files changed, 20 insertions(+), 138 deletions(-) delete mode 100644 src/main/java/dev/publio/telegrampackagenotifier/config/RabbitConfig.java delete mode 100644 src/main/java/dev/publio/telegrampackagenotifier/config/SecurityConfig.java create mode 100644 src/main/java/dev/publio/telegrampackagenotifier/exceptions/UsernameNotFoundException.java delete mode 100644 src/main/java/dev/publio/telegrampackagenotifier/listener/PackageUpdateListener.java delete mode 100644 src/main/java/dev/publio/telegrampackagenotifier/service/QueueService.java diff --git a/build.gradle b/build.gradle index 3948f57..3d21747 100644 --- a/build.gradle +++ b/build.gradle @@ -32,10 +32,8 @@ dependencies { implementation 'org.springframework.boot:spring-boot-starter-validation' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.cloud:spring-cloud-starter-openfeign' - implementation 'org.jsoup:jsoup:1.13.1' - implementation 'org.springframework.boot:spring-boot-starter-oauth2-resource-server' - implementation 'org.springframework.boot:spring-boot-starter-amqp' - implementation 'com.github.pengrad:java-telegram-bot-api:5.4.0' + implementation 'org.jsoup:jsoup:1.14.3' + implementation 'com.github.pengrad:java-telegram-bot-api:6.0.1' compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' diff --git a/src/main/java/dev/publio/telegrampackagenotifier/Application.java b/src/main/java/dev/publio/telegrampackagenotifier/Application.java index 739ae24..6913bc0 100644 --- a/src/main/java/dev/publio/telegrampackagenotifier/Application.java +++ b/src/main/java/dev/publio/telegrampackagenotifier/Application.java @@ -1,13 +1,11 @@ package dev.publio.telegrampackagenotifier; -import org.springframework.amqp.rabbit.annotation.EnableRabbit; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCaching; import org.springframework.scheduling.annotation.EnableScheduling; @EnableCaching -@EnableRabbit @EnableScheduling @SpringBootApplication public class Application { diff --git a/src/main/java/dev/publio/telegrampackagenotifier/config/RabbitConfig.java b/src/main/java/dev/publio/telegrampackagenotifier/config/RabbitConfig.java deleted file mode 100644 index 10b35db..0000000 --- a/src/main/java/dev/publio/telegrampackagenotifier/config/RabbitConfig.java +++ /dev/null @@ -1,24 +0,0 @@ -package dev.publio.telegrampackagenotifier.config; - -import org.springframework.amqp.core.Queue; -import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -@Configuration -public class RabbitConfig { - - @Value("${queue.name}") - private String queueName; - - @Bean - public Queue telegramQueue() { - return new Queue(queueName, true); - } - - @Bean - public Jackson2JsonMessageConverter producerJackson2MessageConverter() { - return new Jackson2JsonMessageConverter(); - } -} diff --git a/src/main/java/dev/publio/telegrampackagenotifier/config/SecurityConfig.java b/src/main/java/dev/publio/telegrampackagenotifier/config/SecurityConfig.java deleted file mode 100644 index 4c0ed31..0000000 --- a/src/main/java/dev/publio/telegrampackagenotifier/config/SecurityConfig.java +++ /dev/null @@ -1,19 +0,0 @@ -package dev.publio.telegrampackagenotifier.config; - -import org.springframework.context.annotation.Configuration; -import org.springframework.security.config.annotation.web.builders.HttpSecurity; -import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; -import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; - -@EnableWebSecurity(debug = true) -@Configuration -public class SecurityConfig extends WebSecurityConfigurerAdapter { - - @Override - public void configure(HttpSecurity http) throws Exception { - http.authorizeRequests() - .anyRequest().hasAuthority("SCOPE_read:tracking") - .and().cors() - .and().oauth2ResourceServer().jwt(); - } -} \ No newline at end of file diff --git a/src/main/java/dev/publio/telegrampackagenotifier/exceptions/UsernameNotFoundException.java b/src/main/java/dev/publio/telegrampackagenotifier/exceptions/UsernameNotFoundException.java new file mode 100644 index 0000000..1b739ed --- /dev/null +++ b/src/main/java/dev/publio/telegrampackagenotifier/exceptions/UsernameNotFoundException.java @@ -0,0 +1,12 @@ +package dev.publio.telegrampackagenotifier.exceptions; + +public class UsernameNotFoundException extends + RuntimeException { + + public UsernameNotFoundException() { + } + + public UsernameNotFoundException(String message) { + super(message); + } +} diff --git a/src/main/java/dev/publio/telegrampackagenotifier/listener/PackageUpdateListener.java b/src/main/java/dev/publio/telegrampackagenotifier/listener/PackageUpdateListener.java deleted file mode 100644 index f97ce36..0000000 --- a/src/main/java/dev/publio/telegrampackagenotifier/listener/PackageUpdateListener.java +++ /dev/null @@ -1,36 +0,0 @@ -package dev.publio.telegrampackagenotifier.listener; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import dev.publio.telegrampackagenotifier.dto.QueueTelegramMessage; -import dev.publio.telegrampackagenotifier.telegram.UserNotifierTelegram; -import lombok.extern.log4j.Log4j2; -import org.springframework.amqp.rabbit.annotation.RabbitListener; -import org.springframework.stereotype.Component; - -@Component -@Log4j2 -public class PackageUpdateListener { - - private final UserNotifierTelegram userNotifierTelegram; - private final ObjectMapper objectMapper; - - public PackageUpdateListener( - UserNotifierTelegram userNotifierTelegram, - ObjectMapper objectMapper) { - this.userNotifierTelegram = userNotifierTelegram; - this.objectMapper = objectMapper; - } - - @RabbitListener(queues = "${queue.name}") - public void listen(String queueTelegramMessage) { - log.info("Received message: " + queueTelegramMessage); - try { - final QueueTelegramMessage telegramMessage = objectMapper.readValue(queueTelegramMessage, - QueueTelegramMessage.class); - userNotifierTelegram.notify(telegramMessage); - } catch (JsonProcessingException e) { - log.error("Error processing message: " + queueTelegramMessage, e); - } - } -} diff --git a/src/main/java/dev/publio/telegrampackagenotifier/scheduler/ShippingTrackerUpdate.java b/src/main/java/dev/publio/telegrampackagenotifier/scheduler/ShippingTrackerUpdate.java index 4301aa4..b07d04f 100644 --- a/src/main/java/dev/publio/telegrampackagenotifier/scheduler/ShippingTrackerUpdate.java +++ b/src/main/java/dev/publio/telegrampackagenotifier/scheduler/ShippingTrackerUpdate.java @@ -5,8 +5,8 @@ import dev.publio.telegrampackagenotifier.exceptions.NoUpdatesFoundException; import dev.publio.telegrampackagenotifier.models.Package; import dev.publio.telegrampackagenotifier.models.ShippingUpdate; -import dev.publio.telegrampackagenotifier.service.QueueService; import dev.publio.telegrampackagenotifier.service.TrackingService; +import dev.publio.telegrampackagenotifier.telegram.UserNotifierTelegram; import java.time.LocalDateTime; import java.util.Comparator; import java.util.Optional; @@ -21,16 +21,16 @@ public class ShippingTrackerUpdate { private final TrackingService trackingService; - private final QueueService queueService; + private final UserNotifierTelegram queueService; public ShippingTrackerUpdate( TrackingService trackingService, - QueueService queueService) { + UserNotifierTelegram queueService) { this.trackingService = trackingService; this.queueService = queueService; } - @Scheduled(fixedDelay = 5, timeUnit = java.util.concurrent.TimeUnit.MINUTES) + @Scheduled(fixedDelay = 1, timeUnit = java.util.concurrent.TimeUnit.MINUTES) public void updateTrackers() { log.info("Updating trackers"); Set allActivePackages = trackingService.getAllActivePackages(); @@ -61,7 +61,7 @@ public void updateTrackers() { } else { log.info("New updates for package {}", activePackage.getTrackId()); activePackage.getUpdates().add(lastUpdate.toShippingUpdate()); - queueService.sendToTelegramNotification(new QueueTelegramMessage( + queueService.notify(new QueueTelegramMessage( activePackage.getTrackId(), activePackage.getUser(), lastUpdate)); } activePackage.setLastUpdate(LocalDateTime.now()); diff --git a/src/main/java/dev/publio/telegrampackagenotifier/service/QueueService.java b/src/main/java/dev/publio/telegrampackagenotifier/service/QueueService.java deleted file mode 100644 index 0eef26c..0000000 --- a/src/main/java/dev/publio/telegrampackagenotifier/service/QueueService.java +++ /dev/null @@ -1,33 +0,0 @@ -package dev.publio.telegrampackagenotifier.service; - -import com.fasterxml.jackson.databind.ObjectMapper; -import dev.publio.telegrampackagenotifier.dto.QueueTelegramMessage; -import lombok.SneakyThrows; -import lombok.extern.log4j.Log4j2; -import org.springframework.amqp.core.Queue; -import org.springframework.amqp.rabbit.core.RabbitTemplate; -import org.springframework.stereotype.Service; - -@Service -@Log4j2 -public class QueueService { - - private final RabbitTemplate template; - private final ObjectMapper mapper; - private final Queue telegramQueue; - - public QueueService(RabbitTemplate template, ObjectMapper mapper, - Queue telegramQueue) { - this.template = template; - this.mapper = mapper; - this.telegramQueue = telegramQueue; - } - - @SneakyThrows - public void sendToTelegramNotification(QueueTelegramMessage message) { - log.info("Sending message [{}] to queue: {}", message, telegramQueue.getName()); - String valueAsString = mapper.writeValueAsString(message); - template.convertAndSend(telegramQueue.getName(), valueAsString); - log.info("Message[{}] sent to queue: {}", valueAsString, telegramQueue.getName()); - } -} diff --git a/src/main/java/dev/publio/telegrampackagenotifier/service/UserService.java b/src/main/java/dev/publio/telegrampackagenotifier/service/UserService.java index b22887d..618b105 100644 --- a/src/main/java/dev/publio/telegrampackagenotifier/service/UserService.java +++ b/src/main/java/dev/publio/telegrampackagenotifier/service/UserService.java @@ -1,9 +1,9 @@ package dev.publio.telegrampackagenotifier.service; +import dev.publio.telegrampackagenotifier.exceptions.UsernameNotFoundException; import dev.publio.telegrampackagenotifier.models.User; import dev.publio.telegrampackagenotifier.repository.UserRepository; import lombok.extern.log4j.Log4j2; -import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.stereotype.Service; @Log4j2 diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 6f52ef6..589cbf6 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -5,23 +5,9 @@ transporter: madeira_madeira: https://eagle.madeiramadeira.com.br/tracking/mm/eventos?order=%s&collect=%s spring: - rabbitmq: - addresses: ${RABBIT_URL} data: mongodb: uri: ${MONGO_URL} - security: - oauth2: - resourceserver: - jwt: - issuer-uri: ${ISSUER_URL} - -auth0: - audience: ${AUDIENCE_URL} - -queue: - name: telegram-notification - telegram: bot: token: ${TELEGRAM_BOT_TOKEN}