mirror of
https://github.com/nagisa77/OpenIsle.git
synced 2026-05-27 21:17:39 +08:00
Use DTO for activity list
This commit is contained in:
@@ -1,7 +1,9 @@
|
|||||||
package com.openisle.controller;
|
package com.openisle.controller;
|
||||||
|
|
||||||
|
import com.openisle.dto.ActivityDto;
|
||||||
import com.openisle.dto.MilkTeaInfoDto;
|
import com.openisle.dto.MilkTeaInfoDto;
|
||||||
import com.openisle.dto.MilkTeaRedeemRequest;
|
import com.openisle.dto.MilkTeaRedeemRequest;
|
||||||
|
import com.openisle.mapper.ActivityMapper;
|
||||||
import com.openisle.model.Activity;
|
import com.openisle.model.Activity;
|
||||||
import com.openisle.model.ActivityType;
|
import com.openisle.model.ActivityType;
|
||||||
import com.openisle.model.User;
|
import com.openisle.model.User;
|
||||||
@@ -12,6 +14,7 @@ import org.springframework.security.core.Authentication;
|
|||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/api/activities")
|
@RequestMapping("/api/activities")
|
||||||
@@ -19,10 +22,13 @@ import java.util.List;
|
|||||||
public class ActivityController {
|
public class ActivityController {
|
||||||
private final ActivityService activityService;
|
private final ActivityService activityService;
|
||||||
private final UserService userService;
|
private final UserService userService;
|
||||||
|
private final ActivityMapper activityMapper;
|
||||||
|
|
||||||
@GetMapping
|
@GetMapping
|
||||||
public List<Activity> list() {
|
public List<ActivityDto> list() {
|
||||||
return activityService.list();
|
return activityService.list().stream()
|
||||||
|
.map(activityMapper::toDto)
|
||||||
|
.collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/milk-tea")
|
@GetMapping("/milk-tea")
|
||||||
|
|||||||
21
backend/src/main/java/com/openisle/dto/ActivityDto.java
Normal file
21
backend/src/main/java/com/openisle/dto/ActivityDto.java
Normal file
@@ -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;
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user