Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
124 commits
Select commit Hold shift + click to select a range
a793a62
refactor: Member 의 interestArea 제거
leegwichan Jul 3, 2025
cf8ef25
test: flyway 관련 테스트 추가
leegwichan Jul 3, 2025
f01610b
chore: 사용하지 않는 변수 제거
leegwichan Jul 3, 2025
273321a
feat: 누락된 유효성 검사 추가
leegwichan Jul 3, 2025
02224d1
fix: 로컬 환경 초기 Member 데이터 SQL 오류 수정
leegwichan Jul 3, 2025
a742c65
feat: 지도 API를 통한 검색 기능 구현
leegwichan Jul 7, 2025
b148e7d
fix: 서비스 이름 변경
lvalentine6 Jul 7, 2025
1dcb3a6
style: 임포트 스타일 통일
lvalentine6 Jul 7, 2025
3b22088
Merge pull request #56 from YAPP-Github/refactor/PRODUCT-109
lvalentine6 Jul 7, 2025
d0ff082
feat(dev): 이미지 처리를 위한 s3 버킷 구현
lvalentine6 Jul 7, 2025
4015132
feat(prod): 이미지 처리를 위한 s3 버킷 구현
lvalentine6 Jul 7, 2025
caf1cb1
chore: aws S3 sdk 추가 및 소나 클라우드 설정 변경
lvalentine6 Jul 7, 2025
0b20fb7
fix: 인스턴스를 강제로 교체하지 않도록 수정
lvalentine6 Jul 7, 2025
63d5c41
style: 주석 제거
lvalentine6 Jul 7, 2025
bc42a2f
fix: 소나 클라우드 조직명 변경
lvalentine6 Jul 7, 2025
5c35634
fix: CORS 범위 조정 및 리소스명 통일
lvalentine6 Jul 7, 2025
a824b44
Merge branch 'develop' into fix/PRODUCT-117
leegwichan Jul 8, 2025
df1a051
refactor : Flyway 관리 방안 재설정
leegwichan Jul 8, 2025
b4cb4b7
Merge branch 'develop' into feat/PRODUCT-124
leegwichan Jul 8, 2025
f00c229
feat: Kakao API 가게 조회 요청 시, 제한 구역 설정
leegwichan Jul 8, 2025
1a5e98d
feat: Kakao API KEY 유효성 검사 기능 추가
leegwichan Jul 8, 2025
3de1ba5
feat: 가게 검색 서비스 로직 구현
leegwichan Jul 8, 2025
564b276
feat: 가게 검색 API 구현
leegwichan Jul 8, 2025
be12318
test(BaseDocumentTest): DocumentTest 환경에서 JwtManager Mocking 실시
leegwichan Jul 9, 2025
047d497
docs : 구현된 API의 에러 상황 문서 테스트 작성
leegwichan Jul 9, 2025
79b1fbe
fix : 에러 상황 문서 수정
leegwichan Jul 9, 2025
fd788d7
fix : `MapClient` URI 만드는 방법 개선
leegwichan Jul 9, 2025
841179a
test(MapClient) : 검색 결과가 없을 경우에 해당하는 테스트 케이스 추가
leegwichan Jul 9, 2025
1f375ca
Merge pull request #59 from YAPP-Github/chore/PRODUCT-145
lvalentine6 Jul 9, 2025
5306ed8
chore: S3 버킷명 및 업로드 파일 사이즈 제약 추가
lvalentine6 Jul 9, 2025
99b162e
chore: S3 스타터 의존성 추가
lvalentine6 Jul 9, 2025
f6e571f
feat: S3 커스텀 예외 추가
lvalentine6 Jul 9, 2025
a3abaa6
feat: S3 예외 추가 및 핸들러에 반영
lvalentine6 Jul 9, 2025
1eda674
feat: 공통 이미지 서비스 구현
lvalentine6 Jul 9, 2025
e07f8f1
test: 공통 이미지 서비스 테스트 구현
lvalentine6 Jul 9, 2025
e8a3810
fix: test 프로파일에 테스트 버킷명 추가
lvalentine6 Jul 9, 2025
d2a4df4
[Feat] 맛집 가게 조회 API 구현
leegwichan Jul 10, 2025
e9f9938
Merge branch 'develop' into docs/PRODUCT-146
leegwichan Jul 10, 2025
1d0fcf8
fix: 문서 명 변경
leegwichan Jul 10, 2025
2d3e86f
[Docs] 에러 응답에 대한 문서화
leegwichan Jul 10, 2025
93e4289
fix: Etc 예외를 비즈니스 예외로 통합하여 수정
lvalentine6 Jul 10, 2025
1d39770
fix: dev db 초기화 후 마이그레이션과 시드 조정
lvalentine6 Jul 10, 2025
b090d23
fix: store 관심지역 롤백
lvalentine6 Jul 10, 2025
26a6d9a
Merge remote-tracking branch 'origin/develop' into fix/PRODUCT-117
lvalentine6 Jul 10, 2025
376b6a1
test: test 파라미터 수정
lvalentine6 Jul 10, 2025
d6c66d4
Merge pull request #54 from YAPP-Github/fix/PRODUCT-117
lvalentine6 Jul 10, 2025
a482f66
Merge pull request #68 from YAPP-Github/feat/PRODUCT-140
lvalentine6 Jul 10, 2025
97cef21
feat: 회원 정보 조회 서비스 로직 구현
leegwichan Jul 11, 2025
82ebee6
feat: 회원 정보 조회 API 구현
leegwichan Jul 11, 2025
a220c5e
feat: Kakao OAuth 조회 시, email 까지 같이 받도록 수정
leegwichan Jul 11, 2025
ca72d8a
feat: Member 엔티티에 email 추가
leegwichan Jul 11, 2025
c2bd576
feat: 회원 관련 API 수정
leegwichan Jul 11, 2025
cea611d
[Feat] 회원 정보 조회 API 구현
leegwichan Jul 11, 2025
8b0f532
Merge branch 'develop' into fix/PRODUCT-153
leegwichan Jul 11, 2025
03d5342
ci: 자동 ERD 생성 워크플로 구현
lvalentine6 Jul 11, 2025
75e8017
ci: 테스트를 위한 설정 변경
lvalentine6 Jul 11, 2025
bf0be3c
ci: flyway 다운로드 방식 변경
lvalentine6 Jul 11, 2025
6c61309
fix: mysql 연결 방식 수정
lvalentine6 Jul 11, 2025
e4ca657
fix: 명령어 한줄로 수정
lvalentine6 Jul 11, 2025
8c33895
fix: 인덴트 수정
lvalentine6 Jul 11, 2025
276001d
fix: node 버전 수정
lvalentine6 Jul 11, 2025
14aa544
fix: 렌더 명령어 수정
lvalentine6 Jul 11, 2025
b30ea17
fix: 렌더 명령어 재수정
lvalentine6 Jul 11, 2025
1eb96ac
fix: 설치 패키지 변경
lvalentine6 Jul 11, 2025
2c1cc59
fix: 설치 패키지 변경
lvalentine6 Jul 11, 2025
6e9f2ec
fix: 설치 패키지 수정
lvalentine6 Jul 11, 2025
2be40ac
refactor(Member): 이메일 정규식 간소화
leegwichan Jul 13, 2025
2824185
[Fix] 회원가입 API 에서 이메일을 이용하도록 수정
leegwichan Jul 13, 2025
60f3d62
Merge pull request #74 from YAPP-Github/ci/PRODUCT-154
lvalentine6 Jul 14, 2025
cc580fe
refactor: 사용하지 않는 도메인 제거
leegwichan Jul 15, 2025
0c61e3d
fix: Store 도메인 수정
leegwichan Jul 15, 2025
a5e79e8
feat: Cheer 도메인 구현
leegwichan Jul 15, 2025
d648ab6
feat: Article 도메인 구현
leegwichan Jul 15, 2025
2135166
fix: SQL 문 수정
leegwichan Jul 15, 2025
0926c99
fix: Cheer 의 생성자 수정
leegwichan Jul 15, 2025
b27f9f0
refactor(AuditingEntity): 생성 시각 분리
leegwichan Jul 15, 2025
d008489
[Fix] 1차 스프린트 ERD 수정
leegwichan Jul 15, 2025
6658782
feat: 스토리 스키마 추가
lvalentine6 Jul 14, 2025
2b3d6ce
feat: 스토리 도메인 구현
lvalentine6 Jul 14, 2025
529b7e8
chore: 에러 로그 추가
lvalentine6 Jul 15, 2025
8070da7
feat: 스토리 등록 record 구현
lvalentine6 Jul 15, 2025
4ab8d8c
feat: 스토리 목록 조회 record 구현
lvalentine6 Jul 15, 2025
8185eae
feat: 스토리 스켈레톤 클래스 구현
lvalentine6 Jul 15, 2025
90a90e6
fix: 기본 컨텐츠 타입 상수 처리
lvalentine6 Jul 16, 2025
111037a
feat: 이미지 업로드가 가능한 도메인 추가
lvalentine6 Jul 16, 2025
b25be03
fix: 업로드시 enum을 이용하도록 변경
lvalentine6 Jul 16, 2025
d17098f
feat: 카카오 api에 단건 가게 조회를 위한 메서드 구현
lvalentine6 Jul 16, 2025
919a41a
refactor: 빌더 패턴 적용 및 상속 적용
lvalentine6 Jul 16, 2025
4572bec
feat: 스토리 등록 기능 구현
lvalentine6 Jul 16, 2025
089df85
fix: 스토리에 스토어 정보를 들고있게 수정
lvalentine6 Jul 16, 2025
5103492
fix: 미구현 메서드 삭제
lvalentine6 Jul 16, 2025
bf0f4e3
chore: 임시 로그 추가
lvalentine6 Jul 16, 2025
0ac5a65
test: base 스토리 서비스 추가
lvalentine6 Jul 16, 2025
00483e4
test: 이미지 서비스 enum 이용하도록 수정
lvalentine6 Jul 16, 2025
36a230a
test: 스토리 컨트롤러 테스트 구현
lvalentine6 Jul 16, 2025
47a38bf
test: 스토리 도큐먼트 테스트 구현
lvalentine6 Jul 16, 2025
10f95c8
test: 스토리 서비스 테스트 구현
lvalentine6 Jul 16, 2025
d819c60
test: 스토리 도메인 테스트 구현
lvalentine6 Jul 16, 2025
510546d
test: 스토리 tag 추가
lvalentine6 Jul 16, 2025
5bc6fe2
fix: 예외 이름 변경
lvalentine6 Jul 16, 2025
d9d62ed
fix: 예외 이름 변경 적용
lvalentine6 Jul 16, 2025
d3b7bb9
test: 잘못된 참조 수정
lvalentine6 Jul 16, 2025
70beb7d
fix: 스토리 예외 적용
lvalentine6 Jul 16, 2025
f716899
style: 주석 제거
lvalentine6 Jul 16, 2025
bde5624
feat: 상점 주소 중 구/동 정보 반환 기능 구현
leegwichan Jul 17, 2025
a3a831b
feat: 응원 다수 조회 기능 구현
leegwichan Jul 17, 2025
7e153e9
feat: 응원 다수 조회 API 구현
leegwichan Jul 17, 2025
aa62545
refactor: 가게 주소가 형식과 일치하지 않을 경우 구/동 정보를 빈 상태로 보냄
leegwichan Jul 17, 2025
9229209
chore: 변수명 오타 수정
leegwichan Jul 17, 2025
db817b8
docs: 에러 상황 문서 코드 수정
leegwichan Jul 17, 2025
5eff1e2
chore: 누락된 final 키워드 추가
leegwichan Jul 17, 2025
3944ac3
refactor(CheerController): size 개수의 유효성 검사 추가
leegwichan Jul 17, 2025
4ae9785
fix: 빌더 생성자 허용 범위 변경
lvalentine6 Jul 17, 2025
e527cf5
fix: StoryRepository 실제 객체 사용으로 수정
lvalentine6 Jul 17, 2025
453bacf
Merge pull request #80 from YAPP-Github/feat/PRODUCT-148
lvalentine6 Jul 17, 2025
ed196fe
build: Spring Validation 추가
leegwichan Jul 18, 2025
a72e7fe
feat: HandlerMethodValidationException 에러 처리
leegwichan Jul 18, 2025
af73c24
refactor: Repository 를 상속하여 사용하도록 변경
leegwichan Jul 18, 2025
0be77d8
Merge branch 'develop' into feat/PRODUCT-183
leegwichan Jul 18, 2025
4f238d9
[Feat] 응원 조회 API 구현
leegwichan Jul 18, 2025
a6098cb
test: Service Test 형식에 맞추어 수정
leegwichan Jul 18, 2025
559d98f
feat: 최신 응원에서 이미지 키 조회 기능 구현
leegwichan Jul 18, 2025
818f84f
feat: 최신 가게 조회 서비스 로직 구현
leegwichan Jul 18, 2025
7afaf90
feat: 최신 가게 조회 API 구현
leegwichan Jul 18, 2025
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
96 changes: 96 additions & 0 deletions .github/workflows/automatic-erd.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
name: ERD to GitHub Pages

