Compare commits

...

4 Commits

  1. 5
      pom.xml
  2. 2
      src/main/java/de/kreth/clubhelper/model/controller/AbstractController.java
  3. 69
      src/main/java/de/kreth/clubhelper/model/controller/RelativeController.java
  4. 4
      src/main/java/de/kreth/clubhelper/model/dao/RelativeDao.java
  5. 3
      src/main/java/de/kreth/clubhelper/model/dao/StartpassDao.java

@ -40,11 +40,6 @@
<artifactId>spring-boot-starter-web</artifactId> <artifactId>spring-boot-starter-web</artifactId>
</dependency> </dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency> <dependency>
<groupId>org.keycloak</groupId> <groupId>org.keycloak</groupId>
<artifactId>keycloak-spring-boot-starter</artifactId> <artifactId>keycloak-spring-boot-starter</artifactId>

@ -69,6 +69,7 @@ public abstract class AbstractController<T extends BaseEntity, D extends CrudRep
@GetMapping(value = "/for/{id}") @GetMapping(value = "/for/{id}")
public List<T> getByParentId(@PathVariable("id") long id) { public List<T> getByParentId(@PathVariable("id") long id) {
if (dao instanceof ClubhelperDao) { if (dao instanceof ClubhelperDao) {
@SuppressWarnings("unchecked")
ClubhelperDao<T> specialDao = (ClubhelperDao<T>) dao; ClubhelperDao<T> specialDao = (ClubhelperDao<T>) dao;
return specialDao.findByPersonId(id); return specialDao.findByPersonId(id);
} }
@ -80,6 +81,7 @@ public abstract class AbstractController<T extends BaseEntity, D extends CrudRep
public List<T> getChangedSince(@PathVariable("changed") long changed) { public List<T> getChangedSince(@PathVariable("changed") long changed) {
if (dao instanceof ClubhelperDao) { if (dao instanceof ClubhelperDao) {
@SuppressWarnings("unchecked")
ClubhelperDao<T> specialDao = (ClubhelperDao<T>) dao; ClubhelperDao<T> specialDao = (ClubhelperDao<T>) dao;
return specialDao.findByChangedGreaterThan(new Date(changed)); return specialDao.findByChangedGreaterThan(new Date(changed));
} }

@ -1,12 +1,16 @@
package de.kreth.clubhelper.model.controller; package de.kreth.clubhelper.model.controller;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import com.fasterxml.jackson.annotation.JsonIgnore;
import de.kreth.clubhelper.model.dao.RelativeDao; import de.kreth.clubhelper.model.dao.RelativeDao;
import de.kreth.clubhelper.model.data.Person;
import de.kreth.clubhelper.model.data.Relative; import de.kreth.clubhelper.model.data.Relative;
@RestController @RestController
@ -22,6 +26,69 @@ public class RelativeController extends AbstractController<Relative, RelativeDao
@Override @Override
public List<Relative> getByParentId(long id) { public List<Relative> getByParentId(long id) {
return relativeDao.findByPerson1ORPerson2(id); return relativeDao.findByPersonId1OrPerson2Id(id).stream()
.map(r -> map(id, r))
.collect(Collectors.toList());
}
private Relation map(long forPersonId, Relative relative) {
Relation r;
if (relative.getPerson2Bean().getId() == forPersonId) {
r = new Relation(relative.getToPerson1Relation(), relative.getPerson1Bean());
} else {
r = new Relation(relative.getToPerson2Relation(), relative.getPerson2Bean());
}
r.setChanged(relative.getChanged());
r.setCreated(relative.getCreated());
r.setId(relative.getId());
r.setDeleted(relative.getDeleted());
return r;
}
public class Relation extends Relative {
private static final long serialVersionUID = -4881464721582462186L;
private final String relationType;
private final Person relative;
private Relation(String relationType, Person relative) {
super();
this.relationType = relationType;
this.relative = relative;
}
public String getRelationType() {
return relationType;
}
public Person getRelative() {
return relative;
}
@JsonIgnore
@Override
public Person getPerson1Bean() {
return super.getPerson1Bean();
}
@JsonIgnore
@Override
public Person getPerson2Bean() {
return super.getPerson2Bean();
}
@JsonIgnore
@Override
public String getToPerson1Relation() {
return super.getToPerson1Relation();
}
@JsonIgnore
@Override
public String getToPerson2Relation() {
return super.getToPerson2Relation();
}
} }
} }

@ -2,12 +2,14 @@ package de.kreth.clubhelper.model.dao;
import java.util.List; import java.util.List;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.CrudRepository; import org.springframework.data.repository.CrudRepository;
import de.kreth.clubhelper.model.data.Relative; 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); @Query(value = "SELECT * FROM clubhelper.relative r where r.person1=?1 or r.person2=?1", nativeQuery = true)
List<Relative> findByPersonId1OrPerson2Id(long personId);
} }

@ -4,6 +4,5 @@ import org.springframework.data.repository.CrudRepository;
import de.kreth.clubhelper.model.data.Startpass; import de.kreth.clubhelper.model.data.Startpass;
public interface StartpassDao extends CrudRepository<Startpass, Long> public interface StartpassDao extends CrudRepository<Startpass, Long>, ClubhelperDao<Startpass> {
{
} }

Loading…
Cancel
Save