Skip to content

Commit 5aa1bec

Browse files
committed
Merge branch 'develop' of https://github.com/TaskFlow-CLAP/TaskFlow-Server into develop
2 parents 7f4649b + bc9e413 commit 5aa1bec

File tree

18 files changed

+72
-55
lines changed

18 files changed

+72
-55
lines changed

src/main/java/clap/server/adapter/inbound/web/task/CancelTaskController.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
package clap.server.adapter.inbound.web.task;
22

3+
import clap.server.adapter.inbound.security.service.SecurityUserDetails;
34
import clap.server.application.port.inbound.task.CancelTaskUsecase;
45
import clap.server.common.annotation.architecture.WebAdapter;
56
import io.swagger.v3.oas.annotations.Operation;
67
import io.swagger.v3.oas.annotations.tags.Tag;
78
import lombok.RequiredArgsConstructor;
89
import org.springframework.security.access.annotation.Secured;
10+
import org.springframework.security.core.annotation.AuthenticationPrincipal;
911
import org.springframework.web.bind.annotation.PatchMapping;
1012
import org.springframework.web.bind.annotation.PathVariable;
1113
import org.springframework.web.bind.annotation.RequestMapping;
@@ -18,9 +20,9 @@ public class CancelTaskController {
1820
private final CancelTaskUsecase cancelTaskUsecase;
1921

2022
@Operation(summary = "작업 취소")
21-
@Secured("ROLE_USER")
23+
@Secured({"ROLE_USER","ROLE_MANAGER"})
2224
@PatchMapping("/{taskId}/cancel")
23-
public void cancelTask(@PathVariable Long taskId) {
24-
cancelTaskUsecase.cancleTask(taskId);
25+
public void cancelTask(@PathVariable Long taskId, @AuthenticationPrincipal SecurityUserDetails userDetails) {
26+
cancelTaskUsecase.cancleTask(taskId, userDetails.getUserId());
2527
}
2628
}

src/main/java/clap/server/adapter/outbound/api/AgitClient.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,9 @@ public class AgitClient implements SendAgitPort {
2929
private final ObjectMapper objectMapper;
3030

3131
@Override
32-
public Long sendAgit(PushNotificationTemplate request, Task task) {
32+
public Long sendAgit(PushNotificationTemplate request, Task task, String taskDetailUrl) {
3333

34-
HttpEntity<String> entity = agitTemplateBuilder.createAgitEntity(request, task);
34+
HttpEntity<String> entity = agitTemplateBuilder.createAgitEntity(request, task, taskDetailUrl);
3535

3636
RestTemplate restTemplate = new RestTemplate();
3737
if (request.notificationType() == NotificationType.TASK_REQUESTED) {

src/main/java/clap/server/adapter/outbound/api/AgitTemplateBuilder.java

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@
1010
@Component
1111
public class AgitTemplateBuilder {
1212

13-
public HttpEntity<String> createAgitEntity(PushNotificationTemplate request, Task task) {
14-
return new HttpEntity<>(createPayLoad(request, task), createHeaders());
13+
public HttpEntity<String> createAgitEntity(PushNotificationTemplate request, Task task, String taskDetailUrl) {
14+
return new HttpEntity<>(createPayLoad(request, task, taskDetailUrl), createHeaders());
1515
}
1616

1717

@@ -21,41 +21,40 @@ public HttpHeaders createHeaders() {
2121
return headers;
2222
}
2323

24-
public String createPayLoad(PushNotificationTemplate request, Task task) {
24+
public String createPayLoad(PushNotificationTemplate request, Task task, String taskDetailUrl) {
2525

2626
String payload;
2727
if (request.notificationType() == NotificationType.TASK_REQUESTED) {
2828
payload = "{"
29-
+ "\"text\": \"" + createMessage(request) + "\","
29+
+ "\"text\": \"" + createMessage(request, taskDetailUrl) + "\","
3030
+ "\"mrkdwn\": true" + "}";
3131
}
3232

3333
else {
3434
payload = "{"
3535
+ "\"parent_id\": " + task.getAgitPostId() + ","
36-
+ "\"text\": \"" + createMessage(request) + "\","
36+
+ "\"text\": \"" + createMessage(request, taskDetailUrl) + "\","
3737
+ "\"mrkdwn\": true"
3838
+ "}";
3939
}
4040
return payload;
4141
}
4242

43-
public String createMessage(PushNotificationTemplate request) {
44-
String taskUrl = "https://www.naver.com"; //Todo 작업 상세페이지 url 추가
43+
public String createMessage(PushNotificationTemplate request, String taskDetailUrl) {
4544

4645
return switch (request.notificationType()) {
4746
case TASK_REQUESTED -> "📌 *새 작업 요청:* `" + request.taskName() + "`\\n"
4847
+ "\\t\\t*•요청자: " + request.senderName() + "*\\n"
49-
+ "\\t\\t[OPEN](" + taskUrl + ")";
48+
+ "[확인하러 가기](" + taskDetailUrl + ")";
5049
case STATUS_SWITCHED -> "⚙️ *작업 상태 변경:* `" + request.taskName() + "\\n"
5150
+ "\\t\\t*•작업 상태: " + request.message() + "*\\n"
52-
+ "\\t\\t[OPEN](" + taskUrl + ")";
51+
+ "[확인하러 가기](" + taskDetailUrl + ")";
5352
case PROCESSOR_CHANGED -> "🔄 *담당자 변경:* `" + request.taskName() + "\\n"
5453
+ "\\t\\t*•새 담당자: " + request.message() + "*\\n"
55-
+ "\\t\\t[OPEN](" + taskUrl + ")";
54+
+ "[확인하러 가기](" + taskDetailUrl + ")";
5655
case PROCESSOR_ASSIGNED -> "👤 *작업 담당자 배정:* `" + request.taskName() + "\\n"
5756
+ "\\t\\t*•담당자: " + request.message() + "*\\n"
58-
+ "\\t\\t[OPEN](" + taskUrl + ")";
57+
+ "[확인하러 가기](" + taskDetailUrl + ")";
5958
default -> null;
6059
};
6160
}

src/main/java/clap/server/adapter/outbound/api/EmailClient.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,12 +37,12 @@ public void sendWebhookEmail(PushNotificationTemplate request, String taskDetail
3737
}
3838

3939
@Override
40-
public void sendInvitationEmail(String memberEmail, String receiverName, String initialPassword) {
40+
public void sendInvitationEmail(String memberEmail, String receiverName, String initialPassword, String userNickname) {
4141
try {
4242
MimeMessage mimeMessage = mailSender.createMimeMessage();
4343
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true, "UTF-8");
4444

45-
EmailTemplate template = emailTemplateBuilder.createInvitationTemplate(memberEmail, receiverName, initialPassword);
45+
EmailTemplate template = emailTemplateBuilder.createInvitationTemplate(memberEmail, receiverName, initialPassword, userNickname);
4646
helper.setTo(template.email());
4747
helper.setSubject(template.subject());
4848
helper.setText(template.body(), true);
@@ -71,4 +71,4 @@ public void sendVerificationEmail(String memberEmail, String receiverName, Strin
7171
}
7272

7373

74-
}
74+
}

src/main/java/clap/server/adapter/outbound/api/EmailTemplateBuilder.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,11 +60,13 @@ public EmailTemplate createWebhookTemplate(PushNotificationTemplate request, Str
6060
return new EmailTemplate(request.email(), subject, body);
6161
}
6262

63-
public EmailTemplate createInvitationTemplate(String receiver, String receiverName, String initialPassword) {
63+
public EmailTemplate createInvitationTemplate(String receiver, String receiverName,
64+
String initialPassword, String userNickname) {
6465
Context context = new Context();
6566
String templateName = "invitation";
6667
String subject = "[TaskFlow 초대] 회원가입을 환영합니다.";
67-
context.setVariable("invitationLink", "https://example.com/reset-password"); //TODO:비밀번호 설정 링크로 변경 예정
68+
context.setVariable("userNickname", userNickname);
69+
context.setVariable("invitationLink", "http://localhost:5173/login");
6870
context.setVariable("initialPassword", initialPassword);
6971
context.setVariable("receiverName", receiverName);
7072
String body = templateEngine.process(templateName, context);
@@ -80,4 +82,4 @@ public EmailTemplate createVerificationCodeTemplate(String receiver, String rece
8082
String body = templateEngine.process(templateName, context);
8183
return new EmailTemplate(receiver, subject, body);
8284
}
83-
}
85+
}

src/main/java/clap/server/application/mapper/MemberResponseMapper.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ public static MemberDetailsResponse toMemberDetailsResponse(Member member) {
6262
member.getImageUrl(),
6363
member.getMemberInfo().getName(),
6464
member.getMemberInfo().getNickname(),
65-
member.getImageUrl(),
65+
member.getMemberInfo().getEmail(),
6666
member.isReviewer(),
6767
member.getMemberInfo().getRole(),
6868
member.getMemberInfo().getDepartment().getDepartmentId(),
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
package clap.server.application.port.inbound.task;
22

33
public interface CancelTaskUsecase {
4-
void cancleTask(Long taskId);
4+
void cancleTask(Long taskId, Long memberId);
55
}

src/main/java/clap/server/application/port/outbound/email/SendEmailPort.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
public interface SendEmailPort {
44

5-
void sendInvitationEmail(String memberEmail, String receiverName, String initialPassword);
5+
void sendInvitationEmail(String memberEmail, String receiverName, String initialPassword, String userNickname);
66

77
void sendVerificationEmail(String memberEmail, String receiverName, String verificationCode);
88

src/main/java/clap/server/application/port/outbound/webhook/SendAgitPort.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,5 @@
44
import clap.server.domain.model.task.Task;
55

66
public interface SendAgitPort {
7-
Long sendAgit(PushNotificationTemplate request, Task task);
7+
Long sendAgit(PushNotificationTemplate request, Task task, String taskDetailUrl);
88
}

src/main/java/clap/server/application/service/admin/ManageMemberService.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ class ManageMemberService implements UpdateMemberUsecase, MemberDetailUsecase {
2626
@Override
2727
@Transactional
2828
public void updateMemberInfo(Long adminId, Long memberId, UpdateMemberRequest request) {
29-
Member member = memberService.findActiveMember(memberId);
29+
Member member = memberService.findById(memberId);
3030
Department department = loadDepartmentPort.findById(request.departmentId()).orElseThrow(() ->
3131
new ApplicationException(DepartmentErrorCode.DEPARTMENT_NOT_FOUND));
3232

@@ -40,7 +40,7 @@ public void updateMemberInfo(Long adminId, Long memberId, UpdateMemberRequest re
4040
@Override
4141
@Transactional(readOnly = true)
4242
public MemberDetailsResponse getMemberDetail(Long memberId) {
43-
Member member = memberService.findActiveMember(memberId);
43+
Member member = memberService.findById(memberId);
4444
return MemberResponseMapper.toMemberDetailsResponse(member);
4545
}
4646
}

0 commit comments

Comments
 (0)