Skip to content

Commit f5207b4

Browse files
committed
refactor: Переименовать методы с оценками
1 parent 8634f73 commit f5207b4

File tree

7 files changed

+166
-153
lines changed

7 files changed

+166
-153
lines changed

src/main/java/ru/yandex/practicum/filmorate/controller/FilmController.java

+16-9
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,23 @@
44
import lombok.RequiredArgsConstructor;
55
import org.springframework.http.HttpStatus;
66
import org.springframework.validation.annotation.Validated;
7-
import org.springframework.web.bind.annotation.*;
7+
import org.springframework.web.bind.annotation.DeleteMapping;
8+
import org.springframework.web.bind.annotation.GetMapping;
9+
import org.springframework.web.bind.annotation.PathVariable;
10+
import org.springframework.web.bind.annotation.PostMapping;
11+
import org.springframework.web.bind.annotation.PutMapping;
12+
import org.springframework.web.bind.annotation.RequestBody;
13+
import org.springframework.web.bind.annotation.RequestMapping;
14+
import org.springframework.web.bind.annotation.RequestParam;
15+
import org.springframework.web.bind.annotation.ResponseStatus;
16+
import org.springframework.web.bind.annotation.RestController;
817
import ru.yandex.practicum.filmorate.dto.FilmDto;
918
import ru.yandex.practicum.filmorate.dto.FilmSearchDto;
1019
import ru.yandex.practicum.filmorate.service.FilmService;
1120

1221
import javax.validation.Valid;
1322
import javax.validation.constraints.Max;
1423
import javax.validation.constraints.Min;
15-
import javax.validation.constraints.PositiveOrZero;
1624
import java.util.Collection;
1725

1826
@RestController
@@ -45,16 +53,15 @@ public FilmDto getFilmById(@PathVariable long id) {
4553
}
4654

