Skip to content

Commit fafa8e0

Browse files
authored
Merge pull request #144 from kookmin-sw/feat/142
[Backend] feat: logout API
2 parents fb523a9 + c0bed3e commit fafa8e0

File tree

3 files changed

+23
-7
lines changed

3 files changed

+23
-7
lines changed

backend/src/main/java/com/example/backend/dashboard/controller/DashboardController.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public ResponseEntity<?> getCaseVideo(@PathVariable("id") int id, HttpSession se
3636
public ResponseEntity<?> updateCaseState(@PathVariable("id") int id,
3737
@RequestBody StateRequest request,
3838
HttpSession session) {
39-
Map<Integer, String> message = dashboardService.updateCaseState(id, request, session);
39+
Map<String, String> message = dashboardService.updateCaseState(id, request, session);
4040
return ResponseEntity.ok(message);
4141
}
4242

@@ -45,7 +45,7 @@ public ResponseEntity<?> updateCaseState(@PathVariable("id") int id,
4545
public ResponseEntity<?> completeCase(@PathVariable("id") int id,
4646
@RequestBody SurveyRequest surveyRequest,
4747
HttpSession session) {
48-
Map<Integer, String> completedCase = dashboardService.completeCase(id, surveyRequest, session);
48+
Map<String, String> completedCase = dashboardService.completeCase(id, surveyRequest, session);
4949
return ResponseEntity.ok(completedCase);
5050
}
5151

backend/src/main/java/com/example/backend/dashboard/service/DashboardService.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ public Map<String, String> getCaseVideo(int id, HttpSession session) {
9898
}
9999

100100
// 출동, 미출동 상태 변경
101-
public Map<Integer, String> updateCaseState(int id, StateRequest request, HttpSession session) {
101+
public Map<String, String> updateCaseState(int id, StateRequest request, HttpSession session) {
102102
CaseEntity caseEntity = getAuthorizedCase(id, session);
103103
int policeId = getAuthenticatedPoliceId(session);
104104

@@ -131,7 +131,7 @@ public Map<Integer, String> updateCaseState(int id, StateRequest request, HttpSe
131131

132132
dashboardRepository.save(caseEntity);
133133

134-
return Collections.singletonMap(id, "지금 출동합니다.");
134+
return Collections.singletonMap("message", "지금 출동합니다.");
135135
} else {
136136
// 미출동 처리
137137
caseEntity.setState(CaseEntity.CaseState.미출동);
@@ -143,12 +143,12 @@ public Map<Integer, String> updateCaseState(int id, StateRequest request, HttpSe
143143

144144
dashboardRepository.save(caseEntity);
145145

146-
return Collections.singletonMap(id, "미출동 사건으로 변경합니다.");
146+
return Collections.singletonMap("message", "미출동 사건으로 변경합니다.");
147147
}
148148
}
149149

150150
// 출동 중인 사건 해결 처리
151-
public Map<Integer, String> completeCase(int id, SurveyRequest surveyRequest, HttpSession session) {
151+
public Map<String, String> completeCase(int id, SurveyRequest surveyRequest, HttpSession session) {
152152
CaseEntity caseEntity = getAuthorizedCase(id, session);
153153

154154
if (caseEntity.getState() != CaseEntity.CaseState.출동) {
@@ -164,6 +164,6 @@ public Map<Integer, String> completeCase(int id, SurveyRequest surveyRequest, Ht
164164

165165
dashboardRepository.save(caseEntity);
166166

167-
return Collections.singletonMap(id, "해당 사건이 해결 처리되었습니다.");
167+
return Collections.singletonMap("message", "해당 사건이 해결 처리되었습니다.");
168168
}
169169
}

backend/src/main/java/com/example/backend/user/controller/UserController.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
import org.springframework.http.ResponseEntity;
99
import org.springframework.web.bind.annotation.*;
1010

11+
import java.util.Collections;
12+
1113
@RestController
1214
@RequestMapping("/api/v1")
1315
@RequiredArgsConstructor
@@ -33,4 +35,18 @@ public ResponseEntity<?> getSessionUser(HttpSession session) {
3335
}
3436
return ResponseEntity.ok(user);
3537
}
38+
39+
// 로그아웃 API
40+
@PostMapping("/logout")
41+
public ResponseEntity<?> authLogout(HttpSession session) {
42+
// 세션에서 사용자 정보 가져오기
43+
UserResponseDto user = (UserResponseDto) session.getAttribute("user");
44+
if (user == null) {
45+
throw new IllegalStateException("이미 로그아웃 상태입니다.");
46+
}
47+
// 세션에 사용자 정보 삭제
48+
session.removeAttribute("user");
49+
50+
return ResponseEntity.ok(Collections.singletonMap("message", "로그아웃 성공"));
51+
}
3652
}

0 commit comments

Comments
 (0)