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
8 changes: 5 additions & 3 deletions src/main/java/kr/warmlink/WarmlinkApplication.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,14 @@

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;

@SpringBootApplication
@EnableJpaAuditing
public class WarmlinkApplication {

public static void main(String[] args) {
SpringApplication.run(WarmlinkApplication.class, args);
}
public static void main(String[] args) {
SpringApplication.run(WarmlinkApplication.class, args);
}

}
16 changes: 16 additions & 0 deletions src/main/java/kr/warmlink/application/auth/dto/SignInDto.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;

import java.time.LocalDate;

public class SignInDto {
@Getter
Expand All @@ -16,4 +19,17 @@ public static Response of(String message, String accessToken) {
return new Response(message, accessToken);
}
}

@Getter
@NoArgsConstructor
@AllArgsConstructor
@Schema(name = "SignIn.Register", description = "회원정보 등록 요청 DTO")
public static class Register {
private String name;
private String email;
private String interestField;
private LocalDate birth;
private String region;
private String job;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package kr.warmlink.domain.auth.repository;

import kr.warmlink.domain.auth.entity.User;
import org.springframework.data.jpa.repository.JpaRepository;

import java.util.Optional;

public interface UserRepository extends JpaRepository<User, Long> {
Optional<User> findByEmail(String email);
}
37 changes: 37 additions & 0 deletions src/main/java/kr/warmlink/domain/auth/service/UserService.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package kr.warmlink.domain.auth.service;

import kr.warmlink.application.auth.dto.SignInDto;
import kr.warmlink.domain.auth.entity.User;
import kr.warmlink.domain.auth.repository.UserRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

@Service
@RequiredArgsConstructor
public class UserService {

private final UserRepository userRepository;

@Transactional
public void create(User user) {
userRepository.save(user);
}

@Transactional
public String register(SignInDto.Register dto) {
String message = "회원정보 등록에 성공하였습니다.";
User user = User.builder()
.name(dto.getName())
.email(dto.getEmail())
.interestField(dto.getInterestField())
.birth(dto.getBirth())
.region(dto.getRegion())
.job(dto.getJob())
.build();

create(user);
return message;
}

}
9 changes: 9 additions & 0 deletions src/main/java/kr/warmlink/presentation/api/AuthApi.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import io.swagger.v3.oas.annotations.responses.ApiResponses;
import io.swagger.v3.oas.annotations.tags.Tag;
import kr.warmlink.application.auth.dto.SignInDto;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;

@Tag(name = "[인증 관련 API]", description = "사용자 인증 관련 API")
Expand All @@ -15,4 +17,11 @@ public interface AuthApi {
@ApiResponse(responseCode = "400", description = "로그인 실패")
})
ResponseEntity<?> signIn(@RequestParam("code") String code);

@Operation(summary = "사용자 정보 등록", description = "서비스 가입을 위한 사용자 정보 등록을 위한 API")
@ApiResponses({
@ApiResponse(responseCode = "200", description = "회원 정보 등록 성공"),
@ApiResponse(responseCode = "400", description = "회원 정보 등록 실패")
})
ResponseEntity<?> register(@RequestBody SignInDto.Register dto);
}
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
package kr.warmlink.presentation.controller;

import kr.warmlink.application.auth.dto.SignInDto;
import kr.warmlink.application.auth.service.KakaoOAuthService;
import kr.warmlink.domain.auth.service.UserService;
import kr.warmlink.presentation.api.AuthApi;
import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

Expand All @@ -14,11 +17,18 @@
public class AuthController implements AuthApi {

private final KakaoOAuthService kakaoOAuthService;
private final UserService userService;

@Override
@GetMapping("/sign-in/kakao")
public ResponseEntity<?> signIn(String code) {
return kakaoOAuthService.kakaoSignIn(code);
}

@Override
@PostMapping("/users")
public ResponseEntity<?> register(SignInDto.Register dto) {
return ResponseEntity.ok(userService.register(dto));
}

}
Loading