Skip to content

Commit f1e1fd8

Browse files
committed
RecommendationService is added.
1 parent bde2fff commit f1e1fd8

File tree

2 files changed

+35
-18
lines changed

2 files changed

+35
-18
lines changed

src/main/java/com/trendyol/recomengine/webservice/controllers/RecommendationController.java

Lines changed: 3 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.trendyol.recomengine.webservice.repositories.RecommendationRepository;
44
import com.trendyol.recomengine.webservice.resource.Recommendation;
5+
import com.trendyol.recomengine.webservice.services.RecommendationService;
56
import org.springframework.beans.factory.annotation.Autowired;
67
import org.springframework.web.bind.annotation.GetMapping;
78
import org.springframework.web.bind.annotation.PathVariable;
@@ -14,7 +15,7 @@
1415
class RecommendationController {
1516

1617
@Autowired
17-
private RecommendationRepository repository;
18+
RecommendationService recommendationService;
1819

1920
/**
2021
* This method is called when a GET request happens. Fetches recommendations from database for the user that is
@@ -27,22 +28,6 @@ class RecommendationController {
2728
*/
2829
@GetMapping("/users/{userId}/recommendations")
2930
Recommendation getRecommendation(@PathVariable String userId) {
30-
Recommendation fetched = repository.findBy_id(userId);
31-
return fetched == null ? generateDefaultRecommendations(userId) : fetched;
32-
}
33-
34-
/**
35-
* Generates a default recommendation list for the user. For now, it returns 10 products' ids but default
36-
* recommendations could be generated based on a criterion.
37-
*
38-
* @param userId The user id of the user that is to be recommended.
39-
* @return A list of recommendations that is generated for the user.
40-
* @see Recommendation
41-
*/
42-
private Recommendation generateDefaultRecommendations(String userId) {
43-
return new Recommendation(userId, new String[]{
44-
"100", "101", "102", "103", "104",
45-
"105", "106", "107", "108", "109"
46-
});
31+
return recommendationService.getRecommendations(userId);
4732
}
4833
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package com.trendyol.recomengine.webservice.services;
2+
3+
import com.trendyol.recomengine.webservice.repositories.RecommendationRepository;
4+
import com.trendyol.recomengine.webservice.resource.Recommendation;
5+
import org.springframework.beans.factory.annotation.Autowired;
6+
import org.springframework.stereotype.Service;
7+
8+
@Service
9+
public class RecommendationService {
10+
@Autowired
11+
private RecommendationRepository repository;
12+
13+
public Recommendation getRecommendations(String userId) {
14+
Recommendation fetched = repository.findBy_id(userId);
15+
return fetched == null ? generateDefaultRecommendations(userId) : fetched;
16+
}
17+
18+
/**
19+
* Generates a default recommendation list for the user. For now, it returns 10 products' ids but default
20+
* recommendations could be generated based on a criterion.
21+
*
22+
* @param userId The user id of the user that is to be recommended.
23+
* @return A list of recommendations that is generated for the user.
24+
* @see Recommendation
25+
*/
26+
private Recommendation generateDefaultRecommendations(String userId) {
27+
return new Recommendation(userId, new String[]{
28+
"100", "101", "102", "103", "104",
29+
"105", "106", "107", "108", "109"
30+
});
31+
}
32+
}

0 commit comments

Comments
 (0)