Skip to content

Commit 2ee702a

Browse files
committed
CLAP-175 Feat: 구분 삭제 API 구현
1 parent e6c5338 commit 2ee702a

File tree

4 files changed

+35
-2
lines changed

4 files changed

+35
-2
lines changed

src/main/java/clap/server/adapter/inbound/web/admin/UpdateLabelController.java renamed to src/main/java/clap/server/adapter/inbound/web/admin/ManagementLabelController.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import clap.server.adapter.inbound.security.SecurityUserDetails;
44
import clap.server.adapter.inbound.web.dto.label.AddAndEditLabelRequest;
55
import clap.server.application.port.inbound.admin.AddLabelUsecase;
6+
import clap.server.application.port.inbound.admin.DeleteLabelUsecase;
67
import clap.server.application.port.inbound.admin.UpdateLabelUsecase;
78
import clap.server.common.annotation.architecture.WebAdapter;
89
import io.swagger.v3.oas.annotations.Operation;
@@ -16,10 +17,11 @@
1617
@WebAdapter
1718
@RequiredArgsConstructor
1819
@RequestMapping("/api/management/label")
19-
public class UpdateLabelController {
20+
public class ManagementLabelController {
2021

2122
private final AddLabelUsecase addLabelUsecase;
2223
private final UpdateLabelUsecase updateLabelUsecase;
24+
private final DeleteLabelUsecase deleteLabelUsecase;
2325

2426
@Operation(summary = "구분(label) 추가 API")
2527
@PostMapping
@@ -38,4 +40,12 @@ public void updateLabel(@AuthenticationPrincipal SecurityUserDetails userInfo,
3840
updateLabelUsecase.editLabel(userInfo.getUserId(), labelId, request);
3941

4042
}
43+
44+
@Operation(summary = "구분(label) 삭제 API")
45+
@DeleteMapping("/{labelId}")
46+
@Secured({"ROLE_ADMIN"})
47+
public void deleteLabel(@AuthenticationPrincipal SecurityUserDetails userInfo,
48+
@PathVariable Long labelId) {
49+
deleteLabelUsecase.deleteLabel(userInfo.getUserId(), labelId);
50+
}
4151
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package clap.server.application.port.inbound.admin;
2+
3+
public interface DeleteLabelUsecase {
4+
void deleteLabel(Long adminId, Long labelId);
5+
}

src/main/java/clap/server/application/service/label/UpdateLabelService.java renamed to src/main/java/clap/server/application/service/label/ManageLabelService.java

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package clap.server.application.service.label;
22

33
import clap.server.adapter.inbound.web.dto.label.AddAndEditLabelRequest;
4+
import clap.server.application.port.inbound.admin.DeleteLabelUsecase;
45
import clap.server.application.port.inbound.admin.UpdateLabelUsecase;
56
import clap.server.application.port.inbound.domain.MemberService;
67
import clap.server.application.port.outbound.task.CommandLabelPort;
@@ -14,7 +15,7 @@
1415

1516
@ApplicationService
1617
@RequiredArgsConstructor
17-
public class UpdateLabelService implements UpdateLabelUsecase {
18+
public class ManageLabelService implements UpdateLabelUsecase, DeleteLabelUsecase {
1819

1920
private final MemberService memberService;
2021
private final LoadLabelPort loadLabelPort;
@@ -31,4 +32,17 @@ public void editLabel(Long adminId, Long labelId, AddAndEditLabelRequest request
3132
label.updateLabel(request);
3233
commandLabelPort.save(label);
3334
}
35+
36+
37+
@Transactional
38+
@Override
39+
public void deleteLabel(Long adminId, Long labelId) {
40+
memberService.findActiveMember(adminId);
41+
42+
Label label = loadLabelPort.findById(labelId)
43+
.orElseThrow(() -> new ApplicationException(LabelErrorCode.LABEL_NOT_FOUND));
44+
45+
label.deleteLabel();
46+
commandLabelPort.save(label);
47+
}
3448
}

src/main/java/clap/server/domain/model/task/Label.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,4 +32,8 @@ public void updateLabel(AddAndEditLabelRequest request) {
3232
this.labelName = request.labelName();
3333
this.labelColor = request.labelColor();
3434
}
35+
36+
public void deleteLabel() {
37+
this.isDeleted = true;
38+
}
3539
}

0 commit comments

Comments
 (0)