Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package GDGoC.team_24.domain.user.controller;

import GDGoC.team_24.domain.user.domain.Userinfo;
import GDGoC.team_24.domain.user.dto.UserInfoRequestDto;
import GDGoC.team_24.global.ApiResponse;
import GDGoC.team_24.domain.user.dto.UserLoginReqDto;
import GDGoC.team_24.domain.user.dto.UserRequestDto;
Expand Down Expand Up @@ -44,6 +46,14 @@ public ApiResponse<UserResponseDto> userGet(@PathVariable("userId") Long userId)

}

@PostMapping({"/{userId}/userInfo"})
@Operation(summary = "유저 기본질문 생성 API", description = "유저 기본질문을 생성하는 API입니다.")
public ApiResponse<Long> userSignUp(@PathVariable("userId") Long userId, @RequestBody UserInfoRequestDto request) {

return ApiResponse.onSuccess(userService.userInfoSave(request,userId));

}




Expand Down
3 changes: 3 additions & 0 deletions src/main/java/GDGoC/team_24/domain/user/domain/User.java
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,9 @@ public class User {
@OneToMany(mappedBy = "user", cascade = CascadeType.ALL, orphanRemoval = true)
private List<Diary> diaries = new ArrayList<>();

@OneToOne(mappedBy = "user", cascade = CascadeType.ALL, orphanRemoval = true)
private Userinfo userinfo;

@Builder
public User(Long id, String name, GENDER gender, String birthaDate, String phoneNumber,String emoji, Family family) {
this.id = id;
Expand Down
28 changes: 19 additions & 9 deletions src/main/java/GDGoC/team_24/domain/user/domain/Userinfo.java
Original file line number Diff line number Diff line change
@@ -1,18 +1,28 @@
package GDGoC.team_24.domain.user.domain;

import jakarta.persistence.GeneratedValue;
import jakarta.persistence.Id;
import jakarta.persistence.*;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

@Entity
@Getter
@Setter
@NoArgsConstructor
public class Userinfo {
@Id
@GeneratedValue
private static Long id;
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

private static HOUSE house;
@Enumerated(EnumType.STRING)
private HOUSE house;

private static Long sun;
private static Long daughter;
private static String hubby;
private static String medicine;
private Long sun;
private Long daughter;
private String hubby;
private String medicine;

@OneToOne
@JoinColumn(name = "user_id")
private User user;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package GDGoC.team_24.domain.user.dto;

import GDGoC.team_24.domain.user.domain.HOUSE;
import lombok.*;

@Builder
@Getter
@NoArgsConstructor
@Setter
@AllArgsConstructor
public class UserInfoRequestDto {
private HOUSE house;
private Long sun;
private Long daughter;
private String hubby;
private String medicine;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package GDGoC.team_24.domain.user.repository;

import GDGoC.team_24.domain.user.domain.Userinfo;
import org.springframework.data.jpa.repository.JpaRepository;

public interface UserInfoRepository extends JpaRepository<Userinfo,Long> {
}
26 changes: 26 additions & 0 deletions src/main/java/GDGoC/team_24/domain/user/service/UserService.java
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
package GDGoC.team_24.domain.user.service;

import GDGoC.team_24.domain.user.domain.GENDER;
import GDGoC.team_24.domain.user.domain.HOUSE;
import GDGoC.team_24.domain.user.domain.User;
import GDGoC.team_24.domain.user.domain.Userinfo;
import GDGoC.team_24.domain.user.dto.UserInfoRequestDto;
import GDGoC.team_24.domain.user.dto.UserLoginReqDto;
import GDGoC.team_24.domain.user.dto.UserRequestDto;
import GDGoC.team_24.domain.user.dto.UserResponseDto;
import GDGoC.team_24.domain.user.repository.UserInfoRepository;
import GDGoC.team_24.domain.user.repository.UserRepository;
import GDGoC.team_24.global.code.status.ErrorStatus;
import GDGoC.team_24.global.exception.GeneralException;
Expand All @@ -16,6 +20,7 @@
public class UserService {

private final UserRepository userRepository;
private final UserInfoRepository userInfoRepository;

public UserResponseDto userSignUp(UserRequestDto userRequestDto) {

Expand Down Expand Up @@ -51,4 +56,25 @@ public UserResponseDto userGet(Long userId) {

return new UserResponseDto(user);
}

public Long userInfoSave(UserInfoRequestDto request, Long userId) {
// 유저 조회
User user = userRepository.findById(userId)
.orElseThrow(() -> new GeneralException(ErrorStatus.MEMBER_NOT_FOUND));

// Userinfo 생성 및 값 설정
Userinfo userinfo = new Userinfo();
userinfo.setUser(user);
userinfo.setHouse(request.getHouse());
userinfo.setSun(request.getSun());
userinfo.setDaughter(request.getDaughter());
userinfo.setHubby(request.getHubby());
userinfo.setMedicine(request.getMedicine());

// 저장
userInfoRepository.save(userinfo);

return userinfo.getId();
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,14 @@ public enum ErrorStatus implements BaseErrorCode {
EMAIL_NOT_FOUND(HttpStatus.BAD_REQUEST, "MEMBER4003", "이메일이 없습니다."),
NICKNAME_NOT_EXIST(HttpStatus.BAD_REQUEST, "MEMBER4002", "닉네임은 필수 입니다."),
EMAIL_FAILED(HttpStatus.BAD_REQUEST, "MEMBER4004","이메일 전송에 실패하였습니다"),
INVALID_INPUT(HttpStatus.BAD_REQUEST, "MEMBER4005","잘못된 요청입니다"),

PASSWORD_VALIDATION_FAILED(HttpStatus.BAD_REQUEST,"PASSWORD4001","비밀번호는 영어 대/소문자, 숫자 중 2종류 이상을 조합해야 합니다."),

JWT_SIGNATURE_INVALID(HttpStatus.UNAUTHORIZED, "AUTH001", "JWT 서명이 올바르지 않습니다."),
JWT_EXPIRED(HttpStatus.UNAUTHORIZED, "AUTH002", "JWT 토큰이 만료되었습니다."),
JWT_MALFORMED(HttpStatus.UNAUTHORIZED, "AUTH003", "JWT 토큰이 올바르지 않은 형식입니다."),


//S3
S3_FAILED(HttpStatus.INTERNAL_SERVER_ERROR,"S34001","사진 업로드에 실패했습니다."),
S3_FORMAT(HttpStatus.BAD_REQUEST, "S34002","잘못된 형식의 파일입니다."),
Expand Down
Loading