Skip to content

Commit 679fc6c

Browse files
authored
feat: 보유한 아이템/칭호 확인 API 추가 (#83)
1 parent 8cc2c7b commit 679fc6c

File tree

4 files changed

+75
-12
lines changed

4 files changed

+75
-12
lines changed

backend/src/main/java/com/back/domain/member/controller/ApiV1MemberController.java

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ public ResponseEntity<ApiResponse<MemberDto>> valid_set(
116116
}
117117

118118
@PutMapping("/modify/profile")
119-
@Operation(summary = "회원 정보 수정", description = "생년월일, 성별 수정")
119+
@Operation(summary = "회원 정보 수정", description = "닉네임, 생년월일, 성별 수정")
120120
public ResponseEntity<ApiResponse<MemberDto>> modifyProfile(
121121
@Valid @RequestBody ModifyReqDto reqBody
122122
) {
@@ -166,6 +166,36 @@ public ResponseEntity<ApiResponse<MemberDto>> me() {
166166
);
167167
}
168168

169+
@GetMapping("/me/items")
170+
@Operation(summary = "보유한 아이템 확인", description = "보유한 아이템 리스트 확인")
171+
public ResponseEntity<ApiResponse<ItemListDto>> myItems() {
172+
Member actor = rq.getActorFromDb();
173+
174+
return ResponseEntity
175+
.status(HttpStatus.OK)
176+
.body(new ApiResponse<>(
177+
"200",
178+
"[Member] Success: 보유한 아이템 확인",
179+
new ItemListDto(actor.getOwnedItems())
180+
)
181+
);
182+
}
183+
184+
@GetMapping("/me/titles")
185+
@Operation(summary = "보유한 칭호 확인", description = "보유한 칭호 리스트 확인")
186+
public ResponseEntity<ApiResponse<TitleListDto>> myTitles() {
187+
Member actor = rq.getActorFromDb();
188+
189+
return ResponseEntity
190+
.status(HttpStatus.OK)
191+
.body(new ApiResponse<>(
192+
"200",
193+
"[Member] Success: 보유한 칭호 확인",
194+
new TitleListDto(actor.getOwnedTitles())
195+
)
196+
);
197+
}
198+
169199
@PutMapping("/equip/item/{id}")
170200
@Operation(summary = "아이템 장착", description = "보유한 아이템 장착")
171201
public ResponseEntity<ApiResponse<MemberDto>> equipItem(
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package com.back.domain.member.dto;
2+
3+
import com.back.domain.item.entity.Item;
4+
import com.back.domain.item.entity.ItemType;
5+
6+
import java.util.*;
7+
import java.util.stream.Collectors;
8+
9+
public record ItemListDto(
10+
Map<ItemType, List<Integer>> items
11+
) {
12+
public ItemListDto(Set<Item> ownedItems) {
13+
this(
14+
EnumSet.allOf(ItemType.class).stream()
15+
.collect(Collectors.toMap(
16+
type -> type,
17+
type -> new ArrayList<>()
18+
))
19+
);
20+
ownedItems.forEach(item -> this.items.get(item.getType()).add(item.getId()));
21+
this.items.replaceAll((k, v) -> v.stream().sorted().toList());
22+
}
23+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package com.back.domain.member.dto;
2+
3+
import com.back.domain.title.entity.Title;
4+
5+
import java.util.List;
6+
import java.util.Set;
7+
8+
public record TitleListDto(
9+
List<Integer> titles
10+
) {
11+
public TitleListDto(Set<Title> ownedTitles) {
12+
this(
13+
ownedTitles.stream()
14+
.map(Title::getId)
15+
.sorted()
16+
.toList()
17+
);
18+
}
19+
}

backend/src/main/java/com/back/domain/member/service/MemberService.java

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,7 @@ public class MemberService {
3030
private final TitleRepository titleRepository;
3131

3232
//가입 (일반)
33-
public Member signup(
34-
String email,
35-
String password,
36-
String name
37-
) {
33+
public Member signup(String email, String password, String name) {
3834
findByEmail(email)
3935
.ifPresent(_member -> {
4036
throw new CustomException(ErrorCode.CONFLICT, "[Member] Fail: 이미 가입된 계정");
@@ -109,12 +105,7 @@ public void modifyProfile(Member member, String name, LocalDate age, MemberGende
109105
member.setGender(gender);
110106
}
111107

112-
public void modifyStatus(
113-
Member member,
114-
int level,
115-
int xp,
116-
int money
117-
) {
108+
public void modifyStatus(Member member, int level, int xp, int money) {
118109
member.setLevel(level);
119110
member.setXp(xp);
120111
member.setMoney(money);

0 commit comments

Comments
 (0)