diff --git a/build.gradle b/build.gradle index e717169..0120def 100644 --- a/build.gradle +++ b/build.gradle @@ -17,8 +17,11 @@ dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.flywaydb:flyway-core' implementation 'org.flywaydb:flyway-mysql' + implementation 'org.projectlombok:lombok:1.18.22' runtimeOnly 'com.mysql:mysql-connector-j' testImplementation 'org.springframework.boot:spring-boot-starter-test' + implementation "org.mapstruct:mapstruct:1.4.2.Final" + annotationProcessor "org.mapstruct:mapstruct-processor:1.4.2.Final" } tasks.named('test') { diff --git a/src/main/java/fr/cgs/cgs_back/controller/ClassroomController.java b/src/main/java/fr/cgs/cgs_back/controller/ClassroomController.java index f583952..d5a5028 100644 --- a/src/main/java/fr/cgs/cgs_back/controller/ClassroomController.java +++ b/src/main/java/fr/cgs/cgs_back/controller/ClassroomController.java @@ -3,7 +3,10 @@ import com.electronwill.nightconfig.core.conversion.Path; import fr.cgs.cgs_back.dto.ClassroomDto; import fr.cgs.cgs_back.entity.Classroom; +import fr.cgs.cgs_back.entity.Site; +import fr.cgs.cgs_back.mapper.MapStructMapper; import fr.cgs.cgs_back.service.ClassroomService; +import fr.cgs.cgs_back.service.SiteService; import jakarta.persistence.EntityNotFoundException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; @@ -19,6 +22,10 @@ public class ClassroomController { @Autowired private ClassroomService classroomService; + @Autowired + private MapStructMapper mapper; + @Autowired + private SiteService siteService; @GetMapping("/{id}") public Classroom findById(@PathVariable int id) { @@ -30,20 +37,29 @@ public List list() { return classroomService.findAll(); } - @PostMapping("/add") - public ResponseEntity insertClassroom(@RequestBody Classroom classroom) { - Classroom newClassroom = classroomService.insertClassroom(classroom); - return ResponseEntity.ok(newClassroom); + @PostMapping("{siteId}/add") + public ResponseEntity insertClassroom(@PathVariable int siteId, @RequestBody ClassroomDto classroomDto) { + Site site = siteService.getSiteById(siteId); + classroomDto.setSite(site); + classroomService.insertClassroom(mapper.classroomDtoToClassroom(classroomDto)); + return new ResponseEntity<>(HttpStatus.CREATED); } @PutMapping("/{id}") - public ResponseEntity updateClassroom(@PathVariable int id, @RequestBody Classroom updatedClassroom) { + public ResponseEntity updateClassroom(@PathVariable int id, @RequestBody ClassroomDto updatedClassroom) { try{ Classroom classroom = classroomService.findById(id); - classroom.setName(updatedClassroom.getName()); - classroom.setCapacity(updatedClassroom.getCapacity()); - classroom.setSite(updatedClassroom.getSite()); - Classroom savedClassroom = classroomService.insertClassroom(classroom); + + ClassroomDto newClassroom = mapper.classroomToClassroomDto(classroom); + + newClassroom.setName(updatedClassroom.getName()); + newClassroom.setCapacity(updatedClassroom.getCapacity()); + + Classroom mappedClassroom = mapper.classroomDtoToClassroom(newClassroom); + + mappedClassroom.setId(id); + + Classroom savedClassroom = classroomService.insertClassroom(mappedClassroom); return ResponseEntity.ok(savedClassroom); } catch(EntityNotFoundException e){ return ResponseEntity.status(HttpStatus.NOT_FOUND).build(); diff --git a/src/main/java/fr/cgs/cgs_back/controller/PromotionController.java b/src/main/java/fr/cgs/cgs_back/controller/PromotionController.java index 9f95847..59ddeee 100644 --- a/src/main/java/fr/cgs/cgs_back/controller/PromotionController.java +++ b/src/main/java/fr/cgs/cgs_back/controller/PromotionController.java @@ -1,8 +1,15 @@ package fr.cgs.cgs_back.controller; +import fr.cgs.cgs_back.dto.PromotionDto; +import fr.cgs.cgs_back.entity.Classroom; import fr.cgs.cgs_back.entity.Promotion; +import fr.cgs.cgs_back.mapper.MapStructMapper; +import fr.cgs.cgs_back.service.ClassroomService; import fr.cgs.cgs_back.service.PromotionService; +import fr.cgs.cgs_back.service.UserService; +import jakarta.persistence.EntityNotFoundException; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; @@ -12,9 +19,14 @@ @RequestMapping("/api/promotion") @CrossOrigin(origins = "http://localhost:3000") public class PromotionController { - @Autowired private PromotionService promotionService; + @Autowired + private ClassroomService classroomService; + @Autowired + private UserService userService; + @Autowired + private MapStructMapper mapper; @GetMapping("/{id}") public Promotion getPromotionById(@PathVariable int id) { return promotionService.getPromotionById(id); } @@ -23,19 +35,37 @@ public class PromotionController { public List list() { return promotionService.findAll(); } @PostMapping("/add") - public ResponseEntity insertPromotion(@RequestBody Promotion promotion) { - Promotion newPromotion = promotionService.insertPromotion(promotion); - return ResponseEntity.ok(newPromotion); + public ResponseEntity insertPromotion(@RequestBody PromotionDto promotionDto) { + promotionService.insertPromotion(mapper.promotionDtoToPromotion(promotionDto)); + return new ResponseEntity<>(HttpStatus.CREATED); } @PutMapping("/{id}") - public ResponseEntity updatePromotion(@PathVariable int id, @RequestBody Promotion updatedPromotion) { - Promotion promotion = promotionService.getPromotionById(id); - promotion.setName(updatedPromotion.getName()); - promotion.setStartedAt(updatedPromotion.getStartedAt()); - promotion.setClassroom(updatedPromotion.getClassroom()); - Promotion savedPromotion = promotionService.insertPromotion(promotion); - return ResponseEntity.ok(savedPromotion); + public ResponseEntity updatePromotion(@PathVariable int id, @RequestBody PromotionDto updatedPromotion) { + try{ + Promotion promotion = promotionService.getPromotionById(id); + + PromotionDto newPromotion = mapper.promotionToPromotionDto(promotion); + + newPromotion.setName(updatedPromotion.getName()); + newPromotion.setVolume(updatedPromotion.getVolume()); + newPromotion.setStartedAt(updatedPromotion.getStartedAt()); + newPromotion.setEndedAt(updatedPromotion.getEndedAt()); + newPromotion.setClassroom_id(updatedPromotion.getClassroom_id()); + newPromotion.setUser_id(updatedPromotion.getUser_id()); + newPromotion.setClassroom(classroomService.findById(newPromotion.getClassroom_id())); + newPromotion.setUser(userService.findById(newPromotion.getUser_id())); + + Promotion mappedPromotion = mapper.promotionDtoToPromotion(newPromotion); + mappedPromotion.setId(id); + + Promotion savedPromotion = promotionService.insertPromotion(mappedPromotion); + return ResponseEntity.ok(savedPromotion); + + } catch(EntityNotFoundException e){ + return ResponseEntity.status(HttpStatus.NOT_FOUND).build(); + } + } @DeleteMapping("/{id}") diff --git a/src/main/java/fr/cgs/cgs_back/controller/ReservationController.java b/src/main/java/fr/cgs/cgs_back/controller/ReservationController.java index ff1cdd1..b3e7d3e 100644 --- a/src/main/java/fr/cgs/cgs_back/controller/ReservationController.java +++ b/src/main/java/fr/cgs/cgs_back/controller/ReservationController.java @@ -1,7 +1,13 @@ package fr.cgs.cgs_back.controller; +import fr.cgs.cgs_back.dto.PromotionDto; +import fr.cgs.cgs_back.dto.ReservationDto; +import fr.cgs.cgs_back.entity.Promotion; import fr.cgs.cgs_back.entity.Reservation; +import fr.cgs.cgs_back.mapper.MapStructMapper; +import fr.cgs.cgs_back.service.ClassroomService; import fr.cgs.cgs_back.service.ReservationService; +import fr.cgs.cgs_back.service.UserService; import jakarta.persistence.EntityNotFoundException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; @@ -16,19 +22,23 @@ @RequestMapping("api/reservation") @CrossOrigin(origins = "http://localhost:3000") public class ReservationController { - @Autowired private ReservationService reservationService; - - @GetMapping - public List getAllReservation() { - return reservationService.getAllReservation(); - } + @Autowired + private ClassroomService classroomService; + @Autowired + private UserService userService; + @Autowired + private MapStructMapper mapper; @GetMapping("/{id}") public Reservation getReservationById(@PathVariable int id){ return reservationService.findById(id); } + @GetMapping + public List getAllReservation() { + return reservationService.getAllReservation(); + } @GetMapping("/user/{userId}") public List getReservationByUserId(@PathVariable int userId){ @@ -40,26 +50,33 @@ public List getReservationByClassroomId(@PathVariable int classroom return reservationService.findReservationByClassroomId(classroomId); } - @PostMapping("/") - public ResponseEntity createReservation(@RequestBody Reservation reservation){ - Reservation saveReservation = reservationService.saveReservation(reservation); - return ResponseEntity.ok(saveReservation); + @PostMapping("/add") + public ResponseEntity createReservation(@RequestBody ReservationDto reservationDto){ + reservationService.saveReservation(mapper.reservationDtoToReservation(reservationDto)); + return new ResponseEntity<>(HttpStatus.CREATED); } @PutMapping("/{id}") - public ResponseEntity updateReservation(@PathVariable int id, @RequestBody Reservation updateReservation) { - try { + public ResponseEntity updateReservation(@PathVariable int id, @RequestBody ReservationDto updateReservation) { + try{ Reservation reservation = reservationService.findById(id); - reservation.setName(updateReservation.getName()); - reservation.setType(updateReservation.getType()); - reservation.setStartedAt(updateReservation.getStartedAt()); - reservation.setEndedAt(updateReservation.getEndedAt()); - reservation.setClassroom_id(updateReservation.getClassroom_id()); - reservation.setUser_id(updateReservation.getUser_id()); + ReservationDto newReservation = mapper.reservationToReservationDto(reservation); + + newReservation.setName(updateReservation.getName()); + newReservation.setStartedAt(updateReservation.getStartedAt()); + newReservation.setEndedAt(updateReservation.getEndedAt()); + newReservation.setClassroom_id(updateReservation.getClassroom_id()); + newReservation.setUser_id(updateReservation.getUser_id()); + newReservation.setClassroom(classroomService.findById(newReservation.getClassroom_id())); + newReservation.setUser(userService.findById(newReservation.getUser_id())); - Reservation savedReservation = reservationService.saveReservation(reservation); + Reservation mappedReservation = mapper.reservationDtoToReservation(newReservation); + mappedReservation.setId(id); + + Reservation savedReservation = reservationService.saveReservation(mappedReservation); return ResponseEntity.ok(savedReservation); - } catch (EntityNotFoundException e) { + + } catch(EntityNotFoundException e) { return ResponseEntity.status(HttpStatus.NOT_FOUND).build(); } } diff --git a/src/main/java/fr/cgs/cgs_back/controller/SiteController.java b/src/main/java/fr/cgs/cgs_back/controller/SiteController.java index 4c027a5..7238e15 100644 --- a/src/main/java/fr/cgs/cgs_back/controller/SiteController.java +++ b/src/main/java/fr/cgs/cgs_back/controller/SiteController.java @@ -1,13 +1,16 @@ package fr.cgs.cgs_back.controller; +import fr.cgs.cgs_back.dto.SiteDto; import fr.cgs.cgs_back.entity.Classroom; import fr.cgs.cgs_back.entity.Site; +import fr.cgs.cgs_back.mapper.MapStructMapper; import fr.cgs.cgs_back.service.ClassroomService; import fr.cgs.cgs_back.service.SiteService; import jakarta.persistence.EntityNotFoundException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.List; @@ -22,6 +25,8 @@ public class SiteController { private SiteService siteService; @Autowired private ClassroomService classroomService; + @Autowired + private MapStructMapper mapper; @GetMapping public List getAllSites() { @@ -39,21 +44,30 @@ public List findAllBySiteId(@PathVariable int id) { } @PostMapping("/add") - public ResponseEntity createSite(@RequestBody Site site) { - Site savedSite = siteService.saveSite(site); - return ResponseEntity.ok(savedSite); + public ResponseEntity createSite(@RequestBody SiteDto siteDto) { + siteService.saveSite(mapper.siteDtoToSite(siteDto)); + return new ResponseEntity<>(HttpStatus.CREATED); } @PutMapping("/{id}") - public ResponseEntity updateSite(@PathVariable int id,@RequestBody Site updatedSite) { + public ResponseEntity updateSite(@PathVariable int id,@RequestBody SiteDto updatedSite) { try{ Site site = siteService.getSiteById(id); - site.setName(updatedSite.getName()); - site.setCity(updatedSite.getCity()); - site.setAdress(updatedSite.getAdress()); - site.setDescription(updatedSite.getDescription()); - Site savedSite = siteService.saveSite(site); + + SiteDto newSite = mapper.siteToSiteDto(site); + + newSite.setName(updatedSite.getName()); + newSite.setCity(updatedSite.getCity()); + newSite.setAdress(updatedSite.getAdress()); + newSite.setDescription(updatedSite.getDescription()); + + Site mappedSite = mapper.siteDtoToSite(newSite); + + mappedSite.setId(id); + + Site savedSite = siteService.saveSite(mappedSite); + return ResponseEntity.ok(savedSite); } catch(EntityNotFoundException e){ return ResponseEntity.status(HttpStatus.NOT_FOUND).build(); diff --git a/src/main/java/fr/cgs/cgs_back/dto/ClassroomDto.java b/src/main/java/fr/cgs/cgs_back/dto/ClassroomDto.java index 1732de4..3287531 100644 --- a/src/main/java/fr/cgs/cgs_back/dto/ClassroomDto.java +++ b/src/main/java/fr/cgs/cgs_back/dto/ClassroomDto.java @@ -1,14 +1,46 @@ package fr.cgs.cgs_back.dto; +import fr.cgs.cgs_back.entity.Site; +import fr.cgs.cgs_back.service.SiteService; +import com.fasterxml.jackson.annotation.JsonProperty; + public class ClassroomDto { + @JsonProperty("name") private String name; + @JsonProperty("capacity") private int capacity; - private SiteDto site; + private Site site; + - public ClassroomDto(String name, int capacity, SiteDto site) { + public ClassroomDto(String name, int capacity) { this.name = name; this.capacity = capacity; - this.site = site; } + public ClassroomDto() { + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getCapacity() { + return capacity; + } + + public void setCapacity(int capacity) { + this.capacity = capacity; + } + + public Site getSite() { + return site; + } + + public void setSite(Site site) { + this.site = site; + } } diff --git a/src/main/java/fr/cgs/cgs_back/dto/PromotionDto.java b/src/main/java/fr/cgs/cgs_back/dto/PromotionDto.java index 6e76ad2..027bf68 100644 --- a/src/main/java/fr/cgs/cgs_back/dto/PromotionDto.java +++ b/src/main/java/fr/cgs/cgs_back/dto/PromotionDto.java @@ -1,23 +1,99 @@ package fr.cgs.cgs_back.dto; +import com.fasterxml.jackson.annotation.JsonProperty; +import fr.cgs.cgs_back.entity.Classroom; +import fr.cgs.cgs_back.entity.User; + import java.util.Date; public class PromotionDto { - private int id; + @JsonProperty("name") private String name; + @JsonProperty("volume") private int volume; + @JsonProperty("startedAt") private Date startedAt; + @JsonProperty("endedAt") private Date endedAt; - private ClassroomDto classroom; - private UserDto user; + @JsonProperty("user_id") + private int user_id; + @JsonProperty("classroom_id") + private int classroom_id; + + private Classroom classroom; + private User user; + + public PromotionDto(String name, int volume, Date startedAt, Date endedAt) { + this.name = name; + this.volume = volume; + this.startedAt = startedAt; + this.endedAt = endedAt; + } + + public PromotionDto() { + } - public PromotionDto(int id, String name, int volume, Date startedAt, Date endedAt, ClassroomDto classroom, UserDto user) { - this.id = id; + public String getName() { + return name; + } + + public void setName(String name) { this.name = name; + } + + public int getVolume() { + return volume; + } + + public void setVolume(int volume) { this.volume = volume; + } + + public Date getStartedAt() { + return startedAt; + } + + public void setStartedAt(Date startedAt) { this.startedAt = startedAt; + } + + public Date getEndedAt() { + return endedAt; + } + + public void setEndedAt(Date endedAt) { this.endedAt = endedAt; + } + + public Classroom getClassroom() { + return classroom; + } + + public void setClassroom(Classroom classroom) { this.classroom = classroom; + } + + public User getUser() { + return user; + } + + public void setUser(User user) { this.user = user; } + + public int getUser_id() { + return user_id; + } + + public void setUser_id(int user_id) { + this.user_id = user_id; + } + + public int getClassroom_id() { + return classroom_id; + } + + public void setClassroom_id(int classroom_id) { + this.classroom_id = classroom_id; + } } diff --git a/src/main/java/fr/cgs/cgs_back/dto/ReservationDto.java b/src/main/java/fr/cgs/cgs_back/dto/ReservationDto.java index cb77ed6..6beedc3 100644 --- a/src/main/java/fr/cgs/cgs_back/dto/ReservationDto.java +++ b/src/main/java/fr/cgs/cgs_back/dto/ReservationDto.java @@ -1,23 +1,99 @@ package fr.cgs.cgs_back.dto; +import com.fasterxml.jackson.annotation.JsonProperty; +import fr.cgs.cgs_back.entity.Classroom; +import fr.cgs.cgs_back.entity.Reservation; +import fr.cgs.cgs_back.entity.User; + import java.util.Date; public class ReservationDto { - private int id; + @JsonProperty("name") private String name; + @JsonProperty("startedAt") private Date startedAt; + @JsonProperty("endedAt") private Date endedAt; - private ClassroomDto classroom; - private UserDto user; + @JsonProperty("type") private int type; + @JsonProperty("classroom_id") + private int classroom_id; + @JsonProperty("user_id") + private int user_id; + private Classroom classroom; + private User user; - public ReservationDto(int id, String name, Date startedAt, Date endedAt, ClassroomDto classroom, UserDto user, int type) { - this.id = id; + public ReservationDto(String name, Date startedAt, Date endedAt, int type) { this.name = name; this.startedAt = startedAt; this.endedAt = endedAt; + this.type = type; + } + + public ReservationDto() { + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Date getStartedAt() { + return startedAt; + } + + public void setStartedAt(Date startedAt) { + this.startedAt = startedAt; + } + + public Date getEndedAt() { + return endedAt; + } + + public void setEndedAt(Date endedAt) { + this.endedAt = endedAt; + } + + public int getType() { + return type; + } + + public void setType(int type) { + this.type = type; + } + + public int getClassroom_id() { + return classroom_id; + } + + public void setClassroom_id(int classroom_id) { + this.classroom_id = classroom_id; + } + + public int getUser_id() { + return user_id; + } + + public void setUser_id(int user_id) { + this.user_id = user_id; + } + + public Classroom getClassroom() { + return classroom; + } + + public void setClassroom(Classroom classroom) { this.classroom = classroom; + } + + public User getUser() { + return user; + } + + public void setUser(User user) { this.user = user; - this.type = type; } } diff --git a/src/main/java/fr/cgs/cgs_back/dto/SiteDto.java b/src/main/java/fr/cgs/cgs_back/dto/SiteDto.java index f5cbf71..21bd943 100644 --- a/src/main/java/fr/cgs/cgs_back/dto/SiteDto.java +++ b/src/main/java/fr/cgs/cgs_back/dto/SiteDto.java @@ -1,18 +1,57 @@ package fr.cgs.cgs_back.dto; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.NoArgsConstructor; public class SiteDto { - private int id; + @JsonProperty("name") private String name; + @JsonProperty("city") private String city; + @JsonProperty("adress") private String adress; + @JsonProperty("description") private String description; - public SiteDto(int id, String name, String city, String adress, String description) { - this.id = id; + public SiteDto(String name, String city, String adress, String description) { this.name = name; this.city = city; this.adress = adress; this.description = description; } + + public SiteDto() { + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getCity() { + return city; + } + + public void setCity(String city) { + this.city = city; + } + + public String getAdress() { + return adress; + } + + public void setAdress(String adress) { + this.adress = adress; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } } diff --git a/src/main/java/fr/cgs/cgs_back/entity/Classroom.java b/src/main/java/fr/cgs/cgs_back/entity/Classroom.java index 9d3ae17..7885b70 100644 --- a/src/main/java/fr/cgs/cgs_back/entity/Classroom.java +++ b/src/main/java/fr/cgs/cgs_back/entity/Classroom.java @@ -1,8 +1,10 @@ package fr.cgs.cgs_back.entity; import jakarta.persistence.*; +import lombok.NoArgsConstructor; @Entity +@NoArgsConstructor @Table(name = "classroom") public class Classroom { @@ -62,5 +64,6 @@ public Site getSite() { public void setSite(Site site) { this.site = site; + this.site_id = site.getId(); } } diff --git a/src/main/java/fr/cgs/cgs_back/entity/Promotion.java b/src/main/java/fr/cgs/cgs_back/entity/Promotion.java index dba188f..3bdae38 100644 --- a/src/main/java/fr/cgs/cgs_back/entity/Promotion.java +++ b/src/main/java/fr/cgs/cgs_back/entity/Promotion.java @@ -1,10 +1,12 @@ package fr.cgs.cgs_back.entity; import jakarta.persistence.*; +import lombok.NoArgsConstructor; import java.util.Date; @Entity +@NoArgsConstructor @Table(name = "promotion") public class Promotion { @@ -43,72 +45,71 @@ public int getId() { return id; } - public String getName() { - return name; - } - public void setId(int id) { this.id = id; } - public void setName(String name) { - this.name = name; - } - - public void setVolume(int volume) { - this.volume = volume; - } - - public void setStartedAt(Date startedAt) { - this.startedAt = startedAt; - } - - public void setEndedAt(Date endedAt) { - this.endedAt = endedAt; - } - - public void setClassroom_id(int classroom_id) { - this.classroom_id = classroom_id; - } - - public void setClassroom(Classroom classroom) { - this.classroom = classroom; - } - - public void setUser_id(int user_id) { - this.user_id = user_id; + public String getName() { + return name; } - public void setUser(User user) { - this.user = user; + public void setName(String name) { + this.name = name; } public int getVolume() { return volume; } + public void setVolume(int volume) { + this.volume = volume; + } + public Date getStartedAt() { return startedAt; } + public void setStartedAt(Date startedAt) { + this.startedAt = startedAt; + } + public Date getEndedAt() { return endedAt; } + public void setEndedAt(Date endedAt) { + this.endedAt = endedAt; + } + public int getClassroom_id() { return classroom_id; } + public void setClassroom_id(int classroom_id) { + this.classroom_id = classroom_id; + } + public Classroom getClassroom() { return classroom; } + public void setClassroom(Classroom classroom) { + this.classroom = classroom; + } + public int getUser_id() { return user_id; } + public void setUser_id(int user_id) { + this.user_id = user_id; + } + public User getUser() { return user; } + public void setUser(User user) { + this.user = user; + } } diff --git a/src/main/java/fr/cgs/cgs_back/entity/Reservation.java b/src/main/java/fr/cgs/cgs_back/entity/Reservation.java index c8f310e..e2518d4 100644 --- a/src/main/java/fr/cgs/cgs_back/entity/Reservation.java +++ b/src/main/java/fr/cgs/cgs_back/entity/Reservation.java @@ -1,10 +1,12 @@ package fr.cgs.cgs_back.entity; import jakarta.persistence.*; +import lombok.NoArgsConstructor; import java.util.Date; @Entity +@NoArgsConstructor @Table(name = "reservation") public class Reservation { @@ -25,35 +27,19 @@ public class Reservation { @Column(name = "classroom_id") private int classroom_id; - @ManyToOne - @JoinColumn(name = "classroom_id", updatable = false, insertable = false) - private Classroom classroom; - - public void setClassroom_id(int classroom_id) { - this.classroom_id = classroom_id; - } - - public void setUser_id(int user_id) { - this.user_id = user_id; - } - - public int getClassroom_id() { - return classroom_id; - } - - public int getUser_id() { - return user_id; - } - @Column(name = "user_id") private int user_id; + @Column(name = "reservation_type") + private int type; + @ManyToOne @JoinColumn(name = "user_id", updatable = false, insertable = false) private User user; - @Column(name = "reservation_type") - private int type; + @ManyToOne + @JoinColumn(name = "classroom_id", updatable = false, insertable = false) + private Classroom classroom; public int getId() { return id; @@ -87,20 +73,20 @@ public void setEndedAt(Date endedAt) { this.endedAt = endedAt; } - public Classroom getClassroom() { - return classroom; + public int getClassroom_id() { + return classroom_id; } - public void setClassroom(Classroom classroom) { - this.classroom = classroom; + public void setClassroom_id(int classroom_id) { + this.classroom_id = classroom_id; } - public User getUser() { - return user; + public int getUser_id() { + return user_id; } - public void setUser(User user) { - this.user = user; + public void setUser_id(int user_id) { + this.user_id = user_id; } public int getType() { @@ -110,4 +96,20 @@ public int getType() { public void setType(int type) { this.type = type; } + + public User getUser() { + return user; + } + + public void setUser(User user) { + this.user = user; + } + + public Classroom getClassroom() { + return classroom; + } + + public void setClassroom(Classroom classroom) { + this.classroom = classroom; + } } diff --git a/src/main/java/fr/cgs/cgs_back/entity/Site.java b/src/main/java/fr/cgs/cgs_back/entity/Site.java index f6c7476..7aac1c7 100644 --- a/src/main/java/fr/cgs/cgs_back/entity/Site.java +++ b/src/main/java/fr/cgs/cgs_back/entity/Site.java @@ -1,11 +1,12 @@ package fr.cgs.cgs_back.entity; import jakarta.persistence.*; +import lombok.NoArgsConstructor; @Entity +@NoArgsConstructor @Table(name = "site") public class Site { - @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "site_id") @@ -23,10 +24,6 @@ public class Site { @Column(name = "site_description") private String description; - - public Site() { - } - public int getId() { return id; } diff --git a/src/main/java/fr/cgs/cgs_back/mapper/MapStructMapper.java b/src/main/java/fr/cgs/cgs_back/mapper/MapStructMapper.java new file mode 100644 index 0000000..6daca56 --- /dev/null +++ b/src/main/java/fr/cgs/cgs_back/mapper/MapStructMapper.java @@ -0,0 +1,27 @@ +package fr.cgs.cgs_back.mapper; + +import fr.cgs.cgs_back.dto.ClassroomDto; +import fr.cgs.cgs_back.dto.PromotionDto; +import fr.cgs.cgs_back.dto.ReservationDto; +import fr.cgs.cgs_back.dto.SiteDto; +import fr.cgs.cgs_back.entity.Classroom; +import fr.cgs.cgs_back.entity.Promotion; +import fr.cgs.cgs_back.entity.Reservation; +import fr.cgs.cgs_back.entity.Site; +import org.mapstruct.Mapper; + +@Mapper(componentModel = "spring") +public interface MapStructMapper { + Site siteDtoToSite(SiteDto siteDto); + SiteDto siteToSiteDto(Site site); + + Classroom classroomDtoToClassroom(ClassroomDto classroomDto); + ClassroomDto classroomToClassroomDto(Classroom classroom); + + Promotion promotionDtoToPromotion(PromotionDto promotionDto); + PromotionDto promotionToPromotionDto(Promotion promotion); + + Reservation reservationDtoToReservation(ReservationDto reservationDto); + ReservationDto reservationToReservationDto(Reservation reservation); + +} diff --git a/src/main/java/fr/cgs/cgs_back/service/UserService.java b/src/main/java/fr/cgs/cgs_back/service/UserService.java index 3160bef..89684b0 100644 --- a/src/main/java/fr/cgs/cgs_back/service/UserService.java +++ b/src/main/java/fr/cgs/cgs_back/service/UserService.java @@ -1,13 +1,16 @@ package fr.cgs.cgs_back.service; +import fr.cgs.cgs_back.entity.Site; import fr.cgs.cgs_back.entity.User; import fr.cgs.cgs_back.repository.UserRepository; import jakarta.persistence.EntityManager; +import jakarta.persistence.EntityNotFoundException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; +import java.util.Optional; @Service public class UserService { @@ -39,6 +42,12 @@ public User findByEmailAndPassword(String email, String password) { return user; } + public User findById(int id) { + Optional optionalUser = userRepository.findById(id); + return optionalUser.orElseThrow(()->new EntityNotFoundException("User not found with id " + id)); + } + + public List findAll(){ List result = userRepository.findAll(); return result;