4755
@PutMapping("/{id}/like/{userId}")
48-
public FilmDto likeFilm(@PathVariable long id, @PathVariable long userId,
49-
@RequestParam(defaultValue = "0")
50-
@PositiveOrZero(message = "Рейтинг может находиться в диапазоне от 1 до 10")
51-
@Max(value = 10, message = "Рейтинг не должен превышать 10.") int rating) {
52-
return filmService.likeFilm(id, userId, rating);
56+
public FilmDto addMarkToFilm(@PathVariable long id, @PathVariable long userId,
57+
@Min(value = 1, message = "Рейтинг не может быть ниже 1.")
58+
@Max(value = 10, message = "Рейтинг не должен превышать 10.") Integer rating) {
59+
return filmService.addMarkToFilm(id, userId, rating);
5360
}
5461

5562
@DeleteMapping("/{id}/like/{userId}")
56-
public FilmDto removeLike(@PathVariable long id, @PathVariable long userId) {
57-
return filmService.removeLike(id, userId);
63+
public FilmDto removeMarkFromFilm(@PathVariable long id, @PathVariable long userId) {
64+
return filmService.removeMarkFromFilm(id, userId);
5865
}
5966

6067
@GetMapping("/popular")

src/main/java/ru/yandex/practicum/filmorate/dao/FilmStorage.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@
99

1010
public interface FilmStorage extends Dao<Film> {
1111

12-
void addLikeToFilm(long filmId, long userId, int rating);
12+
void addMarkToFilm(long filmId, long userId, Integer rating);
1313

14-
void removeLikeFromFilm(long filmId, long userId);
14+
void removeMarkFromFilm(long filmId, long userId);
1515

1616
Map<Long, Map<Long, Integer>> getUsersAndFilmLikes();
1717

src/main/java/ru/yandex/practicum/filmorate/service/FilmService.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@ public interface FilmService {
1414

1515
FilmDto getFilmById(long filmId);
1616

17-
FilmDto likeFilm(long filmId, long userId, int rating);
17+
FilmDto addMarkToFilm(long filmId, long userId, Integer mark);
1818

19-
FilmDto removeLike(long filmId, long userId);
19+
FilmDto removeMarkFromFilm(long filmId, long userId);
2020

2121
void removeFilm(long filmId);
2222

src/main/java/ru/yandex/practicum/filmorate/service/impl/FilmServiceImpl.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -95,10 +95,10 @@ public FilmDto getFilmById(final long filmId) {
9595
*/
9696
@Override
9797
@Transactional
98-
public FilmDto likeFilm(final long filmId, final long userId, final int rating) {
98+
public FilmDto addMarkToFilm(final long filmId, final long userId, final Integer mark) {
9999
filmStorage.findById(filmId);
100100
userStorage.findById(userId);
101-
filmStorage.addLikeToFilm(filmId, userId, rating);
101+
filmStorage.addMarkToFilm(filmId, userId, mark);
102102
log.info("Пользователь с id {} поставил лайк фильму с id {}", userId, filmId);
103103
eventStorage.addEvent(EventType.LIKE.name(), Operation.ADD.name(), filmId, userId);
104104
return toDto(filmStorage.findById(filmId));
@@ -113,10 +113,10 @@ public FilmDto likeFilm(final long filmId, final long userId, final int rating)
113113
*/
114114
@Override
115115
@Transactional
116-
public FilmDto removeLike(final long filmId, final long userId) {
116+
public FilmDto removeMarkFromFilm(final long filmId, final long userId) {
117117
filmStorage.findById(filmId);
118118
userStorage.findById(userId);
119-
filmStorage.removeLikeFromFilm(filmId, userId);
119+
filmStorage.removeMarkFromFilm(filmId, userId);
120120
log.info("Пользователь с id {} удалил лайк фильма с id {}", userId, filmId);
121121
eventStorage.addEvent(EventType.LIKE.name(), Operation.REMOVE.name(), filmId, userId);
122122
return toDto(filmStorage.findById(filmId));

src/test/java/ru/yandex/practicum/filmorate/integration/UserServiceTest.java

+76-102
Original file line numberDiff line numberDiff line change
@@ -56,61 +56,13 @@ public void beforeAll() {
5656

5757
@BeforeEach
5858
public void beforeEach() {
59-
user1 = User.builder()
60-
.id(1)
61-
.email("email 1")
62-
.login("login 1")
63-
.name("name 1")
64-
.birthday(LocalDate.now())
65-
.build();
66-
user2 = User.builder()
67-
.id(2)
68-
.email("email 2")
69-
.login("login 2")
70-
.name("name 2")
71-
.birthday(LocalDate.now())
72-
.build();
73-
user3 = User.builder()
74-
.id(3)
75-
.email("email 3")
76-
.login("login 3")
77-
.name("name 3")
78-
.birthday(LocalDate.now())
79-
.build();
80-
81-
Mpa mpa = new Mpa(1, "G");
82-
film1 = Film.builder()
83-
.id(1)
84-
.name("film 1")
85-
.description("film 1 description")
86-
.releaseDate(LocalDate.of(2020, 12, 12))
87-
.duration(123)
88-
.mpa(mpa)
89-
.build();
90-
film2 = Film.builder()
91-
.id(2)
92-
.name("film 2")
93-
.description("film 2 description")
94-
.releaseDate(LocalDate.of(2020, 12, 12))
95-
.duration(123)
96-
.mpa(mpa)
97-
.build();
98-
film3 = Film.builder()
99-
.id(3)
100-
.name("film 3")
101-
.description("film 3 description")
102-
.releaseDate(LocalDate.of(2020, 12, 12))
103-
.duration(123)
104-
.mpa(mpa)
105-
.build();
106-
film4 = Film.builder()
107-
.id(4)
108-
.name("film 4")
109-
.description("film description 4")
110-
.releaseDate(LocalDate.of(2020, 12, 12))
111-
.duration(123)
112-
.mpa(mpa)
113-
.build();
59+
user1 = createUser(1);
60+
user2 = createUser(2);
61+
user3 = createUser(3);
62+
film1 = createFilm(1);
63+
film2 = createFilm(2);
64+
film3 = createFilm(3);
65+
film4 = createFilm(4);
11466
userStorage.add(user1);
11567
userStorage.add(user2);
11668
userStorage.add(user3);
@@ -123,14 +75,14 @@ public void beforeEach() {
12375
@Test
12476
@DisplayName("Тест получения рекомендаций c двумя пользователями")
12577
public void findRecommendationsBetweenTwoUsers() {
126-
filmStorage.addLikeToFilm(film1.getId(), user1.getId(), 8);
127-
filmStorage.addLikeToFilm(film3.getId(), user1.getId(), 7);
78+
filmStorage.addMarkToFilm(film1.getId(), user1.getId(), 8);
79+
filmStorage.addMarkToFilm(film3.getId(), user1.getId(), 7);
12880

129-
filmStorage.addLikeToFilm(film1.getId(), user2.getId(), 8);
130-
filmStorage.addLikeToFilm(film2.getId(), user2.getId(), 5);
131-
filmStorage.addLikeToFilm(film4.getId(), user2.getId(), 9);
81+
filmStorage.addMarkToFilm(film1.getId(), user2.getId(), 8);
82+
filmStorage.addMarkToFilm(film2.getId(), user2.getId(), 5);
83+
filmStorage.addMarkToFilm(film4.getId(), user2.getId(), 9);
13284

133-
film4.setRating(9);
85+
film4.setRating(9.0);
13486

13587
Collection<FilmDto> recommendations = userService.showRecommendations(user1.getId());
13688

@@ -144,15 +96,15 @@ public void findRecommendationsBetweenTwoUsers() {
14496
@Test
14597
@DisplayName("Тест получения нескольких рекомендаций c двумя пользователями")
14698
public void findSeveralRecommendationsBetweenTwoUsers() {
147-
filmStorage.addLikeToFilm(film1.getId(), user1.getId(), 8);
148-
filmStorage.addLikeToFilm(film3.getId(), user1.getId(), 7);
99+
filmStorage.addMarkToFilm(film1.getId(), user1.getId(), 8);
100+
filmStorage.addMarkToFilm(film3.getId(), user1.getId(), 7);
149101

150-
filmStorage.addLikeToFilm(film1.getId(), user2.getId(), 8);
151-
filmStorage.addLikeToFilm(film2.getId(), user2.getId(), 6);
152-
filmStorage.addLikeToFilm(film4.getId(), user2.getId(), 9);
102+
filmStorage.addMarkToFilm(film1.getId(), user2.getId(), 8);
103+
filmStorage.addMarkToFilm(film2.getId(), user2.getId(), 6);
104+
filmStorage.addMarkToFilm(film4.getId(), user2.getId(), 9);
153105

154-
film2.setRating(6);
155-
film4.setRating(9);
106+
film2.setRating(6.0);
107+
film4.setRating(9.0);
156108

157109
Collection<FilmDto> recommendations = userService.showRecommendations(user1.getId());
158110

@@ -166,17 +118,17 @@ public void findSeveralRecommendationsBetweenTwoUsers() {
166118
@Test
167119
@DisplayName("Тест получения рекомендаций с разным количеством совпавших оцененных фильмов")
168120
public void findRecommendations() {
169-
filmStorage.addLikeToFilm(film1.getId(), user1.getId(), 8);
170-
filmStorage.addLikeToFilm(film3.getId(), user1.getId(), 7);
121+
filmStorage.addMarkToFilm(film1.getId(), user1.getId(), 8);
122+
filmStorage.addMarkToFilm(film3.getId(), user1.getId(), 7);
171123

172-
filmStorage.addLikeToFilm(film1.getId(), user2.getId(), 8);
173-
filmStorage.addLikeToFilm(film2.getId(), user2.getId(), 5);
124+
filmStorage.addMarkToFilm(film1.getId(), user2.getId(), 8);
125+
filmStorage.addMarkToFilm(film2.getId(), user2.getId(), 5);
174126

175-
filmStorage.addLikeToFilm(film1.getId(), user3.getId(), 9);
176-
filmStorage.addLikeToFilm(film2.getId(), user3.getId(), 6);
177-
filmStorage.addLikeToFilm(film3.getId(), user3.getId(), 7);
178-
filmStorage.addLikeToFilm(film4.getId(), user3.getId(), 9);
179-
film4.setRating(9);
127+
filmStorage.addMarkToFilm(film1.getId(), user3.getId(), 9);
128+
filmStorage.addMarkToFilm(film2.getId(), user3.getId(), 6);
129+
filmStorage.addMarkToFilm(film3.getId(), user3.getId(), 7);
130+
filmStorage.addMarkToFilm(film4.getId(), user3.getId(), 9);
131+
film4.setRating(9.0);
180132

181133
Collection<FilmDto> recommendations = userService.showRecommendations(user1.getId());
182134

@@ -190,11 +142,11 @@ public void findRecommendations() {
190142
@Test
191143
@DisplayName("Тест получение пустого списка рекомендаций при совпадении оценок")
192144
public void getEmptyListWhenSameRatings() {
193-
filmStorage.addLikeToFilm(film1.getId(), user1.getId(), 8);
194-
filmStorage.addLikeToFilm(film3.getId(), user1.getId(), 7);
145+
filmStorage.addMarkToFilm(film1.getId(), user1.getId(), 8);
146+
filmStorage.addMarkToFilm(film3.getId(), user1.getId(), 7);
195147

196-
filmStorage.addLikeToFilm(film1.getId(), user2.getId(), 8);
197-
filmStorage.addLikeToFilm(film3.getId(), user2.getId(), 7);
148+
filmStorage.addMarkToFilm(film1.getId(), user2.getId(), 8);
149+
filmStorage.addMarkToFilm(film3.getId(), user2.getId(), 7);
198150

199151
Collection<FilmDto> recommendations = userService.showRecommendations(user1.getId());
200152

@@ -206,17 +158,17 @@ public void getEmptyListWhenSameRatings() {
206158
@Test
207159
@DisplayName("Тест получения рекомендаций c тремя пользователями при одинаковых оценках, но с разным количеством лайков")
208160
public void findRecommendationsWithSameRatings() {
209-
filmStorage.addLikeToFilm(film1.getId(), user1.getId(), 8);
210-
filmStorage.addLikeToFilm(film3.getId(), user1.getId(), 7);
161+
filmStorage.addMarkToFilm(film1.getId(), user1.getId(), 8);
162+
filmStorage.addMarkToFilm(film3.getId(), user1.getId(), 7);
211163

212-
filmStorage.addLikeToFilm(film1.getId(), user2.getId(), 8);
213-
filmStorage.addLikeToFilm(film3.getId(), user2.getId(), 7);
164+
filmStorage.addMarkToFilm(film1.getId(), user2.getId(), 8);
165+
filmStorage.addMarkToFilm(film3.getId(), user2.getId(), 7);
214166

215-
filmStorage.addLikeToFilm(film1.getId(), user3.getId(), 8);
216-
filmStorage.addLikeToFilm(film2.getId(), user3.getId(), 5);
217-
filmStorage.addLikeToFilm(film3.getId(), user3.getId(), 7);
218-
filmStorage.addLikeToFilm(film4.getId(), user3.getId(), 9);
219-
film4.setRating(9);
167+
filmStorage.addMarkToFilm(film1.getId(), user3.getId(), 8);
168+
filmStorage.addMarkToFilm(film2.getId(), user3.getId(), 5);
169+
filmStorage.addMarkToFilm(film3.getId(), user3.getId(), 7);
170+
filmStorage.addMarkToFilm(film4.getId(), user3.getId(), 9);
171+
film4.setRating(9.0);
220172

221173
Collection<FilmDto> recommendations = userService.showRecommendations(user1.getId());
222174

@@ -230,18 +182,18 @@ public void findRecommendationsWithSameRatings() {
230182
@Test
231183
@DisplayName("Тест получения рекомендаций c разницей в несколько баллов")
232184
public void findRecommendationsWithDifferentRatings() {
233-
filmStorage.addLikeToFilm(film1.getId(), user1.getId(), 8);
234-
filmStorage.addLikeToFilm(film3.getId(), user1.getId(), 7);
185+
filmStorage.addMarkToFilm(film1.getId(), user1.getId(), 8);
186+
filmStorage.addMarkToFilm(film3.getId(), user1.getId(), 7);
235187

236-
filmStorage.addLikeToFilm(film1.getId(), user2.getId(), 9);
237-
filmStorage.addLikeToFilm(film2.getId(), user2.getId(), 5);
238-
filmStorage.addLikeToFilm(film3.getId(), user2.getId(), 6);
239-
filmStorage.addLikeToFilm(film4.getId(), user2.getId(), 9);
188+
filmStorage.addMarkToFilm(film1.getId(), user2.getId(), 9);
189+
filmStorage.addMarkToFilm(film2.getId(), user2.getId(), 5);
190+
filmStorage.addMarkToFilm(film3.getId(), user2.getId(), 6);
191+
filmStorage.addMarkToFilm(film4.getId(), user2.getId(), 9);
240192

241-
filmStorage.addLikeToFilm(film1.getId(), user3.getId(), 6);
242-
filmStorage.addLikeToFilm(film2.getId(), user3.getId(), 5);
243-
filmStorage.addLikeToFilm(film3.getId(), user3.getId(), 10);
244-
film4.setRating(9);
193+
filmStorage.addMarkToFilm(film1.getId(), user3.getId(), 6);
194+
filmStorage.addMarkToFilm(film2.getId(), user3.getId(), 5);
195+
filmStorage.addMarkToFilm(film3.getId(), user3.getId(), 10);
196+
film4.setRating(9.0);
245197

246198
Collection<FilmDto> recommendations = userService.showRecommendations(user1.getId());
247199

@@ -255,13 +207,35 @@ public void findRecommendationsWithDifferentRatings() {
255207
@Test
256208
@DisplayName("Тест получение пустого списка рекомендаций, когда только один пользователь")
257209
public void getEmptyListWithOnlyOneUser() {
258-
filmStorage.addLikeToFilm(film1.getId(), user1.getId(), 8);
259-
filmStorage.addLikeToFilm(film3.getId(), user1.getId(), 7);
210+
filmStorage.addMarkToFilm(film1.getId(), user1.getId(), 8);
211+
filmStorage.addMarkToFilm(film3.getId(), user1.getId(), 7);
260212

261213
Collection<FilmDto> recommendations = userService.showRecommendations(user1.getId());
262214

263215
assertThat(recommendations)
264216
.isNotNull()
265217
.isEmpty();
266218
}
219+
220+
private User createUser(int id) {
221+
return User.builder()
222+
.id(id)
223+
.email("email " + id)
224+
.login("login " + id)
225+
.name("name " + id)
226+
.birthday(LocalDate.now())
227+
.build();
228+
}
229+
230+
private Film createFilm(int id) {
231+
Mpa mpa = new Mpa(1, "G");
232+
return Film.builder()
233+
.id(id)
234+
.name("film " + id)
235+
.description("film " + id + " description")
236+
.releaseDate(LocalDate.of(2020, 12, 12))
237+
.duration(123)
238+
.mpa(mpa)
239+
.build();
240+
}
267241
}

0 commit comments

Comments
 (0)