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,19 +1,20 @@
package com.mycom.backenddaengplace.favorite.controller;


import com.mycom.backenddaengplace.auth.dto.CustomOAuth2User;
import com.mycom.backenddaengplace.common.dto.ApiResponse;
import com.mycom.backenddaengplace.favorite.dto.request.FavoriteDeleteRequest;
import com.mycom.backenddaengplace.favorite.dto.request.FavoriteRegisterRequest;
import com.mycom.backenddaengplace.favorite.dto.request.FavoritesRequest;
import com.mycom.backenddaengplace.favorite.dto.request.FavoriteRequest;
import com.mycom.backenddaengplace.favorite.dto.response.FavoriteDeleteResponse;
import com.mycom.backenddaengplace.favorite.dto.response.FavoriteRegisterResponse;
import com.mycom.backenddaengplace.favorite.dto.response.FavoritesResponse;
import com.mycom.backenddaengplace.favorite.service.FavoriteService;
import com.mycom.backenddaengplace.member.domain.Member;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.security.core.annotation.AuthenticationPrincipal;
import org.springframework.web.bind.annotation.*;

import java.util.List;
Expand All @@ -26,30 +27,34 @@ public class FavoriteController {

private final FavoriteService favoriteService;

@GetMapping("/{memberId}")
@GetMapping
public ResponseEntity<ApiResponse<List<FavoritesResponse>>> getFavoritesByMember(
@PathVariable("memberId") Long memberId
@AuthenticationPrincipal CustomOAuth2User customOAuth2User
) {
log.debug("์ฆ๊ฒจ์ฐพ๊ธฐ ๋ฆฌ์ŠคํŠธ ์š”์ฒญ: {}", memberId);
List<FavoritesResponse> response = favoriteService.getFavoritesByMember(memberId);
Member member = customOAuth2User.getMember();
List<FavoritesResponse> response = favoriteService.getFavoritesByMember(member);
return ResponseEntity.ok(ApiResponse.success("์ฆ๊ฒจ์ฐพ๊ธฐ ๋ฆฌ์ŠคํŠธ๋ฅผ ์กฐํšŒํ•˜์˜€์Šต๋‹ˆ๋‹ค.", response));
}

@PutMapping
public ResponseEntity<ApiResponse<FavoriteRegisterResponse>> registerFavorite(
@Valid @RequestBody FavoriteRegisterRequest request
@Valid @RequestBody FavoriteRequest request,
@AuthenticationPrincipal CustomOAuth2User customOAuth2User
) {
Member member = customOAuth2User.getMember();
log.debug("์ฆ๊ฒจ์ฐพ๊ธฐ ๋“ฑ๋ก ์š”์ฒญ: {}", request);
FavoriteRegisterResponse response = favoriteService.registerFavorite(request);
FavoriteRegisterResponse response = favoriteService.registerFavorite(request, member);
return ResponseEntity.status(HttpStatus.CREATED).body(ApiResponse.success("์ฆ๊ฒจ์ฐพ๊ธฐ๊ฐ€ ๋“ฑ๋ก๋˜์—ˆ์Šต๋‹ˆ๋‹ค.", response));
}

@DeleteMapping
public ResponseEntity<ApiResponse<FavoriteDeleteResponse>> deleteFavorite(
@Valid @RequestBody FavoriteDeleteRequest request
@Valid @RequestBody FavoriteRequest request,
@AuthenticationPrincipal CustomOAuth2User customOAuth2User
) {
Member member = customOAuth2User.getMember();
log.debug("์ฆ๊ฒจ์ฐพ๊ธฐ ์‚ญ์ œ ์š”์ฒญ: {}", request);
favoriteService.deleteFavorite(request);
favoriteService.deleteFavorite(request, member);
return ResponseEntity.ok(ApiResponse.success("์ฆ๊ฒจ์ฐพ๊ธฐ๊ฐ€ ์‚ญ์ œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค."));
}

Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,8 @@

@Getter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class FavoriteDeleteRequest {
public class FavoriteRequest {

private Long memberId;
private Long placeId;

}
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
package com.mycom.backenddaengplace.favorite.service;

import com.mycom.backenddaengplace.favorite.domain.Favorite;
import com.mycom.backenddaengplace.favorite.dto.request.FavoriteDeleteRequest;
import com.mycom.backenddaengplace.favorite.dto.request.FavoriteRegisterRequest;
import com.mycom.backenddaengplace.favorite.dto.request.FavoriteRequest;
import com.mycom.backenddaengplace.favorite.dto.response.FavoriteRegisterResponse;
import com.mycom.backenddaengplace.favorite.dto.response.FavoritesResponse;
import com.mycom.backenddaengplace.favorite.exception.FavoriteAlreadyExistException;
Expand Down Expand Up @@ -32,23 +31,23 @@ public class FavoriteService {
private final PlaceRepository placeRepository;

@Transactional
public FavoriteRegisterResponse registerFavorite(FavoriteRegisterRequest request) {
Member member = findMemberById(request.getMemberId());
public FavoriteRegisterResponse registerFavorite(FavoriteRequest request, Member member) {
Member registerMember = findMemberById(member.getId());
Place place = findPlaceById(request.getPlaceId());

return FavoriteRegisterResponse.from(handleRegisterFavorite(member, place));
return FavoriteRegisterResponse.from(handleRegisterFavorite(registerMember, place));
}

@Transactional
public void deleteFavorite(FavoriteDeleteRequest request) {
Member member = findMemberById(request.getMemberId());
public void deleteFavorite(FavoriteRequest request, Member member) {
Member deleteMember = findMemberById(member.getId());
Place place = findPlaceById(request.getPlaceId());
handleDeleteFavorite(member, place);
handleDeleteFavorite(deleteMember, place);

}

public List<FavoritesResponse> getFavoritesByMember(Long memberId) {
Member member = findMemberById(memberId);
public List<FavoritesResponse> getFavoritesByMember(Member member) {
// Member member = findMemberById(memberId);
return favoriteRepository.findFavoritesByMemberId(member.getId()).stream().map(FavoritesResponse::from).collect(Collectors.toList());
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
package com.mycom.backenddaengplace.member.controller;


import com.mycom.backenddaengplace.auth.dto.CustomOAuth2User;
import com.mycom.backenddaengplace.common.dto.ApiResponse;
import com.mycom.backenddaengplace.member.domain.Member;
import com.mycom.backenddaengplace.member.dto.request.BaseEmailRequest;
import com.mycom.backenddaengplace.member.dto.request.EmailCodeCheckRequest;
import com.mycom.backenddaengplace.member.dto.request.MemberRegisterRequest;
import com.mycom.backenddaengplace.member.dto.request.MemberReviseRequest;
import com.mycom.backenddaengplace.member.dto.request.MemberUpdateRequest;
import com.mycom.backenddaengplace.member.dto.response.EmailCodeCheckResponse;
import com.mycom.backenddaengplace.member.dto.response.EmailDuplicateCheckResponse;
import com.mycom.backenddaengplace.member.dto.response.BaseMemberResponse;
Expand All @@ -17,6 +19,7 @@
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.ResponseEntity;
import org.springframework.security.core.annotation.AuthenticationPrincipal;
import org.springframework.web.bind.annotation.*;

import java.io.UnsupportedEncodingException;
Expand All @@ -30,27 +33,35 @@ public class MemberController {
private final MemberService memberService;
private final EmailService emailService;

@GetMapping("/profile/{memberId}")
public ResponseEntity<ApiResponse<BaseMemberResponse>> getMember(@PathVariable("memberId") Long memberId) {
BaseMemberResponse response = memberService.getMember(memberId);
@GetMapping("/profile")
public ResponseEntity<ApiResponse<BaseMemberResponse>> getMember(
@AuthenticationPrincipal CustomOAuth2User customOAuth2User
) {
Member member = customOAuth2User.getMember();
BaseMemberResponse response = memberService.getMember(member);
return ResponseEntity.ok(ApiResponse.success("ํšŒ์› ์กฐํšŒ๊ฐ€ ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.", response));
}

@PostMapping("/profile/{memberId}")
public ResponseEntity<ApiResponse<BaseMemberResponse>> reviseMember(
@Valid @RequestBody MemberReviseRequest request, @PathVariable("memberId") Long memberId) {
BaseMemberResponse response = memberService.reviseMember(request, memberId);
@PostMapping("/profile")
public ResponseEntity<ApiResponse<BaseMemberResponse>> updateMember(
@Valid @RequestBody MemberUpdateRequest request,
@AuthenticationPrincipal CustomOAuth2User customOAuth2User
) {
Member member = customOAuth2User.getMember();
BaseMemberResponse response = memberService.reviseMember(request, member);
return ResponseEntity.ok(ApiResponse.success("ํšŒ์› ์ˆ˜์ •์ด ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.", response));
}

@DeleteMapping("/profile/{memberId}")
@DeleteMapping("/profile")
public ResponseEntity<ApiResponse<BaseMemberResponse>> deleteMember(
@PathVariable("memberId") Long memberId) {
BaseMemberResponse response = memberService.deleteMember(memberId);
@AuthenticationPrincipal CustomOAuth2User customOAuth2User
) {
Member member = customOAuth2User.getMember();
BaseMemberResponse response = memberService.deleteMember(member);
return ResponseEntity.ok(ApiResponse.success("ํšŒ์› ์‚ญ์ œ๊ฐ€ ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.", response));
}

@PostMapping("/profile")
@PostMapping("")
public ResponseEntity<ApiResponse<BaseMemberResponse>> registerMember(
@Valid @RequestBody MemberRegisterRequest request
) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@

@Entity
@Getter
@Setter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class Member extends BaseEntity {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

@Getter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class MemberReviseRequest {
public class MemberUpdateRequest {

@NotBlank(message = "๋ณ„๋ช…์„ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”.")
@Size(min = 2, max = 20, message = "๋ณ„๋ช…์€ 2์ž ์ด์ƒ 20์ž ์ดํ•˜๋กœ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”.")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import com.mycom.backenddaengplace.member.domain.Member;
import com.mycom.backenddaengplace.member.dto.request.BaseEmailRequest;
import com.mycom.backenddaengplace.member.dto.request.MemberRegisterRequest;
import com.mycom.backenddaengplace.member.dto.request.MemberReviseRequest;
import com.mycom.backenddaengplace.member.dto.request.MemberUpdateRequest;
import com.mycom.backenddaengplace.member.dto.response.BaseMemberResponse;
import com.mycom.backenddaengplace.member.dto.response.EmailDuplicateCheckResponse;
import com.mycom.backenddaengplace.member.exception.MemberNotFoundException;
Expand All @@ -25,34 +25,29 @@ public class MemberService {

private final MemberRepository memberRepository;

public BaseMemberResponse getMember(Long memberId) {
Member member = memberRepository.findById(memberId).orElseThrow(() -> new MemberNotFoundException(memberId));
public BaseMemberResponse getMember(Member member) {
// Member member = memberRepository.findById(memberId).orElseThrow(() -> new MemberNotFoundException(memberId));

return BaseMemberResponse.from(member);
}

@Transactional
public BaseMemberResponse reviseMember(MemberReviseRequest request, Long memberId) {
public BaseMemberResponse reviseMember(MemberUpdateRequest request, Member member) {

Member member = memberRepository.findById(memberId).orElseThrow(() -> new MemberNotFoundException(memberId));
Member updatedMember = memberRepository.findById(member.getId()).orElseThrow(() -> new MemberNotFoundException(member.getId()));

LocalDateTime birthDate = parseBirthDate(request.getBirthDate());

Member revisedMember = Member.builder()
.email(member.getEmail())
.name(member.getName())
.nickname(request.getNickname())
.birthDate(birthDate)
.gender(request.getGender())
.state(request.getState())
.city(request.getCity())
.profileImageUrl(request.getProfileImageUrl())
.locationStatus(member.getLocationStatus())
.build();
updatedMember.setNickname(request.getNickname());
updatedMember.setGender(request.getGender());
updatedMember.setState(request.getState());
updatedMember.setCity(request.getCity());
updatedMember.setBirthDate(birthDate);
updatedMember.setProfileImageUrl(request.getProfileImageUrl());

memberRepository.save(revisedMember);
memberRepository.save(updatedMember);

return BaseMemberResponse.from(revisedMember);
return BaseMemberResponse.from(updatedMember);
}

@Transactional
Expand Down Expand Up @@ -93,10 +88,13 @@ public EmailDuplicateCheckResponse checkDuplicateEmail(BaseEmailRequest request)
return EmailDuplicateCheckResponse.from(!isValid);
}

public BaseMemberResponse deleteMember(Long memberId) {
Member member = memberRepository.findById(memberId).orElseThrow(() -> new MemberNotFoundException(memberId));
memberRepository.delete(member);
@Transactional
public BaseMemberResponse deleteMember(Member member) {

return BaseMemberResponse.from(member);
Member deletedMember = memberRepository.findById(member.getId()).orElseThrow(() -> new MemberNotFoundException(member.getId()));

memberRepository.delete(deletedMember);

return BaseMemberResponse.from(deletedMember);
}
}
Loading