Skip to content

Commit

Permalink
make enrich orderData
Browse files Browse the repository at this point in the history
  • Loading branch information
Fagorym committed Nov 19, 2023
1 parent 408b7fe commit 8c03178
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@ public record CompanyDto(
Boolean hasMap,
Boolean hasCardPayment,
String name,
Long id
Long id,
String category,
String cuisineCountry,
String starsCount
) {
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
package ru.nsu.fit.directors.userservice.service;

public record NotificationDto(String message) {
import ru.nsu.fit.directors.userservice.dto.response.ResponseOrderDto;

public record NotificationDto(String message, ResponseOrderDto order) {
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,20 @@
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.ParameterizedTypeReference;
import org.springframework.stereotype.Service;
import reactor.core.publisher.Flux;
import ru.nsu.fit.directors.userservice.api.OrderApi;
import ru.nsu.fit.directors.userservice.api.VkApi;
import ru.nsu.fit.directors.userservice.dto.request.RequestVkNotification;
import ru.nsu.fit.directors.userservice.dto.response.ResponseOrderDto;
import ru.nsu.fit.directors.userservice.event.OrderNotificationEvent;
import ru.nsu.fit.directors.userservice.model.Notification;
import ru.nsu.fit.directors.userservice.model.User;
import ru.nsu.fit.directors.userservice.repository.NotificationRepository;
import ru.nsu.fit.directors.userservice.repository.UserRepository;

import javax.annotation.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;
import java.util.List;

Expand All @@ -25,6 +29,7 @@ public class NotificationServiceImpl implements NotificationService {
private final UserRepository userRepository;
private final SecurityService securityService;
private final VkApi vkApi;
private final OrderApi orderApi;

@Value("${vk.api.service-key}")
private String vkServiceKey;
Expand Down Expand Up @@ -64,10 +69,24 @@ public List<NotificationDto> getNotifications() {
notifications.forEach(notification -> notification.setWasReceived(true));
notificationRepository.saveAll(notifications);
return notifications.stream()
.map(notification -> new NotificationDto(notification.getMessage()))
.map(notification ->
new NotificationDto(notification.getMessage(), enrichOrderData(notification.getOrderId()))
)
.toList();
}

public ResponseOrderDto enrichOrderData(@Nullable Long orderId) {
if (orderId != null) {
return orderApi.syncGetWithParams(
uriBuilder -> uriBuilder.path("id").queryParam("id", orderId).build(),
new ParameterizedTypeReference<>() {
}
);
} else {
return null;
}
}

@Override
public Flux<NotificationDto> getFluxNotifications() {
return Flux.fromIterable(getNotifications());
Expand Down

0 comments on commit 8c03178

Please sign in to comment.