fixed controllers and daos

REL-BRANCH-ClubhelperModel-0.0.1
Markus Kreth 5 years ago
parent fa352bbd32
commit db5d1cb957
  1. 30
      src/main/java/de/kreth/clubhelper/model/controller/AbstractController.java
  2. 20
      src/main/java/de/kreth/clubhelper/model/controller/AdressController.java
  3. 20
      src/main/java/de/kreth/clubhelper/model/controller/ContactController.java
  4. 20
      src/main/java/de/kreth/clubhelper/model/controller/PersonController.java
  5. 16
      src/main/java/de/kreth/clubhelper/model/controller/RelativeController.java
  6. 3
      src/main/java/de/kreth/clubhelper/model/dao/AttendanceDao.java
  7. 5
      src/main/java/de/kreth/clubhelper/model/dao/ContactDao.java
  8. 8
      src/main/java/de/kreth/clubhelper/model/dao/RelativeDao.java
  9. 65
      src/main/java/de/kreth/clubhelper/model/data/Relative.java

@ -12,6 +12,7 @@ import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.repository.CrudRepository;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
@ -25,10 +26,9 @@ import de.kreth.clubhelper.model.data.BaseEntity;
/**
* Default Controller implementing all functionality for all {@link Data} types.
*
* @param <T>
* Data type
* @param <T> Data type
*/
@Controller
//@PreAuthorize("hasAnyRole('ROLE_ADMIN', 'STAFF')")
public abstract class AbstractController<T extends BaseEntity, D extends CrudRepository<T, Long>>
implements
@ -38,15 +38,16 @@ public abstract class AbstractController<T extends BaseEntity, D extends CrudRep
protected D dao;
private Class<T> elementClass;
public AbstractController(Class<T> element) {
protected AbstractController(Class<T> element) {
super();
this.elementClass = element;
}
@Override
@GetMapping(value = "/{id}", produces = "application/json")
@GetMapping(value = "/{id}")
public T getById(@PathVariable("id") long id) {
return dao.findById(id).orElseThrow(() -> new IllegalArgumentException(elementClass.getName() + " with id=" + id + " not found"));
return dao.findById(id).orElseThrow(
() -> new IllegalArgumentException(elementClass.getName() + " with id=" + id + " not found"));
}
protected List<T> iterableToList(Iterable<T> in) {
@ -56,8 +57,7 @@ public abstract class AbstractController<T extends BaseEntity, D extends CrudRep
}
@Override
@GetMapping(value = {"/",
""}, produces = "application/json")
@GetMapping(value = { "/", "" })
public List<T> getAll() {
Iterable<T> findAll = dao.findAll();
List<T> result = new ArrayList<>();
@ -66,7 +66,7 @@ public abstract class AbstractController<T extends BaseEntity, D extends CrudRep
}
@Override
@GetMapping(value = "/for/{id}", produces = "application/json")
@GetMapping(value = "/for/{id}")
public List<T> getByParentId(@PathVariable("id") long id) {
if (dao instanceof ClubhelperDao) {
ClubhelperDao<T> specialDao = (ClubhelperDao<T>) dao;
@ -76,7 +76,7 @@ public abstract class AbstractController<T extends BaseEntity, D extends CrudRep
}
@Override
@GetMapping(value = "/changed/{changed}", produces = "application/json")
@GetMapping(value = "/changed/{changed}")
public List<T> getChangedSince(@PathVariable("changed") long changed) {
if (dao instanceof ClubhelperDao) {
@ -87,7 +87,7 @@ public abstract class AbstractController<T extends BaseEntity, D extends CrudRep
}
@Override
@PutMapping(value = "/{id}", produces = "application/json")
@PutMapping(value = "/{id}")
public T put(@PathVariable("id") long id, @RequestBody T toUpdate) {
LocalDateTime now = LocalDateTime.now();
@ -109,7 +109,7 @@ public abstract class AbstractController<T extends BaseEntity, D extends CrudRep
}
@Override
@DeleteMapping(value = "/{id}", produces = "application/json")
@DeleteMapping(value = "/{id}")
public ResponseEntity<T> delete(@PathVariable("id") long id) {
T byId = getById(id);
if (not(byId.isDeleted())) {
@ -119,13 +119,13 @@ public abstract class AbstractController<T extends BaseEntity, D extends CrudRep
}
@Override
@PostMapping(value = "/", produces = "application/json")
@PostMapping(value = "/")
public T post(@RequestBody T toCreate) {
return post(-1L, toCreate);
return post(toCreate.getId(), toCreate);
}
@Override
@PostMapping(value = "/{id}", produces = "application/json")
@PostMapping(value = "/{id}")
public T post(@PathVariable("id") Long id, @RequestBody T toCreate) {
if (id == null) {
id = -1L;

@ -1,33 +1,19 @@
package de.kreth.clubhelper.model.controller;
import java.time.LocalDateTime;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import de.kreth.clubhelper.model.dao.AdressDao;
import de.kreth.clubhelper.model.data.Adress;
import de.kreth.clubhelper.model.data.Person;
@RestController
@RequestMapping("/adress")
@PreAuthorize("isAuthenticated()")
public class AdressController
{
@Autowired
private AdressDao adressDao;
public class AdressController extends AbstractController<Adress, AdressDao> {
public List<Adress> getByParent(Person person)
{
return adressDao.findByPerson(person);
public AdressController() {
super(Adress.class);
}
public void delete(Adress a)
{
a.setDeleted(LocalDateTime.now());
adressDao.save(a);
}
}

@ -1,33 +1,19 @@
package de.kreth.clubhelper.model.controller;
import java.time.LocalDateTime;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import de.kreth.clubhelper.model.dao.ContactDao;
import de.kreth.clubhelper.model.data.Contact;
import de.kreth.clubhelper.model.data.Person;
@RestController
@RequestMapping("/contact")
@PreAuthorize("isAuthenticated()")
public class ContactController
{
@Autowired
private ContactDao contactDao;
public class ContactController extends AbstractController<Contact, ContactDao> {
public List<Contact> getByParent(Person person)
{
return contactDao.findByPerson(person);
public ContactController() {
super(Contact.class);
}
public void delete(Contact c)
{
c.setDeleted(LocalDateTime.now());
contactDao.save(c);
}
}

@ -21,8 +21,7 @@ import io.swagger.annotations.ApiOperation;
@Controller
@RequestMapping("/person")
@PreAuthorize("isAuthenticated()")
public class PersonController
{
public class PersonController {
@Autowired
private PersonDao personDao;
@ -35,28 +34,25 @@ public class PersonController
@GetMapping
@PreAuthorize("hasAnyRole('trainer', 'admin')")
@ApiOperation("Get a list of all persons. Restricted to trainers and admins.")
public @ResponseBody Iterable<Person> getAll()
{
public @ResponseBody Iterable<Person> getAll() {
return personDao.findAll();
}
@GetMapping(value = "/{id}")
public @ResponseBody Optional<Person> getById(@PathVariable("id") final long id)
{
public @ResponseBody Optional<Person> getById(@PathVariable("id") final long id) {
return personDao.findById(id);
}
@DeleteMapping(value = "/{id}")
public @ResponseBody Person delete(@PathVariable("id") final long id)
{
public @ResponseBody Person delete(@PathVariable("id") final long id) {
Optional<Person> optional = personDao.findById(id);
if (optional.isPresent()) {
Person person = optional.get();
for (Contact c : contactController.getByParent(person)) {
contactController.delete(c);
for (Contact c : contactController.getByParentId(person.getId())) {
contactController.delete(c.getId());
}
for (Adress a : adressController.getByParent(person)) {
adressController.delete(a);
for (Adress a : adressController.getByParentId(person.getId())) {
adressController.delete(a.getId());
}
person.setDeleted(LocalDateTime.now());
personDao.save(person);

@ -1,5 +1,7 @@
package de.kreth.clubhelper.model.controller;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@ -12,16 +14,14 @@ import de.kreth.clubhelper.model.data.Relative;
public class RelativeController extends AbstractController<Relative, RelativeDao> {
@Autowired
private RelativeDao relativeDao;
public RelativeController() {
super(Relative.class);
}
//
// @Override
// @RequestMapping(value = "/for/{id}", method = RequestMethod.GET)
// public List<Relative> getByParentId(@PathVariable("id") long id) {
// StringBuilder whereClause = new StringBuilder("person1=");
// whereClause.append(id).append(" OR person2=").append(id);
// return dao.getByWhere(whereClause.toString());
// }
@Override
public List<Relative> getByParentId(long id) {
return relativeDao.findByPerson1ORPerson2(id);
}
}

@ -10,7 +10,7 @@ import org.springframework.data.repository.CrudRepository;
import de.kreth.clubhelper.model.data.Attendance;
import de.kreth.clubhelper.model.data.Person;
public interface AttendanceDao extends CrudRepository<Attendance, Long> {
public interface AttendanceDao extends CrudRepository<Attendance, Long>, ClubhelperDao<Attendance> {
List<Attendance> findByOnDate(LocalDate onDate);
@ -18,6 +18,7 @@ public interface AttendanceDao extends CrudRepository<Attendance, Long> {
Attendance findByPersonAndOnDate(Person person, Date onDate);
@Override
List<Attendance> findByPersonId(long personId);
List<Attendance> findByChangedGreaterThan(LocalDateTime date);

@ -7,8 +7,11 @@ import org.springframework.data.repository.CrudRepository;
import de.kreth.clubhelper.model.data.Contact;
import de.kreth.clubhelper.model.data.Person;
public interface ContactDao extends CrudRepository<Contact, Integer> {
public interface ContactDao extends CrudRepository<Contact, Long>, ClubhelperDao<Contact> {
List<Contact> findByPerson(Person person);
@Override
List<Contact> findByPersonId(long personId);
}

@ -1,9 +1,13 @@
package de.kreth.clubhelper.model.dao;
import java.util.List;
import org.springframework.data.repository.CrudRepository;
import de.kreth.clubhelper.model.data.Relative;
public interface RelativeDao extends CrudRepository<Relative, Long>
{
public interface RelativeDao extends CrudRepository<Relative, Long> {
List<Relative> findByPerson1ORPerson2(long personId);
}

@ -8,7 +8,6 @@ import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
/**
@ -17,29 +16,31 @@ import javax.persistence.Table;
@Entity
@Table(name = "relative")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@NamedQuery(name = Relative.QUERY_FINDALL, query = "SELECT r FROM Relative r")
public class Relative extends BaseEntity implements Serializable
{
public static final String QUERY_FINDALL = "Relative.findAll";
public class Relative extends BaseEntity implements Serializable {
private static final long serialVersionUID = 1L;
@Column(name = "TO_PERSON1_RELATION")
private String toPerson1Relation;
@Column(name = "TO_PERSON2_RELATION")
private String toPerson2Relation;
// bi-directional many-to-one association to Person
@ManyToOne
@JoinColumn(name = "person1")
private Person person1Bean;
// bi-directional many-to-one association to Person
@ManyToOne
@JoinColumn(name = "person2")
private Person person2Bean;
public Relative()
{
public Relative() {
}
public Relative(long id, String toPerson1Relation, String toPerson2Relation, Person person1Bean, Person person2Bean)
{
public Relative(long id, String toPerson1Relation, String toPerson2Relation, Person person1Bean,
Person person2Bean) {
super();
setId(id);
this.toPerson1Relation = toPerson1Relation;
@ -48,66 +49,53 @@ public class Relative extends BaseEntity implements Serializable
this.person2Bean = person2Bean;
}
public String getToPerson1Relation()
{
public String getToPerson1Relation() {
return toPerson1Relation;
}
public void setToPerson1Relation(String toPerson1Relation)
{
public void setToPerson1Relation(String toPerson1Relation) {
this.toPerson1Relation = toPerson1Relation;
}
public String getToPerson2Relation()
{
public String getToPerson2Relation() {
return toPerson2Relation;
}
public void setToPerson2Relation(String toPerson2Relation)
{
public void setToPerson2Relation(String toPerson2Relation) {
this.toPerson2Relation = toPerson2Relation;
}
public Person getPerson1Bean()
{
public Person getPerson1Bean() {
return person1Bean;
}
public void setPerson1Bean(Person person1Bean)
{
public void setPerson1Bean(Person person1Bean) {
this.person1Bean = person1Bean;
}
public Person getPerson2Bean()
{
public Person getPerson2Bean() {
return person2Bean;
}
public void setPerson2Bean(Person person2Bean)
{
public void setPerson2Bean(Person person2Bean) {
this.person2Bean = person2Bean;
}
public Relation getRelationTo(Person person)
{
public Relation getRelationTo(Person person) {
if (person == null) {
return null;
}
if (person.equals(person1Bean)) {
return new Relation(person2Bean, toPerson2Relation);
}
else if (person.equals(person2Bean)) {
} else if (person.equals(person2Bean)) {
return new Relation(person1Bean, toPerson1Relation);
}
else {
} else {
return null;
}
}
@Override
public int hashCode()
{
public int hashCode() {
final int prime = 73;
int result = super.hashCode();
result = prime * result;
@ -115,16 +103,15 @@ public class Relative extends BaseEntity implements Serializable
}
@Override
public boolean equals(Object obj)
{
public boolean equals(Object obj) {
if (this == obj)
return true;
return super.equals(obj);
}
@Override
public String toString()
{
return "Relative [person1Bean=" + person1Bean + ", toPerson2Relation=" + toPerson2Relation + ", person2Bean=" + person2Bean + "]";
public String toString() {
return "Relative [person1Bean=" + person1Bean + ", toPerson2Relation=" + toPerson2Relation + ", person2Bean="
+ person2Bean + "]";
}
}

Loading…
Cancel
Save