diff --git a/backend/src/main/java/com/openisle/controller/ActivityController.java b/backend/src/main/java/com/openisle/controller/ActivityController.java index 2ea603735..4cbe4db0f 100644 --- a/backend/src/main/java/com/openisle/controller/ActivityController.java +++ b/backend/src/main/java/com/openisle/controller/ActivityController.java @@ -1,7 +1,9 @@ package com.openisle.controller; +import com.openisle.dto.ActivityDto; import com.openisle.dto.MilkTeaInfoDto; import com.openisle.dto.MilkTeaRedeemRequest; +import com.openisle.mapper.ActivityMapper; import com.openisle.model.Activity; import com.openisle.model.ActivityType; import com.openisle.model.User; @@ -12,6 +14,7 @@ import org.springframework.security.core.Authentication; import org.springframework.web.bind.annotation.*; import java.util.List; +import java.util.stream.Collectors; @RestController @RequestMapping("/api/activities") @@ -19,10 +22,13 @@ import java.util.List; public class ActivityController { private final ActivityService activityService; private final UserService userService; + private final ActivityMapper activityMapper; @GetMapping - public List list() { - return activityService.list(); + public List list() { + return activityService.list().stream() + .map(activityMapper::toDto) + .collect(Collectors.toList()); } @GetMapping("/milk-tea") diff --git a/backend/src/main/java/com/openisle/dto/ActivityDto.java b/backend/src/main/java/com/openisle/dto/ActivityDto.java new file mode 100644 index 000000000..75e71ee17 --- /dev/null +++ b/backend/src/main/java/com/openisle/dto/ActivityDto.java @@ -0,0 +1,21 @@ +package com.openisle.dto; + +import com.openisle.model.ActivityType; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * DTO representing an activity without participant details. + */ +@Data +public class ActivityDto { + private Long id; + private String title; + private String icon; + private String content; + private LocalDateTime startTime; + private LocalDateTime endTime; + private ActivityType type; + private boolean ended; +} diff --git a/backend/src/main/java/com/openisle/mapper/ActivityMapper.java b/backend/src/main/java/com/openisle/mapper/ActivityMapper.java new file mode 100644 index 000000000..5c273f7f1 --- /dev/null +++ b/backend/src/main/java/com/openisle/mapper/ActivityMapper.java @@ -0,0 +1,23 @@ +package com.openisle.mapper; + +import com.openisle.dto.ActivityDto; +import com.openisle.model.Activity; +import org.springframework.stereotype.Component; + +/** Mapper for activity entities. */ +@Component +public class ActivityMapper { + + public ActivityDto toDto(Activity a) { + ActivityDto dto = new ActivityDto(); + dto.setId(a.getId()); + dto.setTitle(a.getTitle()); + dto.setIcon(a.getIcon()); + dto.setContent(a.getContent()); + dto.setStartTime(a.getStartTime()); + dto.setEndTime(a.getEndTime()); + dto.setType(a.getType()); + dto.setEnded(a.isEnded()); + return dto; + } +}