Skip to content

Commit 6f829a8

Browse files
committed
User's age handled
1 parent 7d547fd commit 6f829a8

File tree

3 files changed

+36
-8
lines changed

3 files changed

+36
-8
lines changed

src/main/java/org/oopproject/Database.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,6 @@ public Integer getUserAge(long chatId) {
6060
e.printStackTrace();
6161
}
6262
return null;
63-
6463
}
6564

6665
public void updateGenreIndexesJson(long chatId, String genreIndexesJson) {

src/main/java/org/oopproject/TelegramBot.java

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
import org.oopproject.parameters.MovieParameters;
1515
import org.oopproject.parameters.ParametersBuilder;
1616
import org.oopproject.deserializers.FilmDeserializer;
17+
18+
import static org.oopproject.utils.AgeRating.getRatingForAge;
1719
import static org.oopproject.utils.CommandWaiter.*;
1820
import static org.oopproject.utils.Config.tmdbService;
1921
import static org.oopproject.utils.Validators.isCommand;
@@ -251,16 +253,15 @@ protected String handleYear(String messageText, long chatId) {
251253
try {
252254
int userYear = Integer.parseInt(messageText);
253255
int currentYear = java.time.Year.now().getValue();
254-
256+
String userRating = getRatingForAge(getUserAge(chatId));
255257
if (userYear < 1900 || userYear > currentYear) {
256258
responseMessage = "Пожалуйста, введите год в диапазоне от 1900 до " + currentYear;
257259
return responseMessage;
258260
}
259261

260262
MovieParameters params = new ParametersBuilder()
261263
.withYear(userYear)
262-
.withCertificationLte("PG-13")
263-
.withCertificationCountry("US")
264+
.withCertificationLte(userRating)
264265
.build();
265266
ListDeserializer moviesByYear = tmdbService.findMovie(params);
266267

@@ -441,9 +442,6 @@ public void startBroadcasting() {
441442
}
442443
}
443444

444-
445-
446-
447445
private void sendMessage(long chatId, String text) {
448446
SendMessage message=SendMessage.builder()
449447
.chatId(chatId)
@@ -481,5 +479,4 @@ public String handleSubscription(String messageText, long chatId) {
481479
}
482480
return responseMessage;
483481
}
484-
485482
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package org.oopproject.utils;
2+
3+
public enum AgeRating {
4+
GENERAL("G", 0, 5),
5+
PARENTAL_GUIDANCE("PG", 6, 11),
6+
WITH_PARENTS_STRONGLY("PG-13", 12, 15),
7+
RESTRICTED("R", 16, 17),
8+
ADULTS("NC-17", 18, 120);
9+
10+
private final String rating;
11+
private final int minAge;
12+
private final int maxAge;
13+
14+
AgeRating(String rating, int minAge, int maxAge) {
15+
this.rating = rating;
16+
this.minAge = minAge;
17+
this.maxAge = maxAge;
18+
}
19+
20+
public static String getRatingForAge(int age) {
21+
for (AgeRating rating : values()) {
22+
if (age >= rating.minAge && age <= rating.maxAge) {
23+
return rating.rating;
24+
}
25+
}
26+
return null;
27+
}
28+
29+
public String getRating() {
30+
return rating;
31+
}
32+
}

0 commit comments

Comments
 (0)