crusader 1f0fa4dbbf ing
2019-07-17 00:06:28 +09:00

73 lines
2.8 KiB
Java

package com.loafle.totopia.member.controller;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.validation.Valid;
import com.loafle.totopia.commons.exception.ResourceNotFoundException;
import com.loafle.totopia.member.dao.MemberRepository;
import com.loafle.totopia.member.model.Member;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/api/v1")
public class MemberController {
@Autowired
private MemberRepository memberRepository;
@GetMapping("/members")
public List<Member> getAllMembers() {
return memberRepository.findAll();
}
@GetMapping("/members/{id}")
public ResponseEntity<Member> getMemberById(@PathVariable(value = "id") Long memberId)
throws ResourceNotFoundException {
Member member = memberRepository.findById(memberId)
.orElseThrow(() -> new ResourceNotFoundException("Member not found for this id :: " + memberId));
return ResponseEntity.ok().body(member);
}
@PostMapping("/members")
public Member createMember(@Valid @RequestBody Member member) {
return memberRepository.save(member);
}
@PutMapping("/members/{id}")
public ResponseEntity<Member> updateMember(@PathVariable(value = "id") Long memberId,
@Valid @RequestBody Member memberDetails) throws ResourceNotFoundException {
Member member = memberRepository.findById(memberId)
.orElseThrow(() -> new ResourceNotFoundException("Member not found for this id :: " + memberId));
member.setEmailId(memberDetails.getEmailId());
member.setLastName(memberDetails.getLastName());
member.setFirstName(memberDetails.getFirstName());
final Member updatedMember = memberRepository.save(member);
return ResponseEntity.ok(updatedMember);
}
@DeleteMapping("/members/{id}")
public Map<String, Boolean> deleteMember(@PathVariable(value = "id") Long memberId)
throws ResourceNotFoundException {
Member member = memberRepository.findById(memberId)
.orElseThrow(() -> new ResourceNotFoundException("Member not found for this id :: " + memberId));
memberRepository.delete(member);
Map<String, Boolean> response = new HashMap<>();
response.put("deleted", Boolean.TRUE);
return response;
}
}