diff --git a/build.gradle b/build.gradle index ba6a5bd..a2564dc 100644 --- a/build.gradle +++ b/build.gradle @@ -54,9 +54,6 @@ dependencies { compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' - // KAFKA - implementation 'org.springframework.kafka:spring-kafka' - // Firebase implementation 'com.google.firebase:firebase-admin:6.8.1' implementation group: 'com.squareup.okhttp3', name: 'okhttp', version: '4.2.2' diff --git a/src/main/java/com/inglo/giggle/core/config/KafkaConfig.java b/src/main/java/com/inglo/giggle/core/config/KafkaConfig.java deleted file mode 100644 index effc2bb..0000000 --- a/src/main/java/com/inglo/giggle/core/config/KafkaConfig.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.inglo.giggle.core.config; - -import com.fasterxml.jackson.databind.ObjectMapper; -import org.apache.kafka.clients.consumer.ConsumerConfig; -import org.apache.kafka.clients.producer.ProducerConfig; -import org.apache.kafka.common.serialization.StringDeserializer; -import org.apache.kafka.common.serialization.StringSerializer; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.kafka.annotation.EnableKafka; -import org.springframework.kafka.config.ConcurrentKafkaListenerContainerFactory; -import org.springframework.kafka.core.*; -import org.springframework.kafka.support.serializer.JsonDeserializer; -import org.springframework.kafka.support.serializer.JsonSerializer; - -import java.util.HashMap; -import java.util.Map; - -@Configuration -@EnableKafka -public class KafkaConfig { - - @Value("${spring.kafka.bootstrap-servers}") - private String bootstrapServers; - - @Value("${spring.kafka.consumer.group-id}") - private String groupId; - - @Bean - public ProducerFactory> producerFactory() { - Map configProps = new HashMap<>(); - - configProps.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapServers); - - configProps.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class); - configProps.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, JsonSerializer.class); - - return new DefaultKafkaProducerFactory<>(configProps); - } - - @Bean - public ConsumerFactory> consumerFactory() { - Map props = new HashMap<>(); - - props.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapServers); - props.put(ConsumerConfig.GROUP_ID_CONFIG, groupId); - - props.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class); - props.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, JsonDeserializer.class); - - JsonDeserializer> deserializer = new JsonDeserializer<>(Map.class, false); - - return new DefaultKafkaConsumerFactory<>(props, new StringDeserializer(), deserializer); - } - - @Bean - public ConcurrentKafkaListenerContainerFactory> kafkaListenerContainerFactory() { - ConcurrentKafkaListenerContainerFactory> factory = - new ConcurrentKafkaListenerContainerFactory<>(); - - factory.setConsumerFactory(consumerFactory()); - - return factory; - } - - @Bean - public KafkaTemplate> kafkaTemplate() { - return new KafkaTemplate<>(producerFactory()); - } - - @Bean - public ObjectMapper jackson2JsonMessageConverter() { - return new ObjectMapper(); - } -} diff --git a/src/main/java/com/inglo/giggle/core/utility/RestClientUtil.java b/src/main/java/com/inglo/giggle/core/utility/RestClientUtil.java index 19adb96..2dd364e 100644 --- a/src/main/java/com/inglo/giggle/core/utility/RestClientUtil.java +++ b/src/main/java/com/inglo/giggle/core/utility/RestClientUtil.java @@ -22,6 +22,9 @@ public void sendPostMethod(String url, String token, JSONObject jsonObject) { .body(jsonObject) .retrieve() .onStatus(HttpStatusCode::is4xxClientError, (request, response) -> { + log.error(response.getStatusText()); + log.error(response.toString()); + log.error(response.getBody().toString()); throw new CommonException(ErrorCode.INVALID_ARGUMENT); }) .onStatus(HttpStatusCode::is5xxServerError, (request, response) -> { diff --git a/src/main/java/com/inglo/giggle/notification/application/controller/consumer/NotificationCommandV1Controller.java b/src/main/java/com/inglo/giggle/notification/application/controller/consumer/NotificationCommandV1Controller.java new file mode 100644 index 0000000..dda6936 --- /dev/null +++ b/src/main/java/com/inglo/giggle/notification/application/controller/consumer/NotificationCommandV1Controller.java @@ -0,0 +1,27 @@ +package com.inglo.giggle.notification.application.controller.consumer; + +import com.inglo.giggle.notification.application.dto.request.NotificationRequestDto; +import com.inglo.giggle.notification.application.usecase.SendNotificationUseCase; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequiredArgsConstructor +@RequestMapping("/v1") +public class NotificationCommandV1Controller { + + private final SendNotificationUseCase sendNotificationUseCase; + + @PostMapping("/notification") + public void sendNotification( + @RequestBody NotificationRequestDto notificationRequestDto + ) { + sendNotificationUseCase.execute( + notificationRequestDto + ); + } + +} diff --git a/src/main/java/com/inglo/giggle/notification/application/controller/consumer/NotificationConsumerController.java b/src/main/java/com/inglo/giggle/notification/application/controller/consumer/NotificationConsumerController.java deleted file mode 100644 index d96a90a..0000000 --- a/src/main/java/com/inglo/giggle/notification/application/controller/consumer/NotificationConsumerController.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.inglo.giggle.notification.application.controller.consumer; - -import com.fasterxml.jackson.databind.ObjectMapper; -import com.inglo.giggle.notification.application.dto.request.NotificationRequestDto; -import com.inglo.giggle.notification.application.usecase.SendNotificationUseCase; -import lombok.RequiredArgsConstructor; -import org.apache.kafka.clients.consumer.ConsumerRecord; -import org.springframework.kafka.annotation.KafkaListener; -import org.springframework.stereotype.Component; - -import java.util.Map; - -@Component -@RequiredArgsConstructor -public class NotificationConsumerController { - - private final ObjectMapper objectMapper; - private final SendNotificationUseCase sendNotificationUseCase; - - @KafkaListener( - topics = "api.notification", - groupId = "api-server" - ) - public void consumeNotificationEvent( - ConsumerRecord> record - ) { - Map payload = record.value(); - - NotificationRequestDto notificationRequestDto = objectMapper.convertValue(payload, NotificationRequestDto.class); - - sendNotificationUseCase.execute( - notificationRequestDto - ); - - } - -}