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

View File

@ -29,20 +29,24 @@ public class EventService {
* @param event Event, welches gespeichert wird * @param event Event, welches gespeichert wird
*/ */
public void saveEvent(Event event) { public void saveEvent(Event event) {
eventStore.save(getDTO(event)); eventStore.save(getDTOFromEvent(event));
} }
public void saveAll(Event... events) { public void saveAll(Event... events) {
for (Event 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 @SafeVarargs
public final void saveAll(List<Event>... events) { public final void saveAll(List<Event>... events) {
for (List<Event> eventlist : events) { for (List<Event> eventlist : events) {
for (Event event : eventlist) { 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. * Ist die Gruppe öffentlich, dann wird die visibility auf true gesetzt.
* *
* @param event Event, welches in DTO übersetzt wird * @param event Event, welches in DTO übersetzt wird
* @return EventDTO Neues DTO * @return EventDTO (Neues DTO)
*/ */
//TODO Rename: getDTOFromEvent? public EventDTO getDTOFromEvent(Event event) {
public EventDTO getDTO(Event event) {
String payload = ""; String payload = "";
try { try {
payload = jsonService.serializeEvent(event); payload = jsonService.serializeEvent(event);
@ -66,6 +69,11 @@ public class EventService {
return new EventDTO(null, event.getGroupId().toString(), event.getUserId(), getEventType(event), payload); 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) { private String getEventType(Event event) {
int lastDot = event.getClass().getName().lastIndexOf('.'); int lastDot = event.getClass().getName().lastIndexOf('.');
@ -83,7 +91,7 @@ public class EventService {
List<String> groupIdsThatChanged = eventStore.findNewEventSinceStatus(status); List<String> groupIdsThatChanged = eventStore.findNewEventSinceStatus(status);
List<EventDTO> groupEventDTOS = eventStore.findAllEventsOfGroups(groupIdsThatChanged); List<EventDTO> groupEventDTOS = eventStore.findAllEventsOfGroups(groupIdsThatChanged);
return translateEventDTOs(groupEventDTOS); return getEventsFromDTOs(groupEventDTOS);
} }
/** /**
@ -92,8 +100,7 @@ public class EventService {
* @param eventDTOS Liste von DTOs * @param eventDTOS Liste von DTOs
* @return Liste von Events * @return Liste von Events
*/ */
//TODO Rename: getEventsFromDTO? public List<Event> getEventsFromDTOs(Iterable<EventDTO> eventDTOS) {
public List<Event> translateEventDTOs(Iterable<EventDTO> eventDTOS) {
List<Event> events = new ArrayList<>(); List<Event> events = new ArrayList<>();
for (EventDTO eventDTO : eventDTOS) { for (EventDTO eventDTO : eventDTOS) {
@ -107,21 +114,36 @@ public class EventService {
} }
public Long getMaxEvent_id() { 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) { public List<Event> getEventsOfGroup(UUID groupId) {
List<EventDTO> eventDTOList = eventStore.findEventDTOByGroup_id(groupId.toString()); List<EventDTO> eventDTOList = eventStore.findEventDTOByGroupId(groupId.toString());
return translateEventDTOs(eventDTOList); 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) { public List<UUID> findGroupIdsByUser(String userId) {
return eventStore.findGroup_idsWhereUser_id(userId).stream() return eventStore.findGroupIdsWhereUserId(userId).stream()
.map(UUID::fromString) .map(UUID::fromString)
.collect(Collectors.toList()); .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) { public boolean userInGroup(UUID groupId, String userId) {
return eventStore.countEventsByGroupIdAndUserIdAndEventType(groupId.toString(), userId, "AddUserEvent") return eventStore.countEventsByGroupIdAndUserIdAndEventType(groupId.toString(), userId, "AddUserEvent")
> eventStore.countEventsByGroupIdAndUserIdAndEventType(groupId.toString(), userId, "DeleteUserEvent"); > eventStore.countEventsByGroupIdAndUserIdAndEventType(groupId.toString(), userId, "DeleteUserEvent");

View File

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

View File

@ -69,7 +69,7 @@ class EventServiceTest {
void getDTO() { void getDTO() {
Event event = createPublicGroupEvent(); Event event = createPublicGroupEvent();
EventDTO dto = eventService.getDTO(event); EventDTO dto = eventService.getDTOFromEvent(event);
assertThat(dto.getGroup_id()).isEqualTo(event.getGroupId().toString()); assertThat(dto.getGroup_id()).isEqualTo(event.getGroupId().toString());
assertThat(dto.getUser_id()).isEqualTo(event.getUserId()); assertThat(dto.getUser_id()).isEqualTo(event.getUserId());