Skip to content

Commit b98d014

Browse files
authored
Merge pull request #83 from CommitField/feat/#65
feat: pet ์—”ํ‹ฐํ‹ฐ ์ˆ˜์ • ๋ฐ ์ƒ์„ฑ๊ณผ์ • ์ˆ˜์ •
2 parents 2df28f8 + 197807a commit b98d014

File tree

10 files changed

+49
-39
lines changed

10 files changed

+49
-39
lines changed

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

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

33
import cmf.commitField.domain.pet.entity.Pet;
44
import cmf.commitField.domain.pet.service.PetService;
5+
import cmf.commitField.domain.user.entity.User;
6+
import cmf.commitField.domain.user.service.CustomOAuth2UserService;
57
import lombok.RequiredArgsConstructor;
68
import org.springframework.http.MediaType;
79
import org.springframework.web.bind.annotation.*;
@@ -11,18 +13,20 @@
1113

1214
@RestController
1315
@RequiredArgsConstructor
14-
@RequestMapping("/pets")
16+
@RequestMapping("/api/pets")
1517
public class PetController {
16-
18+
private final CustomOAuth2UserService userService;
1719
private final PetService petService;
1820

1921
// ์ƒˆ๋กœ์šด ํŽซ ์ถ”๊ฐ€
2022
@PostMapping(consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
2123
public Pet createPet(
24+
@RequestParam String email,
2225
@RequestParam String name,
2326
@RequestPart(value = "imageFile") MultipartFile imageFile
2427
) throws Exception {
25-
return petService.createPet(name, imageFile);
28+
User user = userService.getUserByEmail(email).get();
29+
return petService.createPet(name, imageFile, user);
2630
}
2731

2832
// ๋ชจ๋“  ํŽซ ์กฐํšŒ

โ€Žsrc/main/java/cmf/commitField/domain/pet/entity/Pet.javaโ€Ž

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package cmf.commitField.domain.pet.entity;
22

3+
import cmf.commitField.domain.user.entity.User;
34
import cmf.commitField.global.jpa.BaseEntity;
4-
import jakarta.persistence.Entity;
5-
import jakarta.persistence.Table;
5+
import jakarta.persistence.*;
66
import lombok.AllArgsConstructor;
77
import lombok.Getter;
88
import lombok.NoArgsConstructor;
@@ -17,6 +17,11 @@
1717
@SuperBuilder
1818
@Table(name = "pet")
1919
public class Pet extends BaseEntity {
20+
private int type; // ํŽซ ํƒ€์ž… ๋„˜๋ฒ„, ํ˜„์žฌ 1~3๊นŒ์ง€ ์กด์žฌ
2021
private String name;
2122
private String imageUrl;
23+
24+
@ManyToOne(fetch = FetchType.LAZY)
25+
@JoinColumn(name = "user_id", nullable = false)
26+
private User user;
2227
}

โ€Žsrc/main/java/cmf/commitField/domain/pet/repository/PetRepository.javaโ€Ž

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,11 @@
44
import org.springframework.data.jpa.repository.JpaRepository;
55
import org.springframework.stereotype.Repository;
66

7+
import java.util.List;
78
import java.util.Optional;
89

910
@Repository
1011
public interface PetRepository extends JpaRepository<Pet, Long> {
1112
Optional<Pet> findById(Long id);
13+
List<Pet> findByUserEmail(String email);
1214
}

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

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

33
import cmf.commitField.domain.pet.entity.Pet;
44
import cmf.commitField.domain.pet.repository.PetRepository;
5+
import cmf.commitField.domain.user.entity.User;
56
import cmf.commitField.global.aws.s3.S3Service;
67
import lombok.RequiredArgsConstructor;
78
import org.springframework.stereotype.Service;
@@ -10,6 +11,7 @@
1011
import java.io.IOException;
1112
import java.util.List;
1213
import java.util.Optional;
14+
import java.util.Random;
1315

1416
@Service
1517
@RequiredArgsConstructor
@@ -19,15 +21,15 @@ public class PetService {
1921
private final S3Service s3Service;
2022

2123
// ์ƒˆ๋กœ์šด ํŽซ ์ƒ์„ฑ
22-
public Pet createPet(String name, MultipartFile imageFile) throws IOException {
24+
public Pet createPet(String name, MultipartFile imageFile, User user) throws IOException {
2325

2426
// โœ… S3 ์—…๋กœ๋“œ ๋กœ์ง ์ถ”๊ฐ€
2527
String imageUrl = null;
2628
if (imageFile != null && !imageFile.isEmpty()) {
2729
imageUrl = s3Service.uploadFile(imageFile, "pet-images");
2830
}
29-
30-
Pet pet = new Pet(name, imageUrl);
31+
Random random = new Random();
32+
Pet pet = new Pet(random.nextInt(3), name, imageUrl, user);
3133
return petRepository.save(pet);
3234
}
3335

โ€Žsrc/main/java/cmf/commitField/domain/season/controller/ApiV1SeasonController.javaโ€Ž

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,11 @@
44
import cmf.commitField.domain.season.service.SeasonService;
55
import cmf.commitField.global.scheduler.SeasonScheduler;
66
import lombok.RequiredArgsConstructor;
7-
import org.springframework.web.bind.annotation.*;
7+
import org.springframework.web.bind.annotation.GetMapping;
8+
import org.springframework.web.bind.annotation.PostMapping;
9+
import org.springframework.web.bind.annotation.RequestMapping;
10+
import org.springframework.web.bind.annotation.RestController;
811

9-
import javax.swing.*;
1012
import java.time.LocalDateTime;
1113

1214
@RestController
@@ -20,7 +22,7 @@ public class ApiV1SeasonController {
2022
@PostMapping
2123
public Season createSeason() {
2224
String name = "2025 1๋ถ„๊ธฐ";
23-
LocalDateTime start = LocalDateTime.of(2025, 1, 1, 0, 0, 0);
25+
LocalDateTime start = LocalDateTime.of(2024, 12, 1, 0, 0, 0);
2426
LocalDateTime end = LocalDateTime.of(2025, 2, 28, 23, 59, 59);
2527

2628
return seasonService.createNewSeason(name, start, end);

โ€Žsrc/main/java/cmf/commitField/domain/user/controller/LogoutController.javaโ€Ž

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,12 @@ public class LogoutController {
1515
public void logout(HttpServletRequest request, HttpServletResponse response) throws IOException {
1616
// ์„ธ์…˜ ๋งŒ๋ฃŒ
1717
request.getSession().invalidate();
18-
18+
System.out.println("๋กœ๊ทธ์•„์›ƒ ์„ฑ๊ณต!");
1919
// ์„ธ์…˜ ์ฟ ํ‚ค ์‚ญ์ œ
2020
Cookie cookie = new Cookie("JSESSIONID", null);
2121
cookie.setPath("/"); // ๊ธฐ๋ณธ ๊ฒฝ๋กœ ์„ค์ •
2222
cookie.setMaxAge(0); // ์ฟ ํ‚ค ๋งŒ๋ฃŒ ์‹œ๊ฐ„ ์„ค์ •
2323
response.addCookie(cookie);
24-
2524
// CORS ๋Œ€์‘์„ ์œ„ํ•ด ์ƒํƒœ ์ฝ”๋“œ๋งŒ ๋ฐ˜ํ™˜ํ•˜๊ณ , ํ”„๋ก ํŠธ์—์„œ ๋ฆฌ๋””๋ ‰์…˜ ์ฒ˜๋ฆฌํ•˜๋„๋ก ํ•จ
2625
response.setStatus(HttpServletResponse.SC_OK);
2726
}

โ€Žsrc/main/java/cmf/commitField/domain/user/repository/UserRepository.javaโ€Ž

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,5 @@
88
public interface UserRepository extends JpaRepository<User, Long> {
99
Optional<User> findByUsername(String username);
1010
Optional<User> findById(Long id);
11+
Optional<User> findByEmail(String email);
1112
}

โ€Žsrc/main/java/cmf/commitField/domain/user/service/CustomOAuth2UserService.javaโ€Ž

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
package cmf.commitField.domain.user.service;
22

3+
import cmf.commitField.domain.pet.entity.Pet;
4+
import cmf.commitField.domain.pet.repository.PetRepository;
35
import cmf.commitField.domain.user.entity.CustomOAuth2User;
46
import cmf.commitField.domain.user.entity.User;
57
import cmf.commitField.domain.user.repository.UserRepository;
8+
import lombok.RequiredArgsConstructor;
69
import org.springframework.security.oauth2.client.userinfo.DefaultOAuth2UserService;
710
import org.springframework.security.oauth2.client.userinfo.OAuth2UserRequest;
811
import org.springframework.security.oauth2.core.user.OAuth2User;
@@ -11,14 +14,13 @@
1114
import java.util.ArrayList;
1215
import java.util.Map;
1316
import java.util.Optional;
17+
import java.util.Random;
1418

1519
@Service
20+
@RequiredArgsConstructor
1621
public class CustomOAuth2UserService extends DefaultOAuth2UserService {
1722
private final UserRepository userRepository;
18-
19-
public CustomOAuth2UserService(UserRepository userRepository) {
20-
this.userRepository = userRepository;
21-
}
23+
private final PetRepository petRepository;
2224

2325
@Override
2426
public OAuth2User loadUser(OAuth2UserRequest userRequest) {
@@ -36,14 +38,23 @@ public OAuth2User loadUser(OAuth2UserRequest userRequest) {
3638
}
3739

3840
Optional<User> existingUser = userRepository.findByUsername(username);
41+
3942
User user;
43+
Pet pet;
4044
if (existingUser.isPresent()) {
45+
//์œ ์ € ์ •๋ณด๊ฐ€ ์žˆ๋‹ค๋ฉด ์œ ์ € ์ •๋ณด๋ฅผ ์–ป์–ด์˜จ๋‹ค.
4146
user = existingUser.get();
4247
user.setAvatarUrl(avatarUrl);
43-
user.setEmail(email); // GitHub์—์„œ ์ด๋ฉ”์ผ์ด ๋ณ€๊ฒฝ๋  ์ˆ˜๋„ ์žˆ์œผ๋‹ˆ ์—…๋ฐ์ดํŠธ\
48+
user.setEmail(email); // GitHub์—์„œ ์ด๋ฉ”์ผ์ด ๋ณ€๊ฒฝ๋  ์ˆ˜๋„ ์žˆ์œผ๋‹ˆ ์—…๋ฐ์ดํŠธ
4449
} else {
50+
//์œ ์ € ์ •๋ณด๊ฐ€ db์— ์กด์žฌํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ ํšŒ์›๊ฐ€์ž… ์‹œํ‚จ๋‹ค.
51+
//์œ ์ € ์ƒ์„ฑ ๋ฐ ํŽซ ์ƒ์„ฑ
4552
user = new User(username, email, name, avatarUrl, User.Role.USER, new ArrayList<>(), new ArrayList<>(), new ArrayList<>());
4653
userRepository.save(user);
54+
55+
Random random = new Random(); //ํŽซ ๋žœ๋ค ์ƒ์„ฑ
56+
pet = new Pet(random.nextInt(3), "์•Œ์•Œ", "temp-Url", user); // ๋ณ€๊ฒฝ ํ•„์š”
57+
petRepository.save(pet);
4758
}
4859

4960
return new CustomOAuth2User(oauthUser, user);
@@ -53,4 +64,9 @@ public OAuth2User loadUser(OAuth2UserRequest userRequest) {
5364
public Optional<User> getUserById(Long userId) {
5465
return userRepository.findById(userId);
5566
}
67+
68+
// email๋กœ user ์กฐํšŒ
69+
public Optional<User> getUserByEmail(String email) {
70+
return userRepository.findByEmail(email);
71+
}
5672
}

โ€Žsrc/main/java/cmf/commitField/global/config/CustomWebMvcConfig.javaโ€Ž

Lines changed: 0 additions & 19 deletions
This file was deleted.

โ€Žsrc/main/java/cmf/commitField/global/config/RedisConfig.javaโ€Ž

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ public class RedisConfig {
1919
@Value("${spring.redis.port}")
2020
public int port;
2121

22-
2322
@Bean
2423
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory connectionFactory) {
2524
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
@@ -43,5 +42,4 @@ public StringRedisTemplate stringRedisTemplate(RedisConnectionFactory redisConne
4342
template.setConnectionFactory(redisConnectionFactory);
4443
return template;
4544
}
46-
4745
}

0 commit comments

Comments
ย (0)