on:
pull_request:
branches: [ "**" ]
paths: [ "**" ]

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

permissions:
contents: write
pull-requests: write

jobs:
generate-erd-from-flyway:
runs-on: ubuntu-latest

services:
mysql:
image: mysql:8.0
env:
MYSQL_USER: ${{ secrets.TEST_DB_USER }}
MYSQL_PASSWORD: ${{ secrets.TEST_DB_PASSWORD }}
MYSQL_ROOT_PASSWORD: ${{ secrets.TEST_DB_ROOT_PASSWORD }}
MYSQL_DATABASE: testdb
ports:
- 3306:3306
options: >-
--health-cmd="mysqladmin ping"
--health-interval=10s
--health-timeout=5s
--health-retries=3

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'temurin'

- name: Download Flyway
run: |
curl -sSL "https://repo1.maven.org/maven2/org/flywaydb/flyway-commandline/10.13.0/flyway-commandline-10.13.0-linux-x64.tar.gz" -o flyway.tar.gz
tar -xzf flyway.tar.gz
echo "$(pwd)/flyway-10.13.0" >> $GITHUB_PATH

- name: Run Flyway migrations
run: |
flyway -url="jdbc:mysql://127.0.0.1:3306/testdb?allowPublicKeyRetrieval=true&useSSL=false" -user=${{ secrets.TEST_DB_USER }} -password=${{ secrets.TEST_DB_PASSWORD }} -locations=filesystem:src/main/resources/db/migration migrate
shell: bash

