diff --git a/jpashop/src/main/java/com/example/jpashop/api/MemberApiController.java b/jpashop/src/main/java/com/example/jpashop/api/MemberApiController.java index 6ee5ed51..5642238f 100644 --- a/jpashop/src/main/java/com/example/jpashop/api/MemberApiController.java +++ b/jpashop/src/main/java/com/example/jpashop/api/MemberApiController.java @@ -3,9 +3,7 @@ package com.example.jpashop.api; import com.example.jpashop.domain.Member; import com.example.jpashop.service.MemberService; import lombok.RequiredArgsConstructor; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.validation.Valid; @@ -31,4 +29,15 @@ public class MemberApiController { Long id = memberService.join(member); return new CreateMemberResponse(id); } + + @PatchMapping("/api/v2/members/{id}") + public UpdateMemberResponse updateMemberV2( + @PathVariable("id") Long id, + @RequestBody @Valid updateMemberRequest request) { + + memberService.update(id, request); + Member findMember = memberService.findOne(id); + return new UpdateMemberResponse(findMember.getId(), findMember.getName()); + } + } diff --git a/jpashop/src/main/java/com/example/jpashop/api/UpdateMemberResponse.java b/jpashop/src/main/java/com/example/jpashop/api/UpdateMemberResponse.java new file mode 100644 index 00000000..2c0a5719 --- /dev/null +++ b/jpashop/src/main/java/com/example/jpashop/api/UpdateMemberResponse.java @@ -0,0 +1,12 @@ +package com.example.jpashop.api; + +import lombok.AllArgsConstructor; +import lombok.Data; + +@Data +@AllArgsConstructor +public class UpdateMemberResponse { + + private Long id; + private String name; +} diff --git a/jpashop/src/main/java/com/example/jpashop/api/updateMemberRequest.java b/jpashop/src/main/java/com/example/jpashop/api/updateMemberRequest.java new file mode 100644 index 00000000..8d6d2b60 --- /dev/null +++ b/jpashop/src/main/java/com/example/jpashop/api/updateMemberRequest.java @@ -0,0 +1,10 @@ +package com.example.jpashop.api; + +import lombok.AllArgsConstructor; +import lombok.Data; + +@Data +public class updateMemberRequest { + + private String name; +} diff --git a/jpashop/src/main/java/com/example/jpashop/service/MemberService.java b/jpashop/src/main/java/com/example/jpashop/service/MemberService.java index 662920c4..152de291 100644 --- a/jpashop/src/main/java/com/example/jpashop/service/MemberService.java +++ b/jpashop/src/main/java/com/example/jpashop/service/MemberService.java @@ -1,5 +1,6 @@ package com.example.jpashop.service; +import com.example.jpashop.api.updateMemberRequest; import com.example.jpashop.domain.Member; import com.example.jpashop.repository.MemberRepository; import lombok.RequiredArgsConstructor; @@ -47,4 +48,11 @@ public class MemberService { public Member findOne(Long memberId) { return memberRepository.findOne(memberId); } + + @Transactional + public void update(Long id, updateMemberRequest request) { + + Member member = memberRepository.findOne(id); + member.setName(request.getName()); + } }