diff --git a/src/main/java/de/kreth/clubhelper/model/controller/AttendanceController.java b/src/main/java/de/kreth/clubhelper/model/controller/AttendanceController.java index 6c93db5..29ebf04 100644 --- a/src/main/java/de/kreth/clubhelper/model/controller/AttendanceController.java +++ b/src/main/java/de/kreth/clubhelper/model/controller/AttendanceController.java @@ -1,5 +1,6 @@ package de.kreth.clubhelper.model.controller; +import java.time.LocalDate; import java.util.Date; import java.util.List; @@ -16,6 +17,9 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + import de.kreth.clubhelper.model.dao.AttendanceDao; import de.kreth.clubhelper.model.dao.PersonDao; import de.kreth.clubhelper.model.data.Attendance; @@ -24,41 +28,44 @@ import de.kreth.clubhelper.model.data.Person; @Controller @RequestMapping("/attendance") @PreAuthorize("hasRole('trainer') or hasRole('admin')") -public class AttendanceController -{ +public class AttendanceController { + + @Autowired + private AttendanceDao attendanceDao; - @Autowired - private AttendanceDao attendanceDao; + @Autowired + private PersonDao personDao; - @Autowired - private PersonDao personDao; + @GetMapping(value = "/{date}") + @ResponseBody + public List getAttendencesOn(@PathVariable("date") @DateTimeFormat(iso = ISO.DATE) LocalDate date) { + List findByOnDate = attendanceDao.findByOnDate(date); + ObjectMapper mapper = new ObjectMapper(); + try { + String one = mapper.writeValueAsString(findByOnDate.get(0)); + System.out.println(one); + } catch (JsonProcessingException e) { + e.printStackTrace(); + } + return findByOnDate; + } - @GetMapping(value = "/on") - @ResponseBody - public List getAttendencesOn(@RequestBody @DateTimeFormat(iso=ISO.DATE) Date date) - { - if (date == null) { - date = new Date(); - } - return attendanceDao.findByOnDate(date); - } + @PostMapping(value = "/for/{id}") + @ResponseBody + public Attendance post(@PathVariable("id") Long id) { + Attendance att = new Attendance(); + att.setOnDate(LocalDate.now()); + att.setPerson(personDao.findById(id).orElseThrow(() -> new RuntimeException("Person not found by id=" + id))); + attendanceDao.save(att); + return att; + } - @PostMapping(value = "/for/{id}") - @ResponseBody - public Attendance post(@PathVariable("id") Long id) - { - Attendance att = new Attendance(); - att.setOnDate(new Date()); - att.setPerson(personDao.findById(id).orElseThrow(() -> new RuntimeException("Person not found by id=" + id))); - attendanceDao.save(att); - return att; - } - - @DeleteMapping("/{id}") - public Attendance delete(@PathVariable("id") Long personId, @RequestBody(required = true) Date onDate) { - Person person = personDao.findById(personId).orElseThrow(() -> new RuntimeException("Person not found by id=" + personId)); - Attendance attendance = attendanceDao.findByPersonAndOnDate(person, onDate); - attendanceDao.delete(attendance); - return attendance; - } + @DeleteMapping("/{id}") + public Attendance delete(@PathVariable("id") Long personId, @RequestBody(required = true) Date onDate) { + Person person = personDao.findById(personId) + .orElseThrow(() -> new RuntimeException("Person not found by id=" + personId)); + Attendance attendance = attendanceDao.findByPersonAndOnDate(person, onDate); + attendanceDao.delete(attendance); + return attendance; + } } diff --git a/src/main/java/de/kreth/clubhelper/model/dao/AttendanceDao.java b/src/main/java/de/kreth/clubhelper/model/dao/AttendanceDao.java index 14c4563..ec9d89d 100644 --- a/src/main/java/de/kreth/clubhelper/model/dao/AttendanceDao.java +++ b/src/main/java/de/kreth/clubhelper/model/dao/AttendanceDao.java @@ -1,5 +1,7 @@ package de.kreth.clubhelper.model.dao; +import java.time.LocalDate; +import java.time.LocalDateTime; import java.util.Date; import java.util.List; @@ -10,13 +12,13 @@ import de.kreth.clubhelper.model.data.Person; public interface AttendanceDao extends CrudRepository { - List findByOnDate(Date onDate); + List findByOnDate(LocalDate onDate); - List findByPerson(Person person); + List findByPerson(Person person); - Attendance findByPersonAndOnDate(Person person, Date onDate); + Attendance findByPersonAndOnDate(Person person, Date onDate); - List findByPersonId(long personId); + List findByPersonId(long personId); - List findByChangedGreaterThan(Date date); + List findByChangedGreaterThan(LocalDateTime date); } diff --git a/src/main/java/de/kreth/clubhelper/model/data/Attendance.java b/src/main/java/de/kreth/clubhelper/model/data/Attendance.java index 4c7b45c..bc7b32c 100644 --- a/src/main/java/de/kreth/clubhelper/model/data/Attendance.java +++ b/src/main/java/de/kreth/clubhelper/model/data/Attendance.java @@ -1,17 +1,14 @@ package de.kreth.clubhelper.model.data; import java.io.Serializable; -import java.util.Date; +import java.time.LocalDate; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Inheritance; import javax.persistence.InheritanceType; import javax.persistence.ManyToOne; -import javax.persistence.NamedQuery; import javax.persistence.Table; -import javax.persistence.Temporal; -import javax.persistence.TemporalType; /** * The persistent class for the attendance database table. @@ -19,57 +16,49 @@ import javax.persistence.TemporalType; @Entity @Table(name = "attendance") @Inheritance(strategy = InheritanceType.SINGLE_TABLE) -@NamedQuery(name = "Attendance.findAll", query = "SELECT a FROM Attendance a") -public class Attendance extends BaseEntity implements Serializable -{ - private static final long serialVersionUID = 2385033161272078335L; - @Temporal(TemporalType.TIMESTAMP) - @Column(name = "on_date") - private Date onDate; - // bi-directional many-to-one association to Person - @ManyToOne - private Person person; +public class Attendance extends BaseEntity implements Serializable { - public Date getOnDate() - { - return new Date(this.onDate.getTime()); - } + private static final long serialVersionUID = 2385033161272078335L; - public Person getPerson() - { - return person; - } + @Column(name = "on_date") + private LocalDate onDate; - public void setPerson(Person person) - { - this.person = person; - } + @ManyToOne + private Person person; - public void setOnDate(Date onDate) - { - this.onDate = onDate; - } + public LocalDate getOnDate() { + return this.onDate; + } - @Override - public int hashCode() - { - final int prime = 103; - int result = super.hashCode(); - result = prime * result; - return result; - } + public Person getPerson() { + return person; + } - @Override - public boolean equals(Object obj) - { - if (this == obj) - return true; - return super.equals(obj); - } + public void setPerson(Person person) { + this.person = person; + } - @Override - public String toString() - { - return "Attendance [person=" + person + ", onDate=" + onDate + "]"; - } + public void setOnDate(LocalDate onDate) { + this.onDate = onDate; + } + + @Override + public int hashCode() { + final int prime = 103; + int result = super.hashCode(); + result = prime * result; + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + return super.equals(obj); + } + + @Override + public String toString() { + return "Attendance [person=" + person + ", onDate=" + onDate + "]"; + } }