───────┬────────────────────────────────────────────────────────────────────────
       File: src/main//java/jp/ac/kobe_u/cs/itspecialist/todoapp/service/MemberService.java
───────┼────────────────────────────────────────────────────────────────────────
   1    package jp.ac.kobe_u.cs.itspecialist.todoapp.service;
   2    
   3    import java.util.List;
   4    
   5    import org.springframework.beans.factory.annotation.Autowired;
   6    import org.springframework.stereotype.Service;
   7    
   8    import jp.ac.kobe_u.cs.itspecialist.todoapp.dto.MemberForm;
   9    import jp.ac.kobe_u.cs.itspecialist.todoapp.entity.Member;
  10    import jp.ac.kobe_u.cs.itspecialist.todoapp.exception.ToDoAppException;
  11    import jp.ac.kobe_u.cs.itspecialist.todoapp.repository.MemberRepository;
  12    
  13    /**
  14     * メンバーのCRUDを行うサービス
  15     */
  16    @Service
  17    public class MemberService {
  18        @Autowired
  19        MemberRepository mRepo;
  20    
  21        /**
  22         * メンバーを作成する (C)
  23         * @param form
  24         * @return
  25         */
  26        public Member createMember(MemberForm form) {
  27            //IDの重複チェック
  28            String mid = form.getMid();
  29            if (mRepo.existsById(mid)) {
  30                throw new ToDoAppException(ToDoAppException.MEMBER_ALREADY_EXISTS, mid + ": Member already exists");
  31            }
  32    
  33            Member m = form.toEntity();
  34            return mRepo.save(m);
  35        }
  36    
  37        /**
  38         * メンバーを取得する (R)
  39         * @param mid
  40         * @return
  41         */
  42        public Member getMember(String mid) {
  43            Member m = mRepo.findById(mid).orElseThrow(
  44                    () -> new ToDoAppException(ToDoAppException.NO_SUCH_MEMBER_EXISTS, mid + ": No such member exists"));
  45            return m;
  46        }
  47    
  48        /**
  49         * 全メンバーを取得する (R)
  50         * @return
  51         */
  52        public List<Member> getAllMembers() {
  53            return mRepo.findAll();
  54        }
  55    
  56        /**
  57         * メンバーを削除する (D)
  58         */
  59        public void deleteMember(String mid) {
  60            Member m = getMember(mid);
  61            mRepo.delete(m);
  62        }
  63    
  64    }
───────┴────────────────────────────────────────────────────────────────────────