Skip to content

Commit fadcfbb

Browse files
committed
reloacted code in their respective services, & enabled context path
1 parent dfda0e5 commit fadcfbb

26 files changed

+1138
-1189
lines changed

notes - IssuesFaced

+32-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,35 @@
11
Issue - MultipleRepresentations
22
Multiple representations of the same entity [servie.track_servie.entity.ProductionCompany#437] are being merged.
33
Detached: [ProductionCompany(id=437, name=Heyday Films, logoPath=/nu20mtwbEIhUNnQ5NXVhHsNknZj.png, originCountry=GB, servies=null)];
4-
Detached: [ProductionCompany(id=437, name=Heyday Films, logoPath=/nu20mtwbEIhUNnQ5NXVhHsNknZj.png, originCountry=GB, servies=null)]] with root cause
4+
Detached: [ProductionCompany(id=437, name=Heyday Films, logoPath=/nu20mtwbEIhUNnQ5NXVhHsNknZj.png, originCountry=GB, servies=null)]] with root cause
5+
6+
7+
8+
9+
10+
11+
################################################################
12+
################################################################
13+
***************************
14+
APPLICATION FAILED TO START
15+
***************************
16+
17+
Description:
18+
19+
The dependencies of some of the beans in the application context form a cycle:
20+
21+
listController (field private servie.track_servie.service.ListService servie.track_servie.controller.ListController.listService)
22+
23+
listService (field private servie.track_servie.service.ServieService servie.track_servie.service.ListService.servieService)
24+
┌─────┐
25+
| servieService (field private servie.track_servie.service.SeriesService servie.track_servie.service.ServieService.seriesService)
26+
↑ ↓
27+
| seriesService (field private servie.track_servie.service.SeasonService servie.track_servie.service.SeriesService.seasonService)
28+
↑ ↓
29+
| seasonService (field private servie.track_servie.service.ServieService servie.track_servie.service.SeasonService.servieService)
30+
└─────┘
31+
32+
33+
Action:
34+
35+
Relying upon circular references is discouraged and they are prohibited by default. Update your application to remove the dependency cycle between beans. As a last resort, it may be possible to break the cycle automatically by setting spring.main.allow-circular-references to true.

profilePics/UserId-1.png

58.7 KB
Loading

