Skip to content

Commit

Permalink
merge: 머지 컨플릭트 해결
Browse files Browse the repository at this point in the history
  • Loading branch information
hyeonjerry committed Jul 31, 2023
2 parents 180a12b + 6adedd7 commit bcc8b67
Show file tree
Hide file tree
Showing 53 changed files with 1,638 additions and 66 deletions.
8 changes: 8 additions & 0 deletions .github/workflows/backend-dev-deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,14 @@ jobs:
- name: 백엔드 메인으로 checkout
uses: actions/checkout@v3

- name: firebase key 생성
run: |
echo "$FIREBASE_KEY" > firebase-kerdy.json
- name: firebase key 이동
run: |
cp firebase-kerdy.json src/main/resources
- name: JDK 11로 설정
uses: actions/setup-java@v3
with:
Expand Down
3 changes: 3 additions & 0 deletions backend/emm-sale/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,9 @@ dependencies {

// jwt
implementation 'io.jsonwebtoken:jjwt:0.9.1'

// firebase
implementation 'com.google.firebase:firebase-admin:9.2.0'
}

tasks.named('test') {
Expand Down
74 changes: 74 additions & 0 deletions backend/emm-sale/src/docs/asciidoc/index.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ include::{snippets}/add-activity/response-fields.adoc[]

=== `DELETE`: Activity 삭제 API

=== `DELETE`: 커리어 삭제 API

.HTTP request 설명
include::{snippets}/delete-activity/request-fields.adoc[]

Expand Down Expand Up @@ -82,6 +84,17 @@ include::{snippets}/update-open-profile-url/http-request.adoc[]
.HTTP response
include::{snippets}/update-open-profile-url/http-response.adoc[]

=== `PUT`: 사용자의 한줄 자기소개 업데이트

.HTTP request 설명
include::{snippets}/update-description/request-fields.adoc[]

.HTTP request
include::{snippets}/update-description/http-request.adoc[]

.HTTP response
include::{snippets}/update-description/http-response.adoc[]

=== `GET`: 특정 사용자의 프로필 정보 조회

.HTTP request
Expand Down Expand Up @@ -232,3 +245,64 @@ include::{snippets}/modify-comment/http-response.adoc[]

.HTTP response 설명
include::{snippets}/modify-comment/response-fields.adoc[]

== Login

=== `POST` : 로그인 및 가입

.HTTP request
include::{snippets}/login-snippet/http-request.adoc[]

.HTTP response
include::{snippets}/login-snippet/http-response.adoc[]

.HTTP response
include::{snippets}/login-snippet/response-fields.adoc[]

== Notification(FCM)

=== `POST` : 알림 저장

.HTTP request 설명
include::{snippets}/create-notification/request-fields.adoc[]

.HTTP request
include::{snippets}/create-notification/http-request.adoc[]

.HTTP response 설명
include::{snippets}/create-notification/response-fields.adoc[]

.HTTP response
include::{snippets}/create-notification/http-response.adoc[]

=== `PATCH` : 알림 상태 변경

.HTTP request 설명
include::{snippets}/modify-notification/request-fields.adoc[]

.HTTP request
include::{snippets}/modify-notification/http-request.adoc[]

include::{snippets}/modify-notification/path-parameters.adoc[]

=== `POST` : FcmToken 생성

.HTTP request 설명
include::{snippets}/create-fcmToken/request-fields.adoc[]

.HTTP request
include::{snippets}/create-fcmToken/http-request.adoc[]

=== `GET` : notification id로 알림 조회

.HTTP request
include::{snippets}/find-notification/http-request.adoc[]

include::{snippets}/find-notification/path-parameters.adoc[]

.HTTP response 설명
include::{snippets}/find-notification/response-fields.adoc[]

.HTTP response
include::{snippets}/find-notification/http-response.adoc[]

Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.emmsale.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;

@Configuration
public class RestTemplateConfig {

@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -78,10 +78,9 @@ public List<EventResponse> findEvents(final LocalDate nowDate, final int year, f
validateYearAndMonth(year, month);
final List<Event> events = filterEventsByTag(tagName);

final EnumMap<EventStatus, List<Event>> sortAndGroupByStatus
final EnumMap<EventStatus, List<Event>> eventsForEventStatus
= groupByEventStatus(nowDate, events, year, month);

return filterEventResponsesByStatus(statusName, sortAndGroupByStatus);
return filterEventResponsesByStatus(statusName, eventsForEventStatus);
}

@Transactional(readOnly = true)
Expand Down Expand Up @@ -148,13 +147,20 @@ private boolean isBeforeOrEquals(final LocalDate criteria, final LocalDate compa
}

private List<EventResponse> filterEventResponsesByStatus(final String statusName,
final EnumMap<EventStatus, List<Event>> sortAndGroupByEventStatus) {
final EnumMap<EventStatus, List<Event>> eventsForEventStatus) {
if (isExistStatusName(statusName)) {
final EventStatus status = EventStatus.from(statusName);
return EventResponse.makeEventResponsesByStatus(status,
sortAndGroupByEventStatus.get(status));
EventStatus status = EventStatus.from(statusName);
List<Event> filteredEvents = eventsForEventStatus.get(status);
if (cannotFoundKeyStatus(filteredEvents)) {
return List.of();
}
return EventResponse.makeEventResponsesByStatus(status, filteredEvents);
}
return EventResponse.mergeEventResponses(sortAndGroupByEventStatus);
return EventResponse.mergeEventResponses(eventsForEventStatus);
}

private boolean cannotFoundKeyStatus(final List<Event> filteredEvents) {
return filteredEvents == null;
}

private boolean isExistStatusName(final String statusName) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ public static EventStatus from(final String value) {
.orElseThrow(() -> new EventException(INVALID_STATUS));
}

public boolean isSameValue(String value) {
private boolean isSameValue(String value) {
return this.value.equals(value);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,5 @@
@Repository
public interface EventRepository extends JpaRepository<Event, Long> {

boolean existsById(final Long eventId);
}
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ public TokenResponse createToken(final String code) {

return new TokenResponse(
memberQueryResponse.getMemberId(),
memberQueryResponse.isNewMember(),
memberQueryResponse.isOnboarded(),
accessToken
);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,7 @@ public Long getGithubId() {
public Member toMember() {
return new Member(
getGithubId(),
getImageUrl(),
getUsername()
getImageUrl()
);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,5 @@
public class MemberQueryResponse {

private long memberId;
private boolean isNewMember;
private boolean isOnboarded;
}
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
package com.emmsale.login.application.dto;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.RequiredArgsConstructor;

@AllArgsConstructor
@RequiredArgsConstructor
@Getter
public class TokenResponse {

private long memberId;
private boolean isNewMember;
private String accessToken;
private final long memberId;
private final boolean onboarded;
private final String accessToken;
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import com.emmsale.login.application.dto.GithubProfileResponse;
import com.emmsale.login.exception.LoginException;
import com.emmsale.login.exception.LoginExceptionType;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
Expand All @@ -15,10 +16,9 @@
import org.springframework.web.client.RestTemplate;

@Component
@RequiredArgsConstructor
public class GithubClient {

private static final RestTemplate REST_TEMPLATE = new RestTemplate();

@Value("${github.client.id}")
private String clientId;
@Value("${github.client.secret}")
Expand All @@ -28,6 +28,8 @@ public class GithubClient {
@Value("${github.url.profile}")
private String profileUrl;

private final RestTemplate restTemplate;

public String getAccessTokenFromGithub(final String code) {
final GithubAccessTokenRequest githubAccessTokenRequest = buildGithubAccessTokenRequest(code);

Expand All @@ -54,7 +56,7 @@ private GithubProfileResponse getGithubProfileResponse(final String accessToken)

final HttpEntity<String> httpEntity = new HttpEntity<>(headers);

return REST_TEMPLATE
return restTemplate
.exchange(profileUrl, HttpMethod.GET, httpEntity, GithubProfileResponse.class)
.getBody();
}
Expand All @@ -76,7 +78,7 @@ private String getAccessTokenResponse(final GithubAccessTokenRequest githubAcces
headers
);

return REST_TEMPLATE
return restTemplate
.exchange(accessTokenUrl, HttpMethod.POST, httpEntity, GithubAccessTokenResponse.class)
.getBody()
.getAccessToken();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import com.emmsale.member.application.MemberActivityService;
import com.emmsale.member.application.MemberQueryService;
import com.emmsale.member.application.MemberUpdateService;
import com.emmsale.member.application.dto.DescriptionRequest;
import com.emmsale.member.application.dto.MemberActivityAddRequest;
import com.emmsale.member.application.dto.MemberActivityDeleteRequest;
import com.emmsale.member.application.dto.MemberActivityInitialRequest;
Expand Down Expand Up @@ -72,6 +73,15 @@ public ResponseEntity<Void> updateOpenProfileUrl(
return ResponseEntity.noContent().build();
}

@PutMapping("/members/description")
public ResponseEntity<Void> updateDescription(
final Member member,
@RequestBody final DescriptionRequest descriptionRequest
) {
memberUpdateService.updateDescription(member, descriptionRequest);
return ResponseEntity.noContent().build();
}

@GetMapping("/members/{member-id}")
public ResponseEntity<MemberProfileResponse> findProfile(
@PathVariable("member-id") final Long memberId) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
import com.emmsale.member.domain.MemberRepository;
import com.emmsale.member.exception.MemberException;
import com.emmsale.member.exception.MemberExceptionType;
import java.util.Optional;
import javax.persistence.EntityNotFoundException;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
Expand All @@ -27,15 +26,11 @@ public Member findById(final Long memberId) {
//TODO: 다른 클래스로 메서드 분리
@Transactional
public MemberQueryResponse findOrCreateMember(
final GithubProfileResponse githubProfileFromGithub) {
final Optional<Member> optionalMember = memberRepository.findByGithubId(
githubProfileFromGithub.getGithubId());
if (optionalMember.isPresent()) {
final Member member = optionalMember.get();
return new MemberQueryResponse(member.getId(), false);
}
final Member member = memberRepository.save(githubProfileFromGithub.toMember());
return new MemberQueryResponse(member.getId(), true);
final GithubProfileResponse githubProfileFromGithub
) {
final Member member = memberRepository.findByGithubId(githubProfileFromGithub.getGithubId())
.orElseGet(() -> memberRepository.save(githubProfileFromGithub.toMember()));
return new MemberQueryResponse(member.getId(), member.isOnboarded());
}

public MemberProfileResponse findProfile(Long memberId) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
package com.emmsale.member.application;

import com.emmsale.member.application.dto.DescriptionRequest;
import com.emmsale.member.application.dto.OpenProfileUrlRequest;
import com.emmsale.member.domain.Member;
import com.emmsale.member.domain.MemberRepository;
import com.emmsale.member.exception.MemberException;
import com.emmsale.member.exception.MemberExceptionType;
import javax.transaction.Transactional;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
Expand All @@ -18,9 +21,18 @@ public void updateOpenProfileUrl(
final Member member,
final OpenProfileUrlRequest openProfileUrlRequest
) {
final Member persistMember = memberRepository.findById(member.getId()).get();
final Member persistMember = memberRepository.findById(member.getId())
.orElseThrow(() -> new MemberException((MemberExceptionType.NOT_FOUND_MEMBER)));
final String openProfileUrl = openProfileUrlRequest.getOpenProfileUrl();

persistMember.updateOpenProfileUrl(openProfileUrl);
}

public void updateDescription(final Member member, final DescriptionRequest descriptionRequest) {
final String description = descriptionRequest.getDescription();

final Member persistMember = memberRepository.findById(member.getId())
.orElseThrow(() -> new MemberException((MemberExceptionType.NOT_FOUND_MEMBER)));
persistMember.updateDescription(description);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package com.emmsale.member.application.dto;

import lombok.Getter;
import lombok.NoArgsConstructor;

@Getter
@NoArgsConstructor
public class DescriptionRequest {

private String description;

public DescriptionRequest(final String description) {
this.description = description;
}
}
Loading

0 comments on commit bcc8b67

Please sign in to comment.