diff --git a/src/main/java/mops/gruppen2/config/Gruppen2Config.java b/src/main/java/mops/gruppen2/config/Gruppen2Config.java index 1f8b305..815ecc4 100644 --- a/src/main/java/mops/gruppen2/config/Gruppen2Config.java +++ b/src/main/java/mops/gruppen2/config/Gruppen2Config.java @@ -17,10 +17,4 @@ public class Gruppen2Config { GroupService groupService; @Autowired EventService eventService; - - @Bean - public List groups() throws EventException { - return groupService.projectEventList(eventService.findAllEvents()); - } - } diff --git a/src/main/java/mops/gruppen2/controller/APIController.java b/src/main/java/mops/gruppen2/controller/APIController.java new file mode 100644 index 0000000..832f6b3 --- /dev/null +++ b/src/main/java/mops/gruppen2/controller/APIController.java @@ -0,0 +1,44 @@ +package mops.gruppen2.controller; + + +import com.github.javafaker.Faker; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import mops.gruppen2.domain.Exceptions.EventException; +import mops.gruppen2.domain.Group; +import mops.gruppen2.domain.ProductSwaggerExample; +import mops.gruppen2.domain.event.Event; +import mops.gruppen2.service.EventService; +import mops.gruppen2.service.GroupService; +import mops.gruppen2.service.SerializationService; +import org.springframework.web.bind.annotation.*; + +import java.util.ArrayList; +import java.util.List; + +/** + * Ein Beispiel für eine API mit Swagger. + */ +@RestController +@RequestMapping("/gruppen2") +public class APIController { + + private final SerializationService serializationService; + private final EventService eventService; + private final GroupService groupService; + + public APIController(SerializationService serializationService, EventService eventService, GroupService groupService) { + this.serializationService = serializationService; + this.eventService = eventService; + this.groupService = groupService; + } + + @GetMapping("/updatedGroups/{status}") + @ApiOperation(value = "Gibt alle Gruppen zurück in denen sich etwas geändert hat") + public List updateGroup(@ApiParam("Status des Anfragestellers") @PathVariable Long status) throws EventException { + List events = eventService.getNewEvents(status); + return groupService.projectEventList(events); + } + + +} diff --git a/src/main/java/mops/gruppen2/controller/SwaggerAPIController.java b/src/main/java/mops/gruppen2/controller/SwaggerAPIController.java deleted file mode 100644 index 33faab8..0000000 --- a/src/main/java/mops/gruppen2/controller/SwaggerAPIController.java +++ /dev/null @@ -1,54 +0,0 @@ -package mops.gruppen2.controller; - - -import com.github.javafaker.Faker; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import mops.gruppen2.domain.ProductSwaggerExample; -import mops.gruppen2.service.SerializationService; -import org.springframework.web.bind.annotation.*; - -import java.util.ArrayList; -import java.util.List; - -/** - * Ein Beispiel für eine API mit Swagger. - */ -@RestController -@RequestMapping("/products") -public class SwaggerAPIController { - - private final Faker faker = new Faker(); - private final List products = new ArrayList<>(); - private final SerializationService serializationService; - - public SwaggerAPIController(SerializationService serializationService) { - this.serializationService = serializationService; - } - - @GetMapping("/get/all") - @ApiOperation(value = "Erzeugt eine Liste mit allen gespeicherten Produkten") - public List getProducts() { - return products; - } - - @GetMapping("/get/{index}") - public ProductSwaggerExample getProduct(@ApiParam("Produkt Index") @PathVariable int index) { - return products.get(index); - } - - @PostMapping("/save") - public String saveProduct(@RequestBody ProductSwaggerExample product) { - products.add(product); - - return "Product saved successfully"; - } - - @PostMapping("/random") - public String saveRandomProduct() { - products.add(new ProductSwaggerExample(faker.food().ingredient(), "Empty")); - - return "Product saved successfully"; - } - -} diff --git a/src/main/java/mops/gruppen2/repository/EventRepository.java b/src/main/java/mops/gruppen2/repository/EventRepository.java index bb9947b..57b39b5 100644 --- a/src/main/java/mops/gruppen2/repository/EventRepository.java +++ b/src/main/java/mops/gruppen2/repository/EventRepository.java @@ -1,9 +1,14 @@ package mops.gruppen2.repository; import mops.gruppen2.domain.EventDTO; +import mops.gruppen2.domain.event.Event; +import org.springframework.data.jdbc.repository.query.Query; import org.springframework.data.repository.CrudRepository; +import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Repository; @Repository public interface EventRepository extends CrudRepository { + @Query("SELECT * FROM event WHERE event_id > ?#{[0]}") + public Iterable findNewEventSinceStatus(@Param("status") Long status); } diff --git a/src/main/java/mops/gruppen2/service/EventService.java b/src/main/java/mops/gruppen2/service/EventService.java index 0111ea0..aba10cc 100644 --- a/src/main/java/mops/gruppen2/service/EventService.java +++ b/src/main/java/mops/gruppen2/service/EventService.java @@ -4,6 +4,7 @@ import com.fasterxml.jackson.core.JsonProcessingException; import mops.gruppen2.domain.EventDTO; import mops.gruppen2.domain.event.Event; import mops.gruppen2.repository.EventRepository; +import org.bouncycastle.jcajce.provider.asymmetric.ec.KeyFactorySpi; import org.springframework.stereotype.Service; import java.util.ArrayList; @@ -52,16 +53,24 @@ public class EventService { return tmpId; } - public List findAllEvents() { - Iterable eventDTOS = eventStore.findAll(); + + public List getNewEvents(Long status){ + Iterable eventDTOS = eventStore.findNewEventSinceStatus(status); + + return translateEventDTOs(eventDTOS); + } + + private List translateEventDTOs(Iterable eventDTOS){ List events = new ArrayList<>(); - eventDTOS.forEach(eventDTO -> { + + for (EventDTO eventDTO : eventDTOS) { try { events.add(serializationService.deserializeEvent(eventDTO.getEvent_payload())); - } catch (JsonProcessingException e) { + + }catch (JsonProcessingException e) { e.printStackTrace(); } - }); + } return events; }