[Day 16]新试剂服英战士(後端篇)

挑战目标: MockNative Camp


昨天我们建立了CommonResponse.java来做为我们的通一response格式,今天我们修改了UsersService.java来测试一下是否跟我们想的一样。

package com.mock.nativecamp.service;

import com.mock.nativecamp.model.Users;
import com.mock.nativecamp.payload.CommonResponse;
import com.mock.nativecamp.payload.sub.ResData;
import com.mock.nativecamp.payload.user.PatchReq;
import com.mock.nativecamp.payload.user.SignupReq;
import com.mock.nativecamp.repository.UsersRepository;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;

@Slf4j
@Service
public class UsersService {

    @Autowired
    private UsersRepository usersRepository;

    public CommonResponse signupUser(SignupReq signupReq) {
        Users user = new Users().signUser(signupReq);
        usersRepository.save(user);
        CommonResponse commonResponse = new CommonResponse().successRes();
        ResData resData = new ResData();
        resData.setData(user);
        commonResponse.setData(resData);
        return commonResponse;
    }

    public CommonResponse getAllUsers() {
        List<Users> users = usersRepository.findAll();
        CommonResponse commonResponse = new CommonResponse().successRes();
        ResData resData = new ResData();
        resData.setData(users);
        commonResponse.setData(resData);
        return commonResponse;
    }

    public CommonResponse getUser(String id) {
        Users user = usersRepository.findByUserId(id);
        CommonResponse commonResponse = new CommonResponse().successRes();
        if (user == null) {
            commonResponse = commonResponse.errorRes("user id not found", "404");
        }
        ResData resData = new ResData();
        resData.setData(user);
        commonResponse.setData(resData);
        return commonResponse;
    }

    public CommonResponse updateUser(String userId, PatchReq patchReq) {
        Users user = usersRepository.findByUserId(userId);
        CommonResponse commonResponse = new CommonResponse().successRes();
        if (user == null) {
            commonResponse = new CommonResponse().errorRes("user id not found", "404");
        } else {
            user.updateUser(user, patchReq);
            usersRepository.save(user);
        }
        ResData resData = new ResData();
        resData.setData(user);
        commonResponse.setData(resData);
        return commonResponse;
    }
}

新增User
https://ithelp.ithome.com.tw/upload/images/20211001/20140358irrZP024ct.png
查询所有User
https://ithelp.ithome.com.tw/upload/images/20211001/201403580FB7jPceYy.png
查询单一User (没找到)
https://ithelp.ithome.com.tw/upload/images/20211001/20140358WZkfTg7bQ8.png
查询单一User
https://ithelp.ithome.com.tw/upload/images/20211001/20140358T5S0yKWJD3.png
更新User (没找到)
https://ithelp.ithome.com.tw/upload/images/20211001/20140358lwS8p0vS8k.png
更新User
https://ithelp.ithome.com.tw/upload/images/20211001/20140358uoBxb53dkl.png

透过统一的response,前端串接时就可以很清楚的知道该从哪里取得需要的资料,在做error handling时也会受益於统一response。
明天就来为专案加上全局性的error handling


<<:  [Day16] CSS Text Shadow Mouse Move Effec

>>:  Vaadin 汉堡选单 - AppLayout - day16

Contact Form 7 外挂漏洞:上传档案功能可能被恶意利用,受影响网站高达 500 万个以上

Astra Security 昨天发布这个紧急通知,新的 Contact Form 7 补救更新已...

Day 22 Flask-SocketIO

上一篇讲完了 Flask 的本体,这篇开始就要开始讲 Flask 的插件了。Flask 从初始版本(...

GCP Cloud Storage

Cloud Storage Cloud Storage顾名思义它是用来存放资料的空间,在昨天提到的C...

Powershell 远程连接

使用过 Linux 的都知道,Linux 的 shell 不但可以本地运行,也可以通过远程的方式连接...

[Day25] Flutter GetX API AnimatedSwitcher

上一篇介绍了Shimmer这个第三方 并建立了自己想要的Widget 这一篇将实际结合API fet...