Merge branch 'master' into change_DTO
This commit is contained in:
14
src/main/java/mops/gruppen2/service/APIFormatterService.java
Normal file
14
src/main/java/mops/gruppen2/service/APIFormatterService.java
Normal file
@ -0,0 +1,14 @@
|
||||
package mops.gruppen2.service;
|
||||
|
||||
import mops.gruppen2.domain.Group;
|
||||
import mops.gruppen2.domain.apiWrapper.UpdatedGroupRequestMapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
public class APIFormatterService {
|
||||
static public UpdatedGroupRequestMapper wrapp(Long status, List<Group> groupList){
|
||||
return new UpdatedGroupRequestMapper(status, groupList);
|
||||
}
|
||||
}
|
||||
@ -2,10 +2,12 @@ package mops.gruppen2.service;
|
||||
|
||||
import mops.gruppen2.domain.Group;
|
||||
import mops.gruppen2.domain.GroupType;
|
||||
import mops.gruppen2.domain.Role;
|
||||
import mops.gruppen2.domain.Visibility;
|
||||
import mops.gruppen2.domain.event.*;
|
||||
import mops.gruppen2.security.Account;
|
||||
import org.springframework.stereotype.Service;
|
||||
import java.util.*;
|
||||
|
||||
@Service
|
||||
public class ControllerService {
|
||||
@ -16,16 +18,26 @@ public class ControllerService {
|
||||
this.eventService = eventService;
|
||||
}
|
||||
|
||||
public void createGroup(Account account, String title, String beschreibung) {
|
||||
CreateGroupEvent createGroupEvent = new CreateGroupEvent(eventService.checkGroup(), account.getName(), null , GroupType.LECTURE, Visibility.PUBLIC);
|
||||
AddUserEvent addUserEvent = new AddUserEvent(eventService.checkGroup(), account.getName(),account.getGivenname(),account.getFamilyname(),account.getEmail());
|
||||
UpdateGroupTitleEvent updateGroupTitleEvent = new UpdateGroupTitleEvent(eventService.checkGroup(), account.getName(), title);
|
||||
UpdateGroupDescriptionEvent updateGroupDescriptionEvent = new UpdateGroupDescriptionEvent(eventService.checkGroup(), account.getName(), beschreibung);
|
||||
/**
|
||||
* Erzeugt eine neue Gruppe, fügt den User, der die Gruppe erstellt hat, hinzu und setzt seine Rolle als Admin fest.
|
||||
* Zudem wird der Gruppentitel und die Gruppenbeschreibung erzeugt, welche vorher der Methode übergeben wurden.
|
||||
* Aus diesen Event Objekten wird eine Liste erzeugt, welche daraufhin mithilfe des EventServices gesichert wird.
|
||||
*
|
||||
* @param account Keycloak-Account
|
||||
* @param title Gruppentitel
|
||||
* @param description Gruppenbeschreibung
|
||||
*/
|
||||
public void createGroup(Account account, String title, String description) {
|
||||
|
||||
eventService.saveEvent(createGroupEvent);
|
||||
eventService.saveEvent(addUserEvent);
|
||||
eventService.saveEvent(updateGroupTitleEvent);
|
||||
eventService.saveEvent(updateGroupDescriptionEvent);
|
||||
List<Event> eventList = new ArrayList<>();
|
||||
Collections.addAll(eventList, new CreateGroupEvent(eventService.checkGroup(), account.getName(), null , GroupType.LECTURE, Visibility.PUBLIC),
|
||||
new AddUserEvent(eventService.checkGroup(), account.getName(),account.getGivenname(),account.getFamilyname(),account.getEmail()),
|
||||
new UpdateRoleEvent(eventService.checkGroup(), account.getName(), Role.ADMIN),
|
||||
new UpdateGroupTitleEvent(eventService.checkGroup(), account.getName(), title),
|
||||
new UpdateGroupDescriptionEvent(eventService.checkGroup(), account.getName(), description),
|
||||
new UpdateRoleEvent(eventService.checkGroup(),account.getName(), Role.ADMIN));
|
||||
|
||||
eventService.saveEventList(eventList);
|
||||
}
|
||||
|
||||
public void addUser(Account account, Group group){
|
||||
|
||||
@ -83,9 +83,10 @@ public class EventService {
|
||||
* @return Liste von Events
|
||||
*/
|
||||
public List<Event> getNewEvents(Long status){
|
||||
Iterable<EventDTO> eventDTOS = eventStore.findNewEventSinceStatus(status);
|
||||
List<Long> groupIdsThatChanged = eventStore.findNewEventSinceStatus(status);
|
||||
|
||||
return translateEventDTOs(eventDTOS);
|
||||
List<EventDTO> groupEventDTOS = eventStore.findAllEventsOfGroups(groupIdsThatChanged);
|
||||
return translateEventDTOs(groupEventDTOS);
|
||||
}
|
||||
|
||||
/** Erzeugt aus einer Liste von eventDTOs eine Liste von Events
|
||||
@ -106,5 +107,28 @@ public class EventService {
|
||||
return events;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sichert eine Liste von Event Objekten mithilfe der Methode saveEvent(Event event)
|
||||
*
|
||||
* @param createGroupEvents Liste von Event Objekten
|
||||
*/
|
||||
public void saveEventList(List<Event> createGroupEvents) {
|
||||
for(Event event : createGroupEvents) {
|
||||
saveEvent(event);
|
||||
}
|
||||
}
|
||||
|
||||
public Long getMaxEvent_id(){
|
||||
return eventStore.getHighesEvent_ID();
|
||||
}
|
||||
|
||||
public List<Long> getGroupsOfUser(String userID) {
|
||||
return eventStore.findGroup_idsWhereUser_id(userID);
|
||||
}
|
||||
|
||||
public List<Event> getEventsOfGroup(Long groupId) {
|
||||
List<EventDTO> eventDTOList = eventStore.findEventDTOByGroup_id(groupId);
|
||||
return translateEventDTOs(eventDTOList);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -22,12 +22,26 @@ public class SerializationService {
|
||||
this.eventStore = eventStore;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Übersetzt mithilfe der Jackson-Library eine Java-Event-Repräsentation zu einem JSON-Event-Payload.
|
||||
*
|
||||
* @param event Java-Event-Repräsentation
|
||||
* @return JSON-Event-Payload als String
|
||||
* @throws JsonProcessingException
|
||||
*/
|
||||
|
||||
public String serializeEvent(Event event) throws JsonProcessingException {
|
||||
ObjectMapper mapper = new ObjectMapper();
|
||||
return mapper.writeValueAsString(event);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Übersetzt mithilfe der Jackson-Library einen JSON-Event-Payload zu einer Java-Event-Repräsentation.
|
||||
*
|
||||
* @param json JSON-Event-Payload als String
|
||||
* @return Java-Event-Repräsentation
|
||||
* @throws JsonProcessingException
|
||||
*/
|
||||
public Event deserializeEvent(String json) throws JsonProcessingException {
|
||||
ObjectMapper mapper = new ObjectMapper();
|
||||
return mapper.readValue(json, Event.class);
|
||||
|
||||
@ -6,6 +6,7 @@ import mops.gruppen2.domain.event.Event;
|
||||
import mops.gruppen2.repository.EventRepository;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
@ -26,4 +27,11 @@ public class UserService {
|
||||
List<Event> events = groupService.getGroupEvents(group_ids);
|
||||
return groupService.projectEventList(events);
|
||||
}
|
||||
|
||||
public Group getGroupById(Long group_id) throws EventException {
|
||||
List<Long> group_ids = new ArrayList<>();
|
||||
group_ids.add(group_id);
|
||||
List<Event> events = groupService.getGroupEvents(group_ids);
|
||||
return groupService.projectEventList(events).get(0);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user