- name: Dump database schema
run: |
mkdir -p erd
mysqldump -h 127.0.0.1 -u ${{ secrets.TEST_DB_USER }} -p${{ secrets.TEST_DB_PASSWORD }} --no-data --skip-comments testdb > erd/schema.sql

- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '20'

- name: Install DBML Tools
run: npm install -g @dbml/cli @softwaretechnik/dbml-renderer

- name: Convert SQL to DBML
run: |
npx sql2dbml erd/schema.sql --mysql -o erd/schema.dbml

- name: Render ERD to SVG
run: |
npx dbml-renderer -i erd/schema.dbml -o erd/erd.svg

- name: Generate HTML wrapper
run: |
echo "<html><head><title>ERD Preview</title></head><body><h2>ERD Preview for PR #${{ github.event.pull_request.number }}</h2><img src='erd.svg' style='max-width:100%;'/></body></html>" > erd/index.html

- name: Deploy ERD to GitHub Pages
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./erd
force_orphan: true

- name: Comment on PR with ERD Link
uses: peter-evans/create-or-update-comment@v4
with:
issue-number: ${{ github.event.pull_request.number }}
body: |
📌 최신 ERD가 자동 생성되었습니다.

👉 [ERD 보러가기](https://${{ github.repository_owner }}.github.io/${{ github.event.repository.name }}/)
31 changes: 17 additions & 14 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@ jacoco {

sonarqube {
properties {
property "sonar.projectKey", "baegam_timeeat"
property "sonar.organization", "baegam"
property "sonar.projectKey", "YAPP-Github_26th-Web-Team-1-BE"
property "sonar.organization", "yapp-github"
property "sonar.host.url", "https://sonarcloud.io"
property 'sonar.sourceEncoding', 'UTF-8'
property 'sonar.java.coveragePlugin', 'jacoco'
Expand Down Expand Up @@ -56,6 +56,7 @@ dependencies {
implementation 'org.springframework.boot:spring-boot-starter-actuator'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-validation'

// Lombok
compileOnly 'org.projectlombok:lombok'
Expand Down Expand Up @@ -85,6 +86,8 @@ dependencies {

// aws
implementation 'io.awspring.cloud:spring-cloud-aws-starter-parameter-store:3.2.1'
implementation 'io.awspring.cloud:spring-cloud-aws-starter-s3:3.2.1'
implementation 'software.amazon.awssdk:s3:2.31.77'
}

bootJar {
Expand Down Expand Up @@ -125,18 +128,18 @@ generateSwaggerUI {

openapi3 {
servers = [
{
url = "https://api-dev.eatda.net"
description = "Develop Server"
},
{
url = "https://api.eatda.net"
description = "Production Server"
},
{
url = "http://localhost:8080"
description = "Local Server"
}
{
url = "https://api-dev.eatda.net"
description = "Develop Server"
},
{
url = "https://api.eatda.net"
description = "Production Server"
},
{
url = "http://localhost:8080"
description = "Local Server"
}
]
title = "EatDa API"
description = "EatDa API 명세서"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
package timeeat;
package eatda;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class TimeEatApplication {
public class EatdaApplication {

public static void main(String[] args) {
SpringApplication.run(TimeEatApplication.class, args);
SpringApplication.run(EatdaApplication.class, args);
}
}
22 changes: 22 additions & 0 deletions src/main/java/eatda/client/map/KakaoProperties.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package eatda.client.map;

import lombok.Getter;
import org.springframework.boot.context.properties.ConfigurationProperties;

@Getter
@ConfigurationProperties(prefix = "kakao")
public class KakaoProperties {

private final String apiKey;

public KakaoProperties(String apiKey) {
validateApiKey(apiKey);
this.apiKey = apiKey;
}

private void validateApiKey(String apiKey) {
if (apiKey == null || apiKey.isBlank()) {
throw new IllegalArgumentException("API key must not be null or blank");
}
}
}
41 changes: 41 additions & 0 deletions src/main/java/eatda/client/map/MapClient.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package eatda.client.map;

import eatda.domain.store.Coordinates;
import java.util.List;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.http.HttpStatusCode;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestClient;

@Component
@EnableConfigurationProperties(KakaoProperties.class)
public class MapClient {

private final RestClient restClient;
private final KakaoProperties kakaoProperties;

public MapClient(RestClient.Builder restClient, KakaoProperties properties) {
this.restClient = restClient
.defaultStatusHandler(HttpStatusCode::is5xxServerError, new MapServerErrorHandler())
.build();
this.kakaoProperties = properties;
}

public List<StoreSearchResult> searchShops(String query) {
return restClient.get()
.uri("https://dapi.kakao.com/v2/local/search/keyword.json", builder -> builder
.queryParam("query", query)
.queryParam("category", "FD6")
.queryParam("rect", "%s,%s,%s,%s".formatted(
Coordinates.getMinLongitude(), Coordinates.getMinLatitude(),
Coordinates.getMaxLongitude(), Coordinates.getMaxLatitude()))
.queryParam("page", 1)
.queryParam("size", 15)
.queryParam("sort", "accuracy")
.build())
.header("Authorization", "KakaoAK " + kakaoProperties.getApiKey())
.retrieve()
.body(StoreSearchResults.class)
.results();
}
}
16 changes: 16 additions & 0 deletions src/main/java/eatda/client/map/MapServerErrorHandler.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package eatda.client.map;

import eatda.exception.BusinessErrorCode;
import eatda.exception.BusinessException;
import java.io.IOException;
import org.springframework.http.HttpRequest;
import org.springframework.http.client.ClientHttpResponse;
import org.springframework.web.client.RestClient.ResponseSpec.ErrorHandler;

public class MapServerErrorHandler implements ErrorHandler {

@Override
public void handle(HttpRequest request, ClientHttpResponse response) throws IOException {
throw new BusinessException(BusinessErrorCode.MAP_SERVER_ERROR);
}
}
30 changes: 30 additions & 0 deletions src/main/java/eatda/client/map/StoreSearchResult.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package eatda.client.map;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;

@JsonIgnoreProperties(ignoreUnknown = true)
public record StoreSearchResult(
@JsonProperty("id") String kakaoId,
@JsonProperty("category_group_code") String categoryGroupCode,
@JsonProperty("category_name") String categoryName,
@JsonProperty("phone") String phoneNumber,
@JsonProperty("place_name") String name,
@JsonProperty("place_url") String placeUrl,
@JsonProperty("address_name") String lotNumberAddress,
@JsonProperty("road_address_name") String roadAddress,
@JsonProperty("y") double latitude,
@JsonProperty("x") double longitude
) {

public boolean isFoodStore() {
return "FD6".equals(categoryGroupCode);
}

public boolean isInSeoul() {
if (lotNumberAddress == null || lotNumberAddress.isBlank()) {
return false;
}
return lotNumberAddress.trim().startsWith("서울");
}
}
9 changes: 9 additions & 0 deletions src/main/java/eatda/client/map/StoreSearchResults.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package eatda.client.map;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List;

@JsonIgnoreProperties(ignoreUnknown = true)
public record StoreSearchResults(@JsonProperty("documents") List<StoreSearchResult> results) {
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package timeeat.client.oauth;
package eatda.client.oauth;

import eatda.exception.BusinessErrorCode;
import eatda.exception.BusinessException;
import java.net.URI;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.http.HttpStatusCode;
Expand All @@ -9,8 +11,6 @@
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestClient;
import org.springframework.web.util.UriComponentsBuilder;
import timeeat.exception.BusinessErrorCode;
import timeeat.exception.BusinessException;

@Component
@EnableConfigurationProperties(OauthProperties.class)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
package timeeat.client.oauth;
package eatda.client.oauth;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import timeeat.domain.member.Member;
import eatda.domain.member.Member;

@JsonDeserialize(using = OauthMemberInformationDeserializer.class)
@JsonIgnoreProperties(ignoreUnknown = true)
public record OauthMemberInformation(long socialId, String nickname) {
public record OauthMemberInformation(long socialId, String email, String nickname) {

public Member toMember() {
return new Member(Long.toString(socialId), nickname);
return new Member(Long.toString(socialId), email, nickname);
}
}

Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package timeeat.client.oauth;
package eatda.client.oauth;

import java.io.IOException;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;
import com.fasterxml.jackson.databind.JsonNode;
import java.io.IOException;

public class OauthMemberInformationDeserializer extends JsonDeserializer<OauthMemberInformation> {

Expand All @@ -14,11 +14,15 @@ public OauthMemberInformation deserialize(JsonParser jsonParser,
JsonNode root = jsonParser.getCodec().readTree(jsonParser);

long id = root.path("id").asLong();
String email = root
.path("kakao_account")
.path("email")
.asText(null);
String nickname = root
.path("kakao_account")
.path("profile")
.path("nickname")
.asText(null);
return new OauthMemberInformation(id, nickname);
return new OauthMemberInformation(id, email, nickname);
}
}
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package timeeat.client.oauth;
package eatda.client.oauth;

import eatda.exception.InitializeException;
import java.net.URI;
import java.util.List;
import lombok.Getter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import timeeat.exception.InitializeException;

@Getter
@ConfigurationProperties(prefix = "oauth")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
package timeeat.client.oauth;
package eatda.client.oauth;

import eatda.exception.BusinessErrorCode;
import eatda.exception.BusinessException;
import java.io.IOException;
import org.springframework.http.HttpRequest;
import org.springframework.http.client.ClientHttpResponse;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestClient.ResponseSpec.ErrorHandler;
import timeeat.exception.BusinessErrorCode;
import timeeat.exception.BusinessException;

@Component
public class OauthServerErrorHandler implements ErrorHandler {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package timeeat.client.oauth;
package eatda.client.oauth;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
Expand Down
Loading
Loading