Skip to content

Commit 68366d5

Browse files
Merge branch 'develop' into CLAP-148
2 parents c3292fe + 22640a6 commit 68366d5

File tree

93 files changed

+1519
-231
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

93 files changed

+1519
-231
lines changed
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package clap.server.adapter.inbound.web.admin;
2+
3+
import clap.server.application.port.inbound.admin.DeleteMemberUsecase;
4+
import clap.server.common.annotation.architecture.WebAdapter;
5+
import io.swagger.v3.oas.annotations.Operation;
6+
import io.swagger.v3.oas.annotations.tags.Tag;
7+
import lombok.RequiredArgsConstructor;
8+
import org.springframework.security.access.annotation.Secured;
9+
import org.springframework.web.bind.annotation.PatchMapping;
10+
import org.springframework.web.bind.annotation.PathVariable;
11+
import org.springframework.web.bind.annotation.RequestMapping;
12+
13+
@Tag(name = "05. Admin")
14+
@WebAdapter
15+
@RequiredArgsConstructor
16+
@RequestMapping("/api/managements")
17+
public class DeleteMemberController {
18+
private final DeleteMemberUsecase deleteMemberUsecase;
19+
20+
@Operation(summary = "회원 삭제 API")
21+
@Secured("ROLE_ADMIN")
22+
@PatchMapping("/members/{memberId}")
23+
public void deleteMember(@PathVariable Long memberId) {
24+
deleteMemberUsecase.deleteMember(memberId);
25+
}
26+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package clap.server.adapter.inbound.web.admin;
2+
3+
import clap.server.adapter.inbound.security.SecurityUserDetails;
4+
import clap.server.adapter.inbound.web.dto.common.SliceResponse;
5+
import clap.server.adapter.inbound.web.dto.label.FindLabelListResponse;
6+
import clap.server.application.port.inbound.label.FindLabelListUsecase;
7+
import clap.server.common.annotation.architecture.WebAdapter;
8+
import io.swagger.v3.oas.annotations.Operation;
9+
import io.swagger.v3.oas.annotations.tags.Tag;
10+
import lombok.RequiredArgsConstructor;
11+
import org.springframework.http.ResponseEntity;
12+
import org.springframework.security.access.annotation.Secured;
13+
import org.springframework.security.core.annotation.AuthenticationPrincipal;
14+
import org.springframework.web.bind.annotation.GetMapping;
15+
import org.springframework.web.bind.annotation.RequestMapping;
16+
17+
import java.util.List;
18+
19+
@Tag(name = "05. Admin")
20+
@WebAdapter
21+
@RequiredArgsConstructor
22+
@RequestMapping("/api/managements/label")
23+
public class FindLabelAdminController {
24+
25+
private final FindLabelListUsecase findLabelListUsecase;
26+
27+
@Operation(summary = "구분 목록 조회 API")
28+
@Secured({"ROLE_ADMIN"})
29+
@GetMapping
30+
public ResponseEntity<List<FindLabelListResponse>> findLabelList(
31+
@AuthenticationPrincipal SecurityUserDetails userInfo) {
32+
return ResponseEntity.ok(findLabelListUsecase.findLabelListAdmin(userInfo.getUserId()));
33+
}
34+
}
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
package clap.server.adapter.inbound.web.admin;
2+
3+
import clap.server.adapter.inbound.security.SecurityUserDetails;
4+
import clap.server.adapter.inbound.web.dto.label.AddAndEditLabelRequest;
5+
import clap.server.application.port.inbound.admin.AddLabelUsecase;
6+
import clap.server.application.port.inbound.admin.DeleteLabelUsecase;
7+
import clap.server.application.port.inbound.admin.UpdateLabelUsecase;
8+
import clap.server.common.annotation.architecture.WebAdapter;
9+
import io.swagger.v3.oas.annotations.Operation;
10+
import io.swagger.v3.oas.annotations.Parameter;
11+
import io.swagger.v3.oas.annotations.enums.ParameterIn;
12+
import io.swagger.v3.oas.annotations.tags.Tag;
13+
import lombok.RequiredArgsConstructor;
14+
import org.springframework.security.access.annotation.Secured;
15+
import org.springframework.security.core.annotation.AuthenticationPrincipal;
16+
import org.springframework.web.bind.annotation.*;
17+
18+
@Tag(name = "05. Admin")
19+
@WebAdapter
20+
@RequiredArgsConstructor
21+
@RequestMapping("/api/management/label")
22+
public class ManagementLabelController {
23+
24+
private final AddLabelUsecase addLabelUsecase;
25+
private final UpdateLabelUsecase updateLabelUsecase;
26+
private final DeleteLabelUsecase deleteLabelUsecase;
27+
28+
@Operation(summary = "구분(label) 추가 API")
29+
@PostMapping
30+
@Secured({"ROLE_ADMIN"})
31+
public void addLabel(@AuthenticationPrincipal SecurityUserDetails userInfo,
32+
@RequestBody AddAndEditLabelRequest request) {
33+
addLabelUsecase.addLabel(userInfo.getUserId(), request);
34+
}
35+
36+
@Operation(summary = "구분(label) 수정 API")
37+
@Parameter(name = "labelId", description = "구분(label) 고유 ID", required = true, in = ParameterIn.PATH)
38+
@PatchMapping("/{labelId}")
39+
@Secured({"ROLE_ADMIN"})
40+
public void updateLabel(@AuthenticationPrincipal SecurityUserDetails userInfo,
41+
@PathVariable Long labelId,
42+
@RequestBody AddAndEditLabelRequest request) {
43+
updateLabelUsecase.editLabel(userInfo.getUserId(), labelId, request);
44+
45+
}
46+
47+
@Operation(summary = "구분(label) 삭제 API")
48+
@Parameter(name = "labelId", description = "구분(label) 고유 ID", required = true, in = ParameterIn.PATH)
49+
@DeleteMapping("/{labelId}")
50+
@Secured({"ROLE_ADMIN"})
51+
public void deleteLabel(@AuthenticationPrincipal SecurityUserDetails userInfo,
52+
@PathVariable Long labelId) {
53+
deleteLabelUsecase.deleteLabel(userInfo.getUserId(), labelId);
54+
}
55+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package clap.server.adapter.inbound.web.dto.label;
2+
3+
import clap.server.adapter.outbound.persistense.entity.member.constant.MemberRole;
4+
import clap.server.adapter.outbound.persistense.entity.task.constant.LabelColor;
5+
import io.swagger.v3.oas.annotations.media.Schema;
6+
7+
public record AddAndEditLabelRequest(
8+
9+
@Schema(description = "구분(label) 이름")
10+
String labelName,
11+
@Schema(description = "구분(label) 색상")
12+
LabelColor labelColor
13+
) {}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package clap.server.adapter.inbound.web.dto.label;
2+
3+
import clap.server.adapter.outbound.persistense.entity.task.constant.LabelColor;
4+
import io.swagger.v3.oas.annotations.media.Schema;
5+
6+
public record FindLabelListResponse(
7+
@Schema(description = "구분(label) 고유 ID")
8+
Long labelId,
9+
@Schema(description = "구분(label) 이름")
10+
String labelName,
11+
@Schema(description = "구분(label) 색상")
12+
LabelColor labelColor
13+
) {
14+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package clap.server.adapter.inbound.web.dto.notification;
2+
3+
public record CountNotificationResponse(
4+
Long memberId,
5+
Integer count
6+
) {
7+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package clap.server.adapter.inbound.web.dto.task;
2+
3+
public record UpdateTaskLabelRequest(
4+
Long labelId
5+
) {
6+
}

src/main/java/clap/server/adapter/inbound/web/dto/task/UpdateTaskProcessorRequest.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package clap.server.adapter.inbound.web.dto.task;
22

3-
import clap.server.domain.model.member.Member;
43

54
public record UpdateTaskProcessorRequest(
65
Long processorId

src/main/java/clap/server/adapter/inbound/web/dto/task/UpdateTaskStatusRequest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
@Schema(description = "작업 상태 변경 요청")
88
public record UpdateTaskStatusRequest(
99

10-
@Schema(description = "변경하고 싶은 작업 상태", example = "완료")
10+
@Schema(description = "변경하고 싶은 작업 상태", example = "COMPLETED")
1111
@NotNull
1212
TaskStatus taskStatus
1313
) {
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package clap.server.adapter.inbound.web.dto.task.request;
2+
3+
import io.swagger.v3.oas.annotations.media.Schema;
4+
import jakarta.validation.constraints.Min;
5+
6+
public record UpdateTaskOrderRequest(
7+
@Schema(description = "변경할 위치의 상위 작업 ID, 가장 상위일 경우 0 입력")
8+
long prevTaskId,
9+
@Min(1) @Schema(description = "순서 또는 상태를 변경할 작업의 ID")
10+
long targetTaskId,
11+
@Schema(description = "변경할 위치의 하위 작업 ID, 가장 하위일 경우 0 입력")
12+
long nextTaskId
13+
) {
14+
}

0 commit comments

Comments
 (0)