Skip to content

Commit

Permalink
BE-#73: Return eventDetailDto with SimpleUser objects
Browse files Browse the repository at this point in the history
  • Loading branch information
Flugschnitzel committed May 10, 2024
1 parent f71c0cf commit 0e6183c
Show file tree
Hide file tree
Showing 7 changed files with 75 additions and 10 deletions.
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
package com.dhbw.get2gether.backend.event.adapter.in;

import com.dhbw.get2gether.backend.event.application.EventService;
import com.dhbw.get2gether.backend.event.model.Event;
import com.dhbw.get2gether.backend.event.model.EventCreateCommand;
import com.dhbw.get2gether.backend.event.model.EventOverviewDto;
import com.dhbw.get2gether.backend.event.model.EventUpdateCommand;
import com.dhbw.get2gether.backend.event.model.*;
import org.springframework.security.core.AuthenticatedPrincipal;
import org.springframework.security.core.annotation.AuthenticationPrincipal;
import org.springframework.security.oauth2.core.user.OAuth2User;
Expand Down Expand Up @@ -39,9 +36,9 @@ public List<EventOverviewDto> getOwnEvents(@AuthenticationPrincipal OAuth2User p
}

@GetMapping("/{eventId}")
public Event getSingleEvent(
public EventDetailDto getSingleEvent(
@AuthenticationPrincipal AuthenticatedPrincipal principal, @PathVariable String eventId) {
return eventService.getSingleEvent(principal, eventId);
return eventService.getSingleEventDto(principal, eventId);
}

@GetMapping("/{eventId}/generateInvitationLink")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,12 @@ public Event getSingleEvent(AuthenticatedPrincipal principal, String eventId) {
return getEventIfUserIsParticipant(principal, eventId);
}

@PreAuthorize("hasRole('GUEST')")
public EventDetailDto getSingleEventDto(AuthenticatedPrincipal principal, String eventId) {
Event event = getSingleEvent(principal, eventId);
return eventMapper.toEventDetailDto(event, userService.getSimpleUsersById(event.getParticipantIds()));
}

@PreAuthorize("hasRole('USER')")
public void deleteEventById(AuthenticatedPrincipal principal, String eventId) {
Event event = getEventIfUserIsParticipant(principal, eventId);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
package com.dhbw.get2gether.backend.event.application.mapper;

import com.dhbw.get2gether.backend.event.model.*;
import com.dhbw.get2gether.backend.user.model.SimpleUserDto;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.MappingTarget;

import java.util.List;

@Mapper(componentModel = "spring")
public interface EventMapper {

Expand Down Expand Up @@ -32,4 +35,6 @@ public interface EventMapper {
@Mapping(target = "invitationLink", ignore = true)
@Mapping(target = "participantIds", ignore = true)
Event updateEvent(@MappingTarget Event event, EventWidgetUpdateCommand eventWidgetUpdateCommand);

EventDetailDto toEventDetailDto(Event event, List<SimpleUserDto> participants);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package com.dhbw.get2gether.backend.event.model;

import com.dhbw.get2gether.backend.user.model.SimpleUserDto;
import com.dhbw.get2gether.backend.widget.model.Widget;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.Setter;

import java.time.LocalDateTime;
import java.util.List;

@AllArgsConstructor
@Getter
@Setter
@Builder(toBuilder = true)
public class EventDetailDto {
private String id;

private final LocalDateTime creationDate;
private String name;
private String description;
private String location;
private LocalDateTime date;
private LocalDateTime endDate;
private String invitationLink;
private final String creatorId;
private final List<SimpleUserDto> participants;
private final List<Widget> widgets;
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@
import org.springframework.stereotype.Service;

import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import java.util.UUID;

Expand Down Expand Up @@ -57,6 +59,15 @@ public User updateUser(AuthenticatedPrincipal principal, UpdateUserCommand updat
return userRepository.save(newUser);
}

@PreAuthorize("hasRole('GUEST')")
public List<SimpleUserDto> getSimpleUsersById(List<String> userIds) {
List<SimpleUserDto> simpleUserDtos = new ArrayList<>();
for(String userId : userIds) {
userRepository.findById(userId).ifPresent(user -> simpleUserDtos.add(userMapper.mapToSimpleUserDto(user)));
}
return simpleUserDtos;
}

protected User createUser(CreateUserCommand command) {
User user = userMapper.mapToUser(command).toBuilder()
.id(UUID.randomUUID().toString())
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
package com.dhbw.get2gether.backend.user.application.mapper;

import com.dhbw.get2gether.backend.user.model.CreateUserCommand;
import com.dhbw.get2gether.backend.user.model.UpdateUserCommand;
import com.dhbw.get2gether.backend.user.model.SyncUserCommand;
import com.dhbw.get2gether.backend.user.model.User;
import com.dhbw.get2gether.backend.user.model.*;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.MappingTarget;
Expand All @@ -20,4 +17,6 @@ public interface UserMapper {
User mapSyncCommandToUser(@MappingTarget User user, SyncUserCommand command);

User mapSettingsCommandToUser(@MappingTarget User user, UpdateUserCommand command);

SimpleUserDto mapToSimpleUserDto(User user);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package com.dhbw.get2gether.backend.user.model;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.Setter;

@AllArgsConstructor
@Getter
@Setter
@Builder(toBuilder = true)
public class SimpleUserDto {
private final String id;
private String firstName;
private String lastName;
private String profilePictureUrl;
}

0 comments on commit 0e6183c

Please sign in to comment.