Skip to content

Commit 67c2941

Browse files
committed
saving before branch change
1 parent 5b9ae05 commit 67c2941

File tree

16 files changed

+205
-61
lines changed

16 files changed

+205
-61
lines changed

issuesFaced

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
Issue - MultipleRepresentations
2+
Multiple representations of the same entity [servie.track_servie.entity.ProductionCompany#437] are being merged.
3+
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

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Excepti
3030
"src/main/resources/static/css/mystyles.css",
3131
"/track-servie/auth/register",
3232
"/track-servie/auth/login",
33-
"/track-servie/servie/react",
33+
"/track-servie/react/servies/**",
3434
"/track-servie/user/image/**",
3535
"/profilePics/**")
3636
.permitAll()

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

-2
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ public class AuthController
3939
private UserService userService;
4040

4141
@PostMapping("/login")
42-
@CrossOrigin(origins = "http://localhost:5173")
4342
public ResponseEntity<?> login(@RequestBody LoginRequest authRequest)
4443
{
4544
try
@@ -65,7 +64,6 @@ public ResponseEntity<?> login(@RequestBody LoginRequest authRequest)
6564
}
6665

6766
@PostMapping("/register")
68-
@CrossOrigin(origins = "http://localhost:5173")
6967
public ResponseEntity<String> register(@RequestBody RegisterRequest registerRequest)
7068
{
7169
try

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

+13-3
Original file line numberDiff line numberDiff line change
@@ -4,28 +4,29 @@
44
import org.springframework.beans.factory.annotation.Autowired;
55
import org.springframework.http.ResponseEntity;
66
import org.springframework.web.bind.annotation.CrossOrigin;
7+
import org.springframework.web.bind.annotation.GetMapping;
8+
import org.springframework.web.bind.annotation.PathVariable;
79
import org.springframework.web.bind.annotation.PostMapping;
810
import org.springframework.web.bind.annotation.RequestBody;
911
import org.springframework.web.bind.annotation.RequestMapping;
1012
import org.springframework.web.bind.annotation.RequestParam;
1113
import org.springframework.web.bind.annotation.RestController;
1214
import servie.track_servie.payload.dtos.FormData;
1315
import servie.track_servie.payload.dtos.operationsHomePageDtos.ResponseDtoHomePage;
16+
import servie.track_servie.payload.dtos.operationsServiePageDtos.ServieDtoServiePage;
1417
import servie.track_servie.repository.UserRepository;
1518
import servie.track_servie.service.ServieService;
1619

1720
@RestController
18-
@RequestMapping("/track-servie/servie/react")
21+
@RequestMapping("/track-servie/react/servies")
1922
public class ServieControllerReact
2023
{
2124
@Autowired
2225
private ServieService servieService;
2326
@Autowired
2427
private UserRepository userRepository;
2528

26-
// Returns HomePage containing all Servies from the database which matches the filter
2729
@PostMapping("")
28-
@CrossOrigin(origins = "http://localhost:5173") // Your React app's URL
2930
public ResponseEntity<ResponseDtoHomePage> getServiesByFilter(
3031
// @RequestParam(value = "type", defaultValue = "") String type,
3132
// @RequestParam(value = "watched", required = false) Boolean watched,
@@ -57,4 +58,13 @@ public ResponseEntity<ResponseDtoHomePage> getServiesByFilter(
5758
ResponseEntity<ResponseDtoHomePage> res = new ResponseEntity<ResponseDtoHomePage>(response, null, 200);
5859
return res;
5960
}
61+
62+
@GetMapping("{tmdbId}")
63+
public ResponseEntity<ServieDtoServiePage> getServieReact(@RequestParam(value = "type", required = true) String type, @PathVariable Integer tmdbId)
64+
{
65+
Integer userId = userRepository.findByUsername("Aakkiieezz").get().getId();
66+
ServieDtoServiePage servie = servieService.getServie(userId, type, tmdbId);
67+
ResponseEntity<ServieDtoServiePage> res = new ResponseEntity<ServieDtoServiePage>(servie, null, 200);
68+
return res;
69+
}
6070
}

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

-2
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ public class UserController
3232
private UserRepository userRepository;
3333
private static final String profilePicsDirectory = "/home/aakkiieezz/Coding/track_servie/profilePics/";
3434

35-
@CrossOrigin(origins = "http://localhost:5173")
3635
@PostMapping(value = "/image/upload", produces = {MediaType.IMAGE_JPEG_VALUE, "application/json"})
3736
public ResponseEntity<?> profileImgUpload(@RequestParam("file") MultipartFile file /*, @AuthenticationPrincipal UserDetails userDetails*/)
3837
{
@@ -54,7 +53,6 @@ public ResponseEntity<?> profileImgUpload(@RequestParam("file") MultipartFile fi
5453
}
5554
}
5655

57-
@CrossOrigin(origins = "http://localhost:5173")
5856
@PostMapping(value = "/image/delete")
5957
public ResponseEntity<?> profileImgDelete()
6058
{
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
package servie.track_servie.entity;
2+
3+
import com.fasterxml.jackson.annotation.JsonProperty;
4+
import jakarta.persistence.Column;
5+
import jakarta.persistence.Entity;
6+
import jakarta.persistence.Id;
7+
import jakarta.persistence.Table;
8+
import lombok.Data;
9+
10+
@Data
11+
@Entity
12+
@Table(name = "casting")
13+
public class Cast
14+
{
15+
@Id
16+
@Column(name = "credit_id")
17+
@JsonProperty("credit_id")
18+
private String creditId;
19+
// ---------------------------------------------------------------
20+
// @Column(name = "person_adult")
21+
// @JsonProperty("adult")
22+
// private Boolean personAdult;
23+
// ---------------------------------------------------------------
24+
@Column(name = "person_gender")
25+
@JsonProperty("gender")
26+
private Integer personGender;
27+
// ---------------------------------------------------------------
28+
// @OneToOne
29+
@Column(name = "person_id")
30+
@JsonProperty("id")
31+
private Integer personId;
32+
// ---------------------------------------------------------------
33+
@Column(name = "person_name")
34+
@JsonProperty("name")
35+
private String personName;
36+
// ---------------------------------------------------------------
37+
// @JsonProperty("original_name")
38+
// @Column(name = "person_original_name")
39+
// private String personOriginalName;
40+
// ---------------------------------------------------------------
41+
// @JsonProperty("known_for_department")
42+
// @Column(name = "person_known_for_department")
43+
// private String personKnownForDepartment;
44+
// ---------------------------------------------------------------
45+
@Column(name = "character_name")
46+
@JsonProperty("character")
47+
private String characterName;
48+
// ---------------------------------------------------------------
49+
// @JsonProperty("popularity")
50+
// @Column(name = "person_popularity")
51+
// private double personPopularity;
52+
// ---------------------------------------------------------------
53+
@Column(name = "personProfile_path")
54+
@JsonProperty("profile_path")
55+
private String personProfilePath;
56+
// ---------------------------------------------------------------
57+
@Column(name = "cast_id")
58+
@JsonProperty("cast_id")
59+
private Integer castId;
60+
// ---------------------------------------------------------------
61+
@Column(name = "priority")
62+
@JsonProperty("order")
63+
private Integer priority;
64+
// ---------------------------------------------------------------
65+
// @ManyToOne
66+
// @JoinColumn(name = "tmdb_id", referencedColumnName = "tmdb_id")
67+
// @JoinColumn(name = "childtype", referencedColumnName = "childtype")
68+
// private Servie servie;
69+
}

src/main/java/servie/track_servie/payload/dtos/ServieGenreMapping.java

+9-9
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@
55
@Data
66
public class ServieGenreMapping
77
{
8-
private Integer genreId;
9-
private Integer tmdbId;
10-
private String childtype;
8+
private Integer genreId;
9+
private Integer tmdbId;
10+
private String childtype;
1111

12-
public ServieGenreMapping(Integer genreId, Integer tmdbId, String childtype)
13-
{
14-
this.genreId = genreId;
15-
this.tmdbId = tmdbId;
16-
this.childtype = childtype;
17-
}
12+
public ServieGenreMapping(Integer genreId, Integer tmdbId, String childtype)
13+
{
14+
this.genreId = genreId;
15+
this.tmdbId = tmdbId;
16+
this.childtype = childtype;
17+
}
1818
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package servie.track_servie.payload.dtos.operationsEpisodePageDtos;
2+
3+
import lombok.Data;
4+
5+
@Data
6+
public class EpisodeDtoEpisodePage
7+
{
8+
private String id;
9+
private String name;
10+
private Boolean watched;
11+
private Integer episodeNo;
12+
private Integer seasonNo;
13+
private String overview;
14+
private String stillPath;
15+
private Integer tmdbId;
16+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package servie.track_servie.payload.dtos.operationsHomePageDtos;
2+
3+
import java.time.LocalDate;
4+
import lombok.Data;
5+
6+
@Data
7+
public class ServieDtoHomePage2
8+
{
9+
private String imdbId;
10+
private Integer tmdbId;
11+
private String childtype;
12+
private String title;
13+
private LocalDate releaseDate;
14+
private Integer totalEpisodes;
15+
private LocalDate firstAirDate;
16+
private LocalDate lastAirDate;
17+
18+
public ServieDtoHomePage2(String imdbId, Integer tmdbId, String childtype, String title, LocalDate releaseDate, Integer totalEpisodes, LocalDate firstAirDate, LocalDate lastAirDate)
19+
{
20+
this.imdbId = imdbId;
21+
this.tmdbId = tmdbId;
22+
this.childtype = childtype;
23+
this.title = title;
24+
this.releaseDate = releaseDate;
25+
this.totalEpisodes = totalEpisodes;
26+
this.firstAirDate = firstAirDate;
27+
this.lastAirDate = lastAirDate;
28+
}
29+
}

src/main/java/servie/track_servie/payload/dtos/operationsSearch/SearchPageDtos/SeriesDtoSearchPage.java

+29-29
Original file line numberDiff line numberDiff line change
@@ -10,34 +10,34 @@
1010
@Data
1111
public class SeriesDtoSearchPage
1212
{
13-
@JsonProperty("id")
14-
private Integer tmdbId;
15-
// ---------------------------------------------------------------
16-
@JsonAlias({"title", "name"})
17-
private String title;
18-
// ---------------------------------------------------------------
19-
@JsonProperty("poster_path")
20-
private String posterPath;
21-
// ---------------------------------------------------------------
22-
private Boolean found;
23-
private String childtype;
24-
private Integer totalEpisodes;
25-
private Integer episodesWatched;
26-
private Boolean completed;
27-
@JsonAlias({"release_date", "first_air_date"})
28-
@JsonDeserialize(using = LocalDateDeserializer.class)
29-
private LocalDate releaseDate;
30-
@JsonProperty("original_language")
31-
private String language;
32-
// public SeriesDtoSearchPage(Integer tmdbId, String title, String posterPath, String childtype, Integer totalEpisodes, Integer episodesWatched, Boolean completed)
33-
// {
34-
// this.tmdbId = tmdbId;
35-
// this.title = title;
36-
// this.posterPath = posterPath;
37-
// this.childtype = childtype;
38-
// this.totalEpisodes = totalEpisodes;
39-
// this.episodesWatched = episodesWatched;
40-
// this.completed = completed;
41-
// }
13+
@JsonProperty("id")
14+
private Integer tmdbId;
15+
// ---------------------------------------------------------------
16+
@JsonAlias({"title", "name"})
17+
private String title;
18+
// ---------------------------------------------------------------
19+
@JsonProperty("poster_path")
20+
private String posterPath;
21+
// ---------------------------------------------------------------
22+
private Boolean found;
23+
private String childtype;
24+
private Integer totalEpisodes;
25+
private Integer episodesWatched;
26+
private Boolean completed;
27+
@JsonAlias({"release_date", "first_air_date"})
28+
@JsonDeserialize(using = LocalDateDeserializer.class)
29+
private LocalDate releaseDate;
30+
@JsonProperty("original_language")
31+
private String language;
32+
// public SeriesDtoSearchPage(Integer tmdbId, String title, String posterPath, String childtype, Integer totalEpisodes, Integer episodesWatched, Boolean completed)
33+
// {
34+
// this.tmdbId = tmdbId;
35+
// this.title = title;
36+
// this.posterPath = posterPath;
37+
// this.childtype = childtype;
38+
// this.totalEpisodes = totalEpisodes;
39+
// this.episodesWatched = episodesWatched;
40+
// this.completed = completed;
41+
// }
4242
}
4343
// "first_air_date": "2011-04-17",
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package servie.track_servie.payload.dtos.operationsServiePageDtos;
2+
3+
import lombok.Data;
4+
5+
@Data
6+
public class MovieCastDtoServiePage
7+
{
8+
private Integer personId;
9+
private String name;
10+
private String character;
11+
private String profilePath;
12+
private int order;
13+
14+
public MovieCastDtoServiePage(Integer personId, String name, String character, String profilePath, int order)
15+
{
16+
this.personId = personId;
17+
this.name = name;
18+
this.character = character;
19+
this.profilePath = profilePath;
20+
this.order = order;
21+
}
22+
}

src/main/java/servie/track_servie/payload/dtos/operationsServiePageDtos/ServieDtoServiePage.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import java.util.List;
66
import java.util.Set;
77
import lombok.Data;
8-
import servie.track_servie.entity.credits.MovieCast;
98

109
@Data
1110
public class ServieDtoServiePage
@@ -45,7 +44,7 @@ public class ServieDtoServiePage
4544
private Integer episodesWatched;
4645
private Boolean completed;
4746
// to deal separately
48-
private List<MovieCast> cast;
47+
private List<MovieCastDtoServiePage> cast;
4948

5049
public ServieDtoServiePage(Integer tmdbId, String childtype, String title, String status, String tagline, String overview, String backdropPath, LocalDateTime lastModified, LocalDate releaseDate, Integer runtime, Integer totalSeasons, Integer totalEpisodes, /* LocalDate firstAirDate, LocalDate lastAirDate, */ Integer episodesWatched, Boolean completed)
5150
{

src/main/java/servie/track_servie/repository/SeasonRepository.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
@Repository
99
public interface SeasonRepository extends JpaRepository<Season, String>
1010
{
11-
// Returns specific Season from the database which matches the criteria
12-
// Season findByTmdbIdAndSeasonNo(Integer tmdbId, Integer seasonNo);
13-
Season findBySeriesAndSeasonNo(Series series, Integer seasonNo);
11+
// Returns specific Season from the database which matches the criteria
12+
// Season findByTmdbIdAndSeasonNo(Integer tmdbId, Integer seasonNo);
13+
Season findBySeriesAndSeasonNo(Series series, Integer seasonNo);
1414
}

src/main/java/servie/track_servie/repository/ServieRepository.java

+1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import servie.track_servie.entity.Servie;
1212
import servie.track_servie.entity.User;
1313
import servie.track_servie.payload.dtos.operationsHomePageDtos.ServieDtoHomePage;
14+
import servie.track_servie.payload.dtos.operationsHomePageDtos.ServieDtoHomePage2;
1415
import servie.track_servie.payload.dtos.operationsServiePageDtos.ServieDtoServiePage;
1516
import servie.track_servie.payload.primaryKeys.ServieKey;
1617

src/main/java/servie/track_servie/service/ServieService.java

+7-3
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
import servie.track_servie.payload.dtos.operationsSearch.SearchPageDtos.SearchResultDtoSearchPage;
3737
import servie.track_servie.payload.dtos.operationsSearch.SearchPageDtos.SeriesDtoSearchPage;
3838
import servie.track_servie.payload.dtos.operationsServiePageDtos.GenreDtoServiePage;
39+
import servie.track_servie.payload.dtos.operationsServiePageDtos.MovieCastDtoServiePage;
3940
import servie.track_servie.payload.dtos.operationsServiePageDtos.SeasonDtoServiePage;
4041
import servie.track_servie.payload.dtos.operationsServiePageDtos.ServieDtoServiePage;
4142
import servie.track_servie.payload.primaryKeys.ServieKey;
@@ -880,9 +881,12 @@ public ServieDtoServiePage getServie(@NonNull Integer userId, String childtype,
880881
Servie servie = servieRepository.findById(new ServieKey(childtype, tmdbId)).orElseThrow(() -> new ResourceNotFoundException("Servie", "ServieKey", new ServieKey(childtype, tmdbId).toString()));
881882
Movie mm = (Movie) servie;
882883
Set<MovieCast> movieCasts = mm.getCast();
883-
List<MovieCast> movieCastsList = new ArrayList<>(movieCasts);
884-
movieCastsList.sort(Comparator.comparingInt(MovieCast::getOrder));
885-
servieDtoServiePage.setCast(movieCastsList);
884+
// List<MovieCast> movieCastsList = new ArrayList<>(movieCasts);
885+
List<MovieCastDtoServiePage> movieCastsListDto = movieCasts.stream()
886+
.map(cast -> new MovieCastDtoServiePage(cast.getPersonId(), cast.getName(), cast.getCharacter(), cast.getProfilePath(), cast.getOrder()))
887+
.collect(Collectors.toList());
888+
movieCastsListDto.sort(Comparator.comparingInt(MovieCastDtoServiePage::getOrder));
889+
servieDtoServiePage.setCast(movieCastsListDto);
886890
if(mm.getBelongsToCollection()!=null)
887891
{
888892
servieDtoServiePage.setCollectionId(mm.getCollection().getId());

src/main/resources/application-jarvis.properties

+1-7
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,4 @@ home-page.page.size = 36
4949
# spring.jpa.properties.hibernate.use_sql_comments=true
5050
# spring.jpa.properties.hibernate.format_sql=true
5151
spring.jpa.properties.hibernate.connection.useUnicode = true
52-
spring.jpa.properties.hibernate.connection.characterEncoding = utf8mb4
53-
54-
55-
56-
57-
spring.jpa.show-sql=true
58-
spring.jpa.properties.hibernate.format_sql=true
52+
spring.jpa.properties.hibernate.connection.characterEncoding = utf8mb4

0 commit comments

Comments
 (0)