src/main/java/servie/track_servie/config/ApiSecurity.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,10 @@ public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Excepti
2828
.csrf(csrf -> csrf.disable())
2929
.authorizeHttpRequests(reuest -> reuest.requestMatchers(
3030
"src/main/resources/static/css/mystyles.css",
31-
"/track-servie/auth/register",
32-
"/track-servie/auth/login",
33-
"/track-servie/react/**", // temporarily
34-
"/track-servie/user/image/**",
31+
"/auth/register",
32+
"/auth/login",
33+
"/**", // temporarily
34+
"/user/image/**",
3535
"/profilePics/**",
3636
"/posterImgs/**",
3737
"/staticPosterImgs/**")

src/main/java/servie/track_servie/controller/AuthController.java

+3-4
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,8 @@
2121
import servie.track_servie.service.UserService;
2222
import servie.track_servie.utils.JwtUtil;
2323

24-
// @Controller
2524
@RestController
26-
@RequestMapping("/track-servie/auth")
25+
@RequestMapping("auth")
2726
public class AuthController
2827
{
2928
@Autowired
@@ -37,7 +36,7 @@ public class AuthController
3736
@Autowired
3837
private UserService userService;
3938

40-
@PostMapping("/login")
39+
@PostMapping("login")
4140
public ResponseEntity<?> login(@RequestBody LoginRequest authRequest)
4241
{
4342
try
@@ -62,7 +61,7 @@ public ResponseEntity<?> login(@RequestBody LoginRequest authRequest)
6261
}
6362
}
6463

65-
@PostMapping("/register")
64+
@PostMapping("register")
6665
public ResponseEntity<String> register(@RequestBody RegisterRequest registerRequest)
6766
{
6867
try

src/main/java/servie/track_servie/controller/EpisodeController.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
import servie.track_servie.service.EpisodeService;
1212

1313
@RestController
14-
@RequestMapping("/track-servie/react/servies/{tmdbId}/Season/{seasonNo}/Episode/{episodeNo}")
14+
@RequestMapping("servies/{tmdbId}/Season/{seasonNo}/Episode/{episodeNo}")
1515
public class EpisodeController
1616
{
1717
@Autowired

src/main/java/servie/track_servie/controller/ListController.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
import servie.track_servie.service.ListService;
1313

1414
@Controller
15-
@RequestMapping("/track-servie/list")
15+
@RequestMapping("list")
1616
public class ListController
1717
{
1818
@Autowired

src/main/java/servie/track_servie/controller/MovieCollectionController.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
import servie.track_servie.service.MovieCollectionService;
1111

1212
@Controller
13-
@RequestMapping("/track-servie/servies/movie-collection/{id}")
13+
@RequestMapping("servies/movie-collection/{id}")
1414
public class MovieCollectionController
1515
{
1616
@Autowired

src/main/java/servie/track_servie/controller/PersonController.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
import servie.track_servie.service.PersonService;
1212

1313
@RestController
14-
@RequestMapping("/track-servie/react/person/{personId}")
14+
@RequestMapping("person/{personId}")
1515
public class PersonController
1616
{
1717
@Autowired
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,26 @@
11
package servie.track_servie.controller;
22

3-
import java.util.List;
43
import org.springframework.beans.factory.annotation.Autowired;
4+
import org.springframework.http.HttpStatus;
5+
import org.springframework.http.ResponseEntity;
56
import org.springframework.security.core.annotation.AuthenticationPrincipal;
67
import org.springframework.security.core.userdetails.UserDetails;
7-
import org.springframework.stereotype.Controller;
88
import org.springframework.ui.Model;
99
import org.springframework.web.bind.annotation.GetMapping;
1010
import org.springframework.web.bind.annotation.PathVariable;
11+
import org.springframework.web.bind.annotation.PutMapping;
1112
import org.springframework.web.bind.annotation.RequestMapping;
1213
import org.springframework.web.bind.annotation.RequestParam;
14+
import org.springframework.web.bind.annotation.RestController;
1315
import org.springframework.web.util.UriComponentsBuilder;
1416
import servie.track_servie.enums.ServieType;
15-
import servie.track_servie.payload.dtos.operationsImage.Image;
17+
import servie.track_servie.payload.dtos.SeasonPageDtos.SeasonDto;
1618
import servie.track_servie.repository.UserRepository;
1719
import servie.track_servie.service.EpisodeService;
1820
import servie.track_servie.service.SeasonService;
1921

20-
@Controller
21-
@RequestMapping("/track-servie/servies/{tmdbId}/Season/{seasonNo}")
22+
@RestController
23+
@RequestMapping("servies/{tmdbId}/Season/{seasonNo}")
2224
public class SeasonController
2325
{
2426
@Autowired
@@ -28,32 +30,21 @@ public class SeasonController
2830
@Autowired
2931
private UserRepository userRepository;
3032

31-
// Toggles the watch button of multiple Episodes located on SeasonPage
32-
@GetMapping("toggleepisodes")
33-
public String toggleMultipleEpisodeWatch(@PathVariable Integer tmdbId,
34-
@PathVariable Integer seasonNo,
35-
@RequestParam(value = "watch", required = true) String watch,
36-
@RequestParam(value = "fromEpisodeNumber", required = true) String fromEpisodeNumber,
37-
@RequestParam(value = "toEpisodeNumber", required = true) String toEpisodeNumber,
38-
@AuthenticationPrincipal UserDetails userDetails)
33+
// Returns SeasonPage containing selected Season from SeriesPage
34+
@GetMapping("")
35+
public ResponseEntity<SeasonDto> getSeason(@PathVariable Integer tmdbId, @PathVariable Integer seasonNo)
3936
{
40-
Integer userId = userRepository.findByUsername(userDetails.getUsername()).get().getId();
41-
Integer episodeNoInt = Integer.parseInt(fromEpisodeNumber);
42-
Integer toEpisodeNumberInt = Integer.parseInt(toEpisodeNumber);
43-
boolean watchValue = Boolean.parseBoolean(watch);
44-
episodeService.toggleMultipleEpisodeWatch(userId, tmdbId, seasonNo, episodeNoInt, toEpisodeNumberInt, watchValue);
45-
return "redirect:/track-servie/servies/"+tmdbId+"/Season/"+seasonNo;
37+
Integer userId = userRepository.findByUsername("Aakkiieezz").get().getId();
38+
SeasonDto season = seasonService.getSeason(userId, tmdbId, seasonNo);
39+
return new ResponseEntity<SeasonDto>(season, null, HttpStatus.OK);
4640
}
4741

48-
// Returns ImageSearchSeasonPage containing list of Posters(for specific Season)
49-
@GetMapping("posters")
50-
public String getSeasonImages(@PathVariable Integer tmdbId, @PathVariable Integer seasonNo, Model model)
42+
@PutMapping("toggle")
43+
public ResponseEntity<HttpStatus> toggleWatch(@PathVariable Integer tmdbId, @PathVariable Integer seasonNo)
5144
{
52-
List<Image> images = seasonService.getSeasonImages(tmdbId, seasonNo);
53-
model.addAttribute("images", images);
54-
model.addAttribute("tmdbId", tmdbId);
55-
model.addAttribute("seasonNo", seasonNo);
56-
return "ImageSearchSeasonPage";
45+
Integer userId = userRepository.findByUsername("Aakkiieezz").get().getId();
46+
seasonService.toggleSeasonWatch(userId, tmdbId, seasonNo);
47+
return ResponseEntity.status(HttpStatus.OK).build();
5748
}
5849

5950
// Redirects to SeasonPage with changed Season Poster
@@ -67,4 +58,41 @@ public String changeImage(@PathVariable Integer tmdbId, @PathVariable Integer se
6758
.queryParam("type", ServieType.SERIES.toString());
6859
return builder.buildAndExpand(tmdbId).toUriString();
6960
}
61+
// // Toggles the watch button of multiple Episodes located on SeasonPage
62+
// @GetMapping("toggleepisodes")
63+
// public String toggleMultipleEpisodeWatch(@PathVariable Integer tmdbId,
64+
// @PathVariable Integer seasonNo,
65+
// @RequestParam(value = "watch", required = true) String watch,
66+
// @RequestParam(value = "fromEpisodeNumber", required = true) String fromEpisodeNumber,
67+
// @RequestParam(value = "toEpisodeNumber", required = true) String toEpisodeNumber,
68+
// @AuthenticationPrincipal UserDetails userDetails)
69+
// {
70+
// Integer userId = userRepository.findByUsername(userDetails.getUsername()).get().getId();
71+
// Integer episodeNoInt = Integer.parseInt(fromEpisodeNumber);
72+
// Integer toEpisodeNumberInt = Integer.parseInt(toEpisodeNumber);
73+
// boolean watchValue = Boolean.parseBoolean(watch);
74+
// episodeService.toggleMultipleEpisodeWatch(userId, tmdbId, seasonNo, episodeNoInt, toEpisodeNumberInt, watchValue);
75+
// return "redirect:/track-servie/servies/"+tmdbId+"/Season/"+seasonNo;
76+
// }
77+
// // Returns ImageSearchSeasonPage containing list of Posters(for specific Season)
78+
// @GetMapping("posters")
79+
// public String getSeasonImages(@PathVariable Integer tmdbId, @PathVariable Integer seasonNo, Model model)
80+
// {
81+
// List<Image> images = seasonService.getSeasonImages(tmdbId, seasonNo);
82+
// model.addAttribute("images", images);
83+
// model.addAttribute("tmdbId", tmdbId);
84+
// model.addAttribute("seasonNo", seasonNo);
85+
// return "ImageSearchSeasonPage";
86+
// }
87+
// // Redirects to SeasonPage with changed Season Poster
88+
// @GetMapping("posterChange")
89+
// public String changeImage(@PathVariable Integer tmdbId, @PathVariable Integer seasonNo, @RequestParam(value = "filePath", defaultValue = "") String filePath, Model model, @AuthenticationPrincipal UserDetails userDetails)
90+
// {
91+
// Integer userId = userRepository.findByUsername(userDetails.getUsername()).get().getId();
92+
// seasonService.changeImage(userId, tmdbId, seasonNo, filePath);
93+
// // return "redirect:/track-servie/servies/"+tmdbId;
94+
// UriComponentsBuilder builder = UriComponentsBuilder.fromUriString("redirect:/track-servie/servies/{tmdbId}")
95+
// .queryParam("type", ServieType.SERIES.toString());
96+
// return builder.buildAndExpand(tmdbId).toUriString();
97+
// }
7098
}

src/main/java/servie/track_servie/controller/SeasonControllerReact.java

-61
This file was deleted.

src/main/java/servie/track_servie/controller/SeriesController.java

+11-11
Original file line numberDiff line numberDiff line change
@@ -10,18 +10,18 @@
1010
import servie.track_servie.service.SeriesService;
1111

1212
@Controller
13-
@RequestMapping("/track-servie/servies")
13+
@RequestMapping("servies")
1414
public class SeriesController
1515
{
16-
@Autowired
17-
private SeriesService seriesService;
16+
@Autowired
17+
private SeriesService seriesService;
1818

19-
// Returns SearchSeriesPage containing selected Series from SearchPage
20-
@GetMapping("{tmdbId}/search")
21-
public String searchSeries(@PathVariable Integer tmdbId, Model model)
22-
{
23-
SeriesDtoSearchSeriesPage seriesDto = seriesService.searchSeries(tmdbId);
24-
model.addAttribute("series", seriesDto);
25-
return "SearchSeriesPage";
26-
}
19+
// Returns SearchSeriesPage containing selected Series from SearchPage
20+
@GetMapping("{tmdbId}/search")
21+
public String searchSeries(@PathVariable Integer tmdbId, Model model)
22+
{
23+
SeriesDtoSearchSeriesPage seriesDto = seriesService.searchSeries(tmdbId);
24+
model.addAttribute("series", seriesDto);
25+
return "SearchSeriesPage";
26+
}
2727
}

0 commit comments

Comments
 (0)