Skip to content

Commit 3d7ef8c

Browse files
authored
Merge pull request #156 from CommitField/feat/#150
feat: ์œ ์ € ํŽซ ์กฐํšŒ api ์ถ”๊ฐ€
2 parents 3b51986 + deeb0c0 commit 3d7ef8c

File tree

6 files changed

+59
-32
lines changed

6 files changed

+59
-32
lines changed

โ€Žsrc/main/java/cmf/commitField/domain/noti/noti/controller/ApiV1NotiController.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ public class ApiV1NotiController {
3232
private final NotiService notiService;
3333
private final UserService userService;
3434

35-
3635
@GetMapping("")
3736
public GlobalResponse<List<NotiDto>> getNoti(@AuthenticationPrincipal OAuth2User oAuth2User) {
3837
String username = oAuth2User.getName();

โ€Žsrc/main/java/cmf/commitField/domain/pet/controller/PetController.java

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,15 @@ public class PetController {
2121
private final CustomOAuth2UserService userService;
2222
private final PetService petService;
2323

24+
// ํ˜„์žฌ ํŽซ ๊ฒฝํ—˜์น˜ ์ƒ์Šน ๋ฐ ์ƒ์Šน ์‹œ ๋ ˆ๋ฒจ์—… ์ฒ˜๋ฆฌ
25+
@GetMapping("/getall")
26+
public ResponseEntity<List<PetsDto>> getUserPets(@AuthenticationPrincipal CustomOAuth2User oAuth2User){
27+
String username = oAuth2User.getName(); // CustomOAuth2User์˜ getName()์€ user.getUsername()์„ ๋ฐ˜ํ™˜
28+
29+
List<PetsDto> userPetDto = petService.getAllPets(username);
30+
return ResponseEntity.ok(userPetDto);
31+
}
32+
2433
// ํ˜„์žฌ ํŽซ ๊ฒฝํ—˜์น˜ ์ƒ์Šน ๋ฐ ์ƒ์Šน ์‹œ ๋ ˆ๋ฒจ์—… ์ฒ˜๋ฆฌ
2534
@GetMapping("/exp")
2635
public ResponseEntity<UserPetDto> getPetExp(@AuthenticationPrincipal CustomOAuth2User oAuth2User){
@@ -31,13 +40,6 @@ public ResponseEntity<UserPetDto> getPetExp(@AuthenticationPrincipal CustomOAuth
3140
return ResponseEntity.ok(userPetDto);
3241
}
3342

34-
@GetMapping("/getall")
35-
public ResponseEntity<List<PetsDto>> getUserAllPets(@AuthenticationPrincipal CustomOAuth2User oAuth2User){
36-
String username = oAuth2User.getName();
37-
List<PetsDto> userPetDto = petService.getAllPets(username);
38-
return ResponseEntity.ok(userPetDto);
39-
}
40-
4143
// *************************************
4244
// TODO : ์•„๋ž˜๋Š” ํ™•์žฅ ๊ธฐ๋Šฅ, ์ถ”๊ฐ€ ์‹œ ๊ฐœ์„  ํ•„์š”
4345
// *************************************
@@ -54,11 +56,6 @@ public ResponseEntity<Pet> createPet(@AuthenticationPrincipal CustomOAuth2User o
5456
return ResponseEntity.ok(pet);
5557
}
5658

57-
// ๋ชจ๋“  ํŽซ ์กฐํšŒ
58-
@GetMapping
59-
public List<Pet> getAllPets() {
60-
return petService.getAllPets();
61-
}
6259

6360
// ํŠน์ • ํŽซ ์กฐํšŒ
6461
@GetMapping("/{petId}")
Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,32 @@
11
package cmf.commitField.domain.pet.controller;
22

33

4-
import cmf.commitField.domain.pet.entity.Pet;
4+
import cmf.commitField.domain.pet.dto.UserPetListDto;
55
import cmf.commitField.domain.pet.service.PetService;
66
import cmf.commitField.domain.pet.service.UserPetService;
7-
import cmf.commitField.domain.user.entity.User;
7+
import cmf.commitField.domain.user.entity.CustomOAuth2User;
88
import cmf.commitField.domain.user.service.CustomOAuth2UserService;
9-
import cmf.commitField.global.globalDto.GlobalResponse;
109
import lombok.RequiredArgsConstructor;
10+
import org.springframework.http.ResponseEntity;
11+
import org.springframework.security.core.annotation.AuthenticationPrincipal;
1112
import org.springframework.web.bind.annotation.GetMapping;
12-
import org.springframework.web.bind.annotation.PathVariable;
1313
import org.springframework.web.bind.annotation.RequestMapping;
1414
import org.springframework.web.bind.annotation.RestController;
1515

16-
import java.util.List;
17-
1816
@RestController
19-
@RequestMapping("/user-pets")
17+
@RequestMapping("/api/user/")
2018
@RequiredArgsConstructor
2119
public class UserPetController {
2220

2321
private final UserPetService userPetService;
2422
private final CustomOAuth2UserService customOAuth2UserService;
2523
private final PetService petService;
2624

27-
// TODO: ๊ธฐ๋Šฅ ํ™•์žฅ์‹œ ์ถ”๊ฐ€ ์˜ˆ์ •
2825
// ์œ ์ €์˜ ๋„๊ฐ ์กฐํšŒ (๋ณด์œ ํ•œ ํŽซ ๋ชฉ๋ก)
29-
@GetMapping("/collection/{userId}")
30-
public GlobalResponse<List<Pet>> getUserPetCollection(@PathVariable Long userId) {
31-
User user = customOAuth2UserService.getUserById(userId).orElse(null);
32-
return GlobalResponse.success(userPetService.getUserPetCollection(user));
26+
@GetMapping("/collection")
27+
public ResponseEntity<UserPetListDto> getUserPetCollection(@AuthenticationPrincipal CustomOAuth2User oAuth2User) {
28+
String username = oAuth2User.getName();
29+
UserPetListDto userPetListDto = petService.getUserCollection(username);
30+
return ResponseEntity.ok(userPetListDto);
3331
}
3432
}

โ€Žsrc/main/java/cmf/commitField/domain/pet/dto/UserPetDto.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,6 @@ public class UserPetDto {
1414
private long petId;
1515
private String petName;
1616
private String grow;
17+
private int type;
1718
private long exp;
1819
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package cmf.commitField.domain.pet.dto;
2+
3+
import lombok.AllArgsConstructor;
4+
import lombok.Builder;
5+
import lombok.Getter;
6+
import lombok.NoArgsConstructor;
7+
8+
import java.util.Map;
9+
10+
@Builder
11+
@Getter
12+
@NoArgsConstructor
13+
@AllArgsConstructor
14+
public class UserPetListDto {
15+
private String username;
16+
private Map<Integer, Integer> petList; // ์•„์ด๋””, ์†Œ์œ  ๊ฐฏ์ˆ˜
17+
}

โ€Žsrc/main/java/cmf/commitField/domain/pet/service/PetService.java

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import cmf.commitField.domain.pet.dto.PetsDto;
44
import cmf.commitField.domain.pet.dto.UserPetDto;
5+
import cmf.commitField.domain.pet.dto.UserPetListDto;
56
import cmf.commitField.domain.pet.entity.Pet;
67
import cmf.commitField.domain.pet.entity.PetGrow;
78
import cmf.commitField.domain.pet.repository.PetRepository;
@@ -13,10 +14,7 @@
1314
import org.springframework.transaction.annotation.Transactional;
1415

1516
import java.io.IOException;
16-
import java.util.ArrayList;
17-
import java.util.List;
18-
import java.util.Optional;
19-
import java.util.Random;
17+
import java.util.*;
2018

2119
@Service
2220
@RequiredArgsConstructor
@@ -37,9 +35,26 @@ public Pet createPet(String petname, String username) throws IOException {
3735
return petRepository.save(newPet);
3836
}
3937

40-
// ๋ชจ๋“  ํŽซ ์กฐํšŒ
41-
public List<Pet> getAllPets() {
42-
return petRepository.findAll();
38+
// ์œ ์ €๊ฐ€ ์†Œ์œ ํ•œ ํŽซ ๋„๊ฐ ์กฐํšŒ
39+
public UserPetListDto getUserCollection(String username) {
40+
List<Pet> pets = petRepository.findByUserUsername(username);
41+
int[] petsNum = new int[100]; //FIXME: ์ฐจํ›„ ๊ฐฏ์ˆ˜ ์ˆ˜์ • ํ•„์š”
42+
int max = 0;
43+
Map<Integer, Integer> petList = new HashMap<>();
44+
for(Pet pet : pets){
45+
int type = pet.getType();
46+
petsNum[type]++;
47+
if(max<type) max = type;
48+
}
49+
50+
for(int i=0;i<=max;i++){
51+
petList.put(i, petsNum[i]);
52+
}
53+
54+
return UserPetListDto.builder().
55+
username(username).
56+
petList(petList).
57+
build();
4358
}
4459

4560
// ํŠน์ • ํŽซ ์กฐํšŒ

0 commit comments

Comments
ย (0)