1

Merge remote-tracking branch 'origin/master' into updateGroupsAPI

# Conflicts:
#	src/main/java/mops/gruppen2/repository/EventRepository.java
This commit is contained in:
LukasEttel
2020-03-12 16:31:23 +01:00
11 changed files with 139 additions and 29 deletions

View File

@ -0,0 +1,29 @@
package mops.gruppen2.service;
import mops.gruppen2.domain.GroupType;
import mops.gruppen2.domain.Visibility;
import mops.gruppen2.domain.event.*;
import mops.gruppen2.security.Account;
import org.springframework.stereotype.Service;
@Service
public class ControllerService {
private final EventService eventService;
public ControllerService(EventService eventService) {
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);
eventService.saveEvent(createGroupEvent);
eventService.saveEvent(addUserEvent);
eventService.saveEvent(updateGroupTitleEvent);
eventService.saveEvent(updateGroupDescriptionEvent);
}
}

View File

@ -20,13 +20,20 @@ public class EventService {
this.eventStore = eventStore;
}
/** sichert ein Event Objekt indem es ein EventDTO Objekt erzeugt
*
* @param event
*/
public void saveEvent(Event event){
EventDTO eventDTO = getDTO(event);
eventStore.save(eventDTO);
}
/** Erzeugt aus einem Event Objekt ein EventDTO Objekt
*
* @param event
* @return EventDTO
*/
public EventDTO getDTO(Event event){
EventDTO eventDTO = new EventDTO();
eventDTO.setGroup_id(event.getGroup_id());
@ -39,6 +46,10 @@ public class EventService {
return eventDTO;
}
/** Sorgt dafür die Group_id immer um 1 zu erhöhen
*
* @return Gibt Long zurück
*/
public Long checkGroup() {
Long tmpId = 1L;
Iterable<EventDTO> eventDTOS = eventStore.findAll();
@ -53,7 +64,11 @@ public class EventService {
return tmpId;
}
/** Findet alle Events welche ab dem neuen Status hinzugekommen sind
*
* @param status
* @return Liste von Events
*/
public List<Event> getNewEvents(Long status){
Iterable<EventDTO> newEventDTOS = eventStore.findNewEventSinceStatus(status);
List<Long> groupIdsThatChanged = this.getAllGroupIds(newEventDTOS);
@ -62,7 +77,12 @@ public class EventService {
return translateEventDTOs(groupEventDTOS);
}
private List<Event> translateEventDTOs(Iterable<EventDTO> eventDTOS){
/** Erzeugt aus der Datenbank eine Liste von Events
*
* @param eventDTOS
* @return Liste von Events
*/
public List<Event> translateEventDTOs(Iterable<EventDTO> eventDTOS){
List<Event> events = new ArrayList<>();
for (EventDTO eventDTO : eventDTOS) {

View File

@ -1,8 +1,10 @@
package mops.gruppen2.service;
import mops.gruppen2.domain.EventDTO;
import mops.gruppen2.domain.Exceptions.EventException;
import mops.gruppen2.domain.Group;
import mops.gruppen2.domain.event.Event;
import mops.gruppen2.repository.EventRepository;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
@ -14,11 +16,23 @@ import java.util.Map;
public class GroupService {
private final EventService eventService;
private final EventRepository eventRepository;
public GroupService(EventService eventService) {
public GroupService(EventService eventService, EventRepository eventRepository) {
this.eventService = eventService;
this.eventRepository = eventRepository;
}
public List<Event> getGroupEvents(List<Long> group_ids) {
List<EventDTO> eventDTOS = new ArrayList<>();
List<Event> events = new ArrayList<>();
for (Long group_id: group_ids) {
eventDTOS.addAll(eventRepository.findEventDTOByGroup_id(group_id));
}
return events = eventService.translateEventDTOs(eventDTOS);
}
public List<Group> projectEventList(List<Event> events) throws EventException {
Map<Long, Group> groupMap = new HashMap<>();

View File

@ -0,0 +1,27 @@
package mops.gruppen2.service;
import mops.gruppen2.domain.Exceptions.EventException;
import mops.gruppen2.domain.Group;
import mops.gruppen2.domain.event.Event;
import mops.gruppen2.repository.EventRepository;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserService {
final EventRepository eventRepository;
final GroupService groupService;
public UserService(EventRepository eventRepository, GroupService groupService) {
this.eventRepository = eventRepository;
this.groupService = groupService;
}
public List<Group> getUserGroups(String user_id) throws EventException {
List<Long> group_ids = eventRepository.findGroup_idsWhereUser_id(user_id);
List<Event> events = groupService.getGroupEvents(group_ids);
return groupService.projectEventList(events);
}
}