diff --git a/bot-commands-processing-lambda/src/main/java/aviation/bot/service/configurations/AppConfiguration.java b/bot-commands-processing-lambda/src/main/java/aviation/bot/service/configurations/AppConfiguration.java index 69ea1cc..6ebfd38 100644 --- a/bot-commands-processing-lambda/src/main/java/aviation/bot/service/configurations/AppConfiguration.java +++ b/bot-commands-processing-lambda/src/main/java/aviation/bot/service/configurations/AppConfiguration.java @@ -158,11 +158,13 @@ public ChoosingAirportPlainTextProcessor choosingAirportPlainTextProcessor( BotTemplatesResolver botTemplatesResolver, FlightradarApiLambdaAdapter flightradarApiLambdaAdapter, MessagesConfig messagesConfig, - WidebodyAircraftDatabaseProvider widebodyAircraftDatabaseProvider) { + WidebodyAircraftDatabaseProvider widebodyAircraftDatabaseProvider, + UserAircraftFamilyFilterDatabaseProvider userAircraftFamilyFilterDatabaseProvider) { return ChoosingAirportPlainTextProcessor.create( userDatabaseProvider, airportDatabaseProvider, widebodyAircraftDatabaseProvider, + userAircraftFamilyFilterDatabaseProvider, flightradarApiLambdaAdapter, telegramClient, botTemplatesResolver, diff --git a/bot-commands-processing-lambda/src/main/java/aviation/bot/service/services/processors/userstates/ChoosingAirportPlainTextProcessor.java b/bot-commands-processing-lambda/src/main/java/aviation/bot/service/services/processors/userstates/ChoosingAirportPlainTextProcessor.java index 3b8c967..d446b6d 100644 --- a/bot-commands-processing-lambda/src/main/java/aviation/bot/service/services/processors/userstates/ChoosingAirportPlainTextProcessor.java +++ b/bot-commands-processing-lambda/src/main/java/aviation/bot/service/services/processors/userstates/ChoosingAirportPlainTextProcessor.java @@ -17,6 +17,7 @@ import project.vilsoncake.common.models.BotCommand; import project.vilsoncake.common.models.UserStateResponseTemplate; import project.vilsoncake.common.repositories.AirportDatabaseProvider; +import project.vilsoncake.common.repositories.UserAircraftFamilyFilterDatabaseProvider; import project.vilsoncake.common.repositories.UserDatabaseProvider; import project.vilsoncake.common.repositories.WidebodyAircraftDatabaseProvider; import project.vilsoncake.common.services.adapters.FlightradarApiLambdaAdapter; @@ -29,6 +30,7 @@ public class ChoosingAirportPlainTextProcessor implements PlainTextProcessor { private final UserDatabaseProvider userDatabaseProvider; private final AirportDatabaseProvider airportDatabaseProvider; private final WidebodyAircraftDatabaseProvider widebodyAircraftDatabaseProvider; + private final UserAircraftFamilyFilterDatabaseProvider filterDatabaseProvider; private final FlightradarApiLambdaAdapter flightradarApiLambdaAdapter; private final TelegramClient telegramClient; private final BotTemplatesResolver botTemplatesResolver; @@ -80,12 +82,18 @@ public void process(String username, long chatId, String airportCode) { telegramClient.sendMessage(chatId, message); - sendAircraftFilterRecommendationIfNeeded(airport, chatId, username); + sendAircraftFilterRecommendationIfNeeded(airport, chatId, user); } private void sendAircraftFilterRecommendationIfNeeded( - AirportEntity airport, long chatId, String username) { + AirportEntity airport, long chatId, UserEntity user) { try { + long selectedAircraftFamilyCount = filterDatabaseProvider.countSelectedFamilies(user); + + if (selectedAircraftFamilyCount > 0) { + return; + } + List allWideBodyAircraft = widebodyAircraftDatabaseProvider.getAllWideBodyAircraft(); AirportRequest airportRequest = @@ -110,7 +118,8 @@ private void sendAircraftFilterRecommendationIfNeeded( BotCommand.AIRCRAFT.getCommand()); telegramClient.sendMessage(chatId, aircraftFilterRecommendationMessage); - log.info("Sent aircraft filter recommendation for the message to user {}", username); + log.info( + "Sent aircraft filter recommendation for the message to user {}", user.getUsername()); } } } catch (Exception e) {