From c84273b5c3cd9cb82e833a1eb47cf53bdc0618a4 Mon Sep 17 00:00:00 2001 From: = Date: Mon, 4 May 2020 15:18:40 +0200 Subject: [PATCH] teams and matches --- Back/pom.xml | 12 ++--- .../Predictions/PredictionsApplication.java | 6 ++- .../controllers/MatchController.java | 50 +++++++++++++++++++ .../controllers/TeamController.java | 30 +++++++++++ .../Predictions/model/match/Match.java | 16 +++--- .../model/match/MatchRepository.java | 2 +- .../Predictions/model/team/Team.java | 10 ++-- .../model/team/TeamRepository.java | 5 +- .../TeamsMatchStatistics.java} | 10 ++-- .../TeamsMatchStatisticsRepository.java} | 4 +- .../src/main/resources/application.properties | 1 - 11 files changed, 115 insertions(+), 31 deletions(-) create mode 100644 Back/src/main/java/com/resultprediction/polishekstraklasa/Predictions/controllers/MatchController.java create mode 100644 Back/src/main/java/com/resultprediction/polishekstraklasa/Predictions/controllers/TeamController.java rename Back/src/main/java/com/resultprediction/polishekstraklasa/Predictions/model/{teamStatistics/TeamStatistics.java => teamsMatchStatistics/TeamsMatchStatistics.java} (91%) rename Back/src/main/java/com/resultprediction/polishekstraklasa/Predictions/model/{teamStatistics/TeamStatisticsRepository.java => teamsMatchStatistics/TeamsMatchStatisticsRepository.java} (51%) diff --git a/Back/pom.xml b/Back/pom.xml index 8bde47f..82b8c8d 100644 --- a/Back/pom.xml +++ b/Back/pom.xml @@ -24,13 +24,6 @@ spring-boot-starter-data-jpa - - org.springframework.boot - spring-boot-devtools - runtime - true - - org.springframework.boot spring-boot-starter-web @@ -51,6 +44,11 @@ mysql-connector-java runtime + + org.springframework.boot + spring-boot-devtools + true + org.springframework.boot spring-boot-configuration-processor diff --git a/Back/src/main/java/com/resultprediction/polishekstraklasa/Predictions/PredictionsApplication.java b/Back/src/main/java/com/resultprediction/polishekstraklasa/Predictions/PredictionsApplication.java index 691f656..18b8124 100644 --- a/Back/src/main/java/com/resultprediction/polishekstraklasa/Predictions/PredictionsApplication.java +++ b/Back/src/main/java/com/resultprediction/polishekstraklasa/Predictions/PredictionsApplication.java @@ -1,8 +1,13 @@ package com.resultprediction.polishekstraklasa.Predictions; import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.autoconfigure.domain.EntityScan; import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.data.jpa.repository.config.EnableJpaRepositories; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -11,7 +16,6 @@ import java.util.Collections; import java.util.Map; @SpringBootApplication -@RestController public class PredictionsApplication { public static void main(String[] args) { diff --git a/Back/src/main/java/com/resultprediction/polishekstraklasa/Predictions/controllers/MatchController.java b/Back/src/main/java/com/resultprediction/polishekstraklasa/Predictions/controllers/MatchController.java new file mode 100644 index 0000000..e676783 --- /dev/null +++ b/Back/src/main/java/com/resultprediction/polishekstraklasa/Predictions/controllers/MatchController.java @@ -0,0 +1,50 @@ +package com.resultprediction.polishekstraklasa.Predictions.controllers; + +import com.resultprediction.polishekstraklasa.Predictions.model.match.Match; +import com.resultprediction.polishekstraklasa.Predictions.model.match.MatchRepository; +import com.resultprediction.polishekstraklasa.Predictions.model.team.Team; +import com.resultprediction.polishekstraklasa.Predictions.model.team.TeamRepository; +import com.resultprediction.polishekstraklasa.Predictions.model.teamsMatchStatistics.TeamsMatchStatisticsRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; + +import java.util.List; +import java.util.Optional; + +@Controller +@RequestMapping("/matches") +public class MatchController { + + @Autowired + private MatchRepository matchRepository; + + @Autowired + private TeamRepository teamRepository; + + @Autowired + private TeamsMatchStatisticsRepository teamsMatchStatisticsRepository; + + @PostMapping("") + public String create(@RequestBody List matches) { + for (Match match : matches){ + Optional team1 = teamRepository.findByName(match.getTeamsMatchStatistics1().getTeam().getName()); + if (team1.isPresent()) + match.getTeamsMatchStatistics1().setTeam(team1.get()); + else match.getTeamsMatchStatistics1().setTeam(teamRepository.save(new Team(null, match.getTeamsMatchStatistics1().getTeam().getName()))); + + Optional team2 = teamRepository.findByName(match.getTeamsMatchStatistics2().getTeam().getName()); + if (team2.isPresent()) + match.getTeamsMatchStatistics2().setTeam(team2.get()); + else match.getTeamsMatchStatistics2().setTeam(teamRepository.save(new Team(null, match.getTeamsMatchStatistics2().getTeam().getName()))); + + match.setTeamsMatchStatistics1(teamsMatchStatisticsRepository.save(match.getTeamsMatchStatistics1())); + match.setTeamsMatchStatistics2(teamsMatchStatisticsRepository.save(match.getTeamsMatchStatistics2())); + } + matchRepository.saveAll(matches); + return "done"; + } + +} diff --git a/Back/src/main/java/com/resultprediction/polishekstraklasa/Predictions/controllers/TeamController.java b/Back/src/main/java/com/resultprediction/polishekstraklasa/Predictions/controllers/TeamController.java new file mode 100644 index 0000000..2f4ebcf --- /dev/null +++ b/Back/src/main/java/com/resultprediction/polishekstraklasa/Predictions/controllers/TeamController.java @@ -0,0 +1,30 @@ +package com.resultprediction.polishekstraklasa.Predictions.controllers; + +import com.resultprediction.polishekstraklasa.Predictions.model.team.Team; +import com.resultprediction.polishekstraklasa.Predictions.model.team.TeamRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; + +import java.util.List; + +@Controller +@RequestMapping("/teams") +public class TeamController { + + @Autowired + private TeamRepository teamRepository; + + @PostMapping("") + public String create(@RequestBody List teams) { + for (Team team : teams){ + if (teamRepository.findByName(team.getName()).isPresent()) + return "some teams are in database already"; + } + return "done"; + } + +} diff --git a/Back/src/main/java/com/resultprediction/polishekstraklasa/Predictions/model/match/Match.java b/Back/src/main/java/com/resultprediction/polishekstraklasa/Predictions/model/match/Match.java index 0e3ee92..eaf48f8 100644 --- a/Back/src/main/java/com/resultprediction/polishekstraklasa/Predictions/model/match/Match.java +++ b/Back/src/main/java/com/resultprediction/polishekstraklasa/Predictions/model/match/Match.java @@ -1,6 +1,6 @@ package com.resultprediction.polishekstraklasa.Predictions.model.match; -import com.resultprediction.polishekstraklasa.Predictions.model.teamStatistics.TeamStatistics; +import com.resultprediction.polishekstraklasa.Predictions.model.teamsMatchStatistics.TeamsMatchStatistics; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; @@ -10,26 +10,28 @@ import org.springframework.format.annotation.DateTimeFormat; import javax.persistence.*; import java.sql.Date; -@Entity + @NoArgsConstructor @AllArgsConstructor +@Entity +@Table(name = "Matches") public class Match { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) @Getter @Setter + @Id + @GeneratedValue(strategy = GenerationType.AUTO) private Long id; @Getter @Setter @OneToOne - private TeamStatistics teamStatistics1; + private TeamsMatchStatistics teamsMatchStatistics1; @Getter @Setter @OneToOne - private TeamStatistics teamStatistics2; + private TeamsMatchStatistics teamsMatchStatistics2; @Getter @Setter @@ -39,7 +41,7 @@ public class Match { @Getter @Setter @DateTimeFormat(pattern = "dd-MM-yyyy") - private Date date; + private Date matchDate; @Getter @Setter diff --git a/Back/src/main/java/com/resultprediction/polishekstraklasa/Predictions/model/match/MatchRepository.java b/Back/src/main/java/com/resultprediction/polishekstraklasa/Predictions/model/match/MatchRepository.java index d473c4b..7a6bcc4 100644 --- a/Back/src/main/java/com/resultprediction/polishekstraklasa/Predictions/model/match/MatchRepository.java +++ b/Back/src/main/java/com/resultprediction/polishekstraklasa/Predictions/model/match/MatchRepository.java @@ -2,5 +2,5 @@ package com.resultprediction.polishekstraklasa.Predictions.model.match; import org.springframework.data.jpa.repository.JpaRepository; -public interface MatchRepository extends JpaRepository { +public interface MatchRepository extends JpaRepository { } diff --git a/Back/src/main/java/com/resultprediction/polishekstraklasa/Predictions/model/team/Team.java b/Back/src/main/java/com/resultprediction/polishekstraklasa/Predictions/model/team/Team.java index d9eb13c..ee8ff0d 100644 --- a/Back/src/main/java/com/resultprediction/polishekstraklasa/Predictions/model/team/Team.java +++ b/Back/src/main/java/com/resultprediction/polishekstraklasa/Predictions/model/team/Team.java @@ -5,18 +5,16 @@ import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; +import javax.persistence.*; -@Entity @NoArgsConstructor @AllArgsConstructor +@Entity +@Table(name = "Teams") public class Team { @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) + @GeneratedValue(strategy = GenerationType.AUTO) @Getter @Setter private Long id; diff --git a/Back/src/main/java/com/resultprediction/polishekstraklasa/Predictions/model/team/TeamRepository.java b/Back/src/main/java/com/resultprediction/polishekstraklasa/Predictions/model/team/TeamRepository.java index 9a7a27f..f2a714f 100644 --- a/Back/src/main/java/com/resultprediction/polishekstraklasa/Predictions/model/team/TeamRepository.java +++ b/Back/src/main/java/com/resultprediction/polishekstraklasa/Predictions/model/team/TeamRepository.java @@ -2,5 +2,8 @@ package com.resultprediction.polishekstraklasa.Predictions.model.team; import org.springframework.data.jpa.repository.JpaRepository; -public interface TeamRepository extends JpaRepository { +import java.util.Optional; + +public interface TeamRepository extends JpaRepository { + Optional findByName(String name); } diff --git a/Back/src/main/java/com/resultprediction/polishekstraklasa/Predictions/model/teamStatistics/TeamStatistics.java b/Back/src/main/java/com/resultprediction/polishekstraklasa/Predictions/model/teamsMatchStatistics/TeamsMatchStatistics.java similarity index 91% rename from Back/src/main/java/com/resultprediction/polishekstraklasa/Predictions/model/teamStatistics/TeamStatistics.java rename to Back/src/main/java/com/resultprediction/polishekstraklasa/Predictions/model/teamsMatchStatistics/TeamsMatchStatistics.java index bebb2bf..c96502a 100644 --- a/Back/src/main/java/com/resultprediction/polishekstraklasa/Predictions/model/teamStatistics/TeamStatistics.java +++ b/Back/src/main/java/com/resultprediction/polishekstraklasa/Predictions/model/teamsMatchStatistics/TeamsMatchStatistics.java @@ -1,4 +1,4 @@ -package com.resultprediction.polishekstraklasa.Predictions.model.teamStatistics; +package com.resultprediction.polishekstraklasa.Predictions.model.teamsMatchStatistics; import com.resultprediction.polishekstraklasa.Predictions.model.team.Team; import lombok.AllArgsConstructor; @@ -8,15 +8,15 @@ import lombok.Setter; import javax.persistence.*; -@Entity @NoArgsConstructor @AllArgsConstructor -public class TeamStatistics { +@Entity +public class TeamsMatchStatistics { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) @Getter @Setter + @Id + @GeneratedValue(strategy = GenerationType.AUTO) private Long id; @Getter diff --git a/Back/src/main/java/com/resultprediction/polishekstraklasa/Predictions/model/teamStatistics/TeamStatisticsRepository.java b/Back/src/main/java/com/resultprediction/polishekstraklasa/Predictions/model/teamsMatchStatistics/TeamsMatchStatisticsRepository.java similarity index 51% rename from Back/src/main/java/com/resultprediction/polishekstraklasa/Predictions/model/teamStatistics/TeamStatisticsRepository.java rename to Back/src/main/java/com/resultprediction/polishekstraklasa/Predictions/model/teamsMatchStatistics/TeamsMatchStatisticsRepository.java index 6b39875..d27a7a7 100644 --- a/Back/src/main/java/com/resultprediction/polishekstraklasa/Predictions/model/teamStatistics/TeamStatisticsRepository.java +++ b/Back/src/main/java/com/resultprediction/polishekstraklasa/Predictions/model/teamsMatchStatistics/TeamsMatchStatisticsRepository.java @@ -1,6 +1,6 @@ -package com.resultprediction.polishekstraklasa.Predictions.model.teamStatistics; +package com.resultprediction.polishekstraklasa.Predictions.model.teamsMatchStatistics; import org.springframework.data.jpa.repository.JpaRepository; -public interface TeamStatisticsRepository extends JpaRepository { +public interface TeamsMatchStatisticsRepository extends JpaRepository { } diff --git a/Back/src/main/resources/application.properties b/Back/src/main/resources/application.properties index dbd8e78..2ef9e51 100644 --- a/Back/src/main/resources/application.properties +++ b/Back/src/main/resources/application.properties @@ -2,4 +2,3 @@ spring.jpa.hibernate.ddl-auto=update spring.datasource.url=jdbc:mysql://localhost:3306/ekstraklasa spring.datasource.username=ekstra spring.datasource.password=YnBDC0hqqhKaxt94 -security.session=never