1

added javaDoc for EventService and fix Todo

fix Todo in EventRepository
This commit is contained in:
[Mahgs]
2020-03-26 13:28:23 +01:00
parent ae468f4afc
commit 3c05dbef75
4 changed files with 52 additions and 31 deletions

View File

@ -9,14 +9,13 @@ import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
//TODO Rename Queries + Formatting
public interface EventRepository extends CrudRepository<EventDTO, Long> {
@Query("select distinct group_id from event where user_id =:id")
List<String> findGroup_idsWhereUser_id(@Param("id") String userId);
@Query("select distinct group_id from event where user_id =:id AND event_type = AddUserEvent")
List<String> findGroupIdsWhereUserId(@Param("id") String userId);
@Query("select * from event where group_id =:id")
List<EventDTO> findEventDTOByGroup_id(@Param("id") String groupId);
List<EventDTO> findEventDTOByGroupId(@Param("id") String groupId);
//@Query("SELECT * FROM event WHERE event_id > ?#{[0]}")
//Iterable<EventDTO> findNewEventSinceStatus(@Param("status") Long status);
@ -28,7 +27,7 @@ public interface EventRepository extends CrudRepository<EventDTO, Long> {
List<EventDTO> findAllEventsOfGroups(@Param("groupIds") List<String> groupIds);
@Query("SELECT MAX(event_id) FROM event")
Long getHighesEvent_ID();
Long getHighesEventID();
@Query("SELECT * FROM event WHERE event_type = :type")
List<EventDTO> findAllEventsByType(@Param("type") String type);

View File

@ -29,20 +29,24 @@ public class EventService {
* @param event Event, welches gespeichert wird
*/
public void saveEvent(Event event) {
eventStore.save(getDTO(event));
eventStore.save(getDTOFromEvent(event));
}
public void saveAll(Event... events) {
for (Event event : events) {
eventStore.save(getDTO(event));
eventStore.save(getDTOFromEvent(event));
}
}
/**
* Speichert alle Events aus der übergebenen Liste in der DB.
* @param events Liste an Events die gespeichert werden soll
*/
@SafeVarargs
public final void saveAll(List<Event>... events) {
for (List<Event> eventlist : events) {
for (Event event : eventlist) {
eventStore.save(getDTO(event));
eventStore.save(getDTOFromEvent(event));
}
}
}
@ -52,10 +56,9 @@ public class EventService {
* Ist die Gruppe öffentlich, dann wird die visibility auf true gesetzt.
*
* @param event Event, welches in DTO übersetzt wird
* @return EventDTO Neues DTO
* @return EventDTO (Neues DTO)
*/
//TODO Rename: getDTOFromEvent?
public EventDTO getDTO(Event event) {
public EventDTO getDTOFromEvent(Event event) {
String payload = "";
try {
payload = jsonService.serializeEvent(event);
@ -66,6 +69,11 @@ public class EventService {
return new EventDTO(null, event.getGroupId().toString(), event.getUserId(), getEventType(event), payload);
}
/**
* Gibt den Eventtyp als String wieder.
* @param event Event dessen Typ abgefragt werden soll
* @return Der Name des Typs des Events
*/
private String getEventType(Event event) {
int lastDot = event.getClass().getName().lastIndexOf('.');
@ -83,7 +91,7 @@ public class EventService {
List<String> groupIdsThatChanged = eventStore.findNewEventSinceStatus(status);
List<EventDTO> groupEventDTOS = eventStore.findAllEventsOfGroups(groupIdsThatChanged);
return translateEventDTOs(groupEventDTOS);
return getEventsFromDTOs(groupEventDTOS);
}
/**
@ -92,8 +100,7 @@ public class EventService {
* @param eventDTOS Liste von DTOs
* @return Liste von Events
*/
//TODO Rename: getEventsFromDTO?
public List<Event> translateEventDTOs(Iterable<EventDTO> eventDTOS) {
public List<Event> getEventsFromDTOs(Iterable<EventDTO> eventDTOS) {
List<Event> events = new ArrayList<>();
for (EventDTO eventDTO : eventDTOS) {
@ -107,21 +114,36 @@ public class EventService {
}
public Long getMaxEvent_id() {
return eventStore.getHighesEvent_ID();
return eventStore.getHighesEventID();
}
/**
* Gibt eine Liste mit allen Events zurück, die zu der Gruppe gehören.
* @param groupId Gruppe die betrachtet werden soll
* @return Liste aus Events
*/
public List<Event> getEventsOfGroup(UUID groupId) {
List<EventDTO> eventDTOList = eventStore.findEventDTOByGroup_id(groupId.toString());
return translateEventDTOs(eventDTOList);
List<EventDTO> eventDTOList = eventStore.findEventDTOByGroupId(groupId.toString());
return getEventsFromDTOs(eventDTOList);
}
//TODO: Nur AddUserEvents betrachten
/**
* Gibt eine Liste aus Gruppen zurück in denen sich der User befindet.
* @param userId Der User
* @return Liste aus Gruppen
*/
public List<UUID> findGroupIdsByUser(String userId) {
return eventStore.findGroup_idsWhereUser_id(userId).stream()
return eventStore.findGroupIdsWhereUserId(userId).stream()
.map(UUID::fromString)
.collect(Collectors.toList());
}
/**
* Gibt true zurück, falls der User aktuell in der Gruppe ist, sonst false
* @param groupId Id der Gruppe
* @param userId Id des zu überprüfenden Users
* @return true or false
*/
public boolean userInGroup(UUID groupId, String userId) {
return eventStore.countEventsByGroupIdAndUserIdAndEventType(groupId.toString(), userId, "AddUserEvent")
> eventStore.countEventsByGroupIdAndUserIdAndEventType(groupId.toString(), userId, "DeleteUserEvent");

View File

@ -39,9 +39,9 @@ public class GroupService {
public List<Event> getGroupEvents(List<UUID> groupIds) {
List<EventDTO> eventDTOS = new ArrayList<>();
for (UUID groupId : groupIds) {
eventDTOS.addAll(eventRepository.findEventDTOByGroup_id(groupId.toString()));
eventDTOS.addAll(eventRepository.findEventDTOByGroupId(groupId.toString()));
}
return eventService.translateEventDTOs(eventDTOS);
return eventService.getEventsFromDTOs(eventDTOS);
}
/**
@ -85,11 +85,11 @@ public class GroupService {
*/
//TODO Rename
public List<Group> getAllGroupWithVisibilityPublic(String userId) throws EventException {
List<Event> groupEvents = eventService.translateEventDTOs(eventRepository.findAllEventsByType("CreateGroupEvent"));
groupEvents.addAll(eventService.translateEventDTOs(eventRepository.findAllEventsByType("UpdateGroupDescriptionEvent")));
groupEvents.addAll(eventService.translateEventDTOs(eventRepository.findAllEventsByType("UpdateGroupTitleEvent")));
groupEvents.addAll(eventService.translateEventDTOs(eventRepository.findAllEventsByType("DeleteGroupEvent")));
groupEvents.addAll(eventService.translateEventDTOs(eventRepository.findAllEventsByType("UpdateUserMaxEvent")));
List<Event> groupEvents = eventService.getEventsFromDTOs(eventRepository.findAllEventsByType("CreateGroupEvent"));
groupEvents.addAll(eventService.getEventsFromDTOs(eventRepository.findAllEventsByType("UpdateGroupDescriptionEvent")));
groupEvents.addAll(eventService.getEventsFromDTOs(eventRepository.findAllEventsByType("UpdateGroupTitleEvent")));
groupEvents.addAll(eventService.getEventsFromDTOs(eventRepository.findAllEventsByType("DeleteGroupEvent")));
groupEvents.addAll(eventService.getEventsFromDTOs(eventRepository.findAllEventsByType("UpdateUserMaxEvent")));
List<Group> visibleGroups = projectEventList(groupEvents);
@ -108,10 +108,10 @@ public class GroupService {
* @return List of groups
*/
public List<Group> getAllLecturesWithVisibilityPublic() {
List<Event> createEvents = eventService.translateEventDTOs(eventRepository.findAllEventsByType("CreateGroupEvent"));
createEvents.addAll(eventService.translateEventDTOs(eventRepository.findAllEventsByType("DeleteGroupEvent")));
createEvents.addAll(eventService.translateEventDTOs(eventRepository.findAllEventsByType("UpdateGroupTitleEvent")));
createEvents.addAll(eventService.translateEventDTOs(eventRepository.findAllEventsByType("DeleteGroupEvent")));
List<Event> createEvents = eventService.getEventsFromDTOs(eventRepository.findAllEventsByType("CreateGroupEvent"));
createEvents.addAll(eventService.getEventsFromDTOs(eventRepository.findAllEventsByType("DeleteGroupEvent")));
createEvents.addAll(eventService.getEventsFromDTOs(eventRepository.findAllEventsByType("UpdateGroupTitleEvent")));
createEvents.addAll(eventService.getEventsFromDTOs(eventRepository.findAllEventsByType("DeleteGroupEvent")));
List<Group> visibleGroups = projectEventList(createEvents);