[Day 8]开赛八天即遭遇难题(後端篇)

挑战目标: MockNative Camp後端


昨天写了signup的request object,但因为我们UsersRepository无法直接使用SignupReq Object,所以我自己是会在Users.java中写转换的code,虽然有点蠢但我之前找了满久没有看到比较好的解决方法,如果看到刚好看到文章又刚好知道怎麽优化的麻烦留个言告诉我~

User.java

package com.mock.nativecamp.model;

import com.mock.nativecamp.payload.user.SignupReq;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;

@Document(collection = "Users")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Users {
    @Id
    private String id;
    private String name;
    private String email;
    private String password;
    private String status;
    private String coin;
    private String timezone;
    private String payMethod;
    private String nextPayCheck;
    private String ssoId;
    private String gender;
    private String creditToken;
    private String profilePic;
    private boolean news;
    private String birthday;
    private String userNationality;
    private String userResidence;
    private boolean genderNotify;
    private boolean birthdayNotify;
    private boolean userNationalityNotify;
    private boolean userResidenceNotify;

    public Users signUser(SignupReq signupReq) {
        Users user = new Users();
        user.setName(signupReq.getName());
        user.setEmail(signupReq.getEmail());
        user.setPassword(signupReq.getPassword());
        user.setBirthday(signupReq.getBirthday());
        user.setGender(signupReq.getGender());
        user.setCreditToken(signupReq.getCredit_token());
        return user;
    }
}

然後将我们的UsersService.java修改一下

package com.mock.nativecamp.service;

import com.mock.nativecamp.model.Users;
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;

@Slf4j
@Service
public class UsersService {

    @Autowired
    private UsersRepository usersRepository;

    public Object signupUser(SignupReq signupReq) {
        Users user = new Users().signUser(signupReq);
        usersRepository.save(user);
        return new ResponseEntity(HttpStatus.ACCEPTED);
    }

    public Object getAllUsers() {
        return usersRepository.findAll();
    }

    public Object getUser(String id) {
        return usersRepository.findById(id);
    }
}

我们使用postman来测试一下
新增user
https://ithelp.ithome.com.tw/upload/images/20210923/20140358b8vguqxmjg.png
取得所有User
https://ithelp.ithome.com.tw/upload/images/20210923/20140358nKmXgQa97c.png
取得单一User
https://ithelp.ithome.com.tw/upload/images/20210923/20140358dYbwaYYn3X.png

明天继续新增patch user的request object和一样的在Users.java中新增转换method。


<<:  策略也是需要经过验证的 - backtrader

>>:  第十八天:客制化 Gradle Task

[区块链&DAPP介绍 Day20] contract 案例2 - 拍卖

今天来介绍第二个案例。今天的案例就以拍卖为情境设定 情境 假设要制定一定拍卖场的合约,到底要怎麽定义...

图的连通 (6)

9.3 三连通元件 3连通跟2连通真的不太一样。 以2连通来说,如果我们今天把整张图,依照关节点切开...

Day4 带着烤肉香的JavaScript

JavaScript约诞生於1995年,用於操作网页的DOM、BOM,负责处理所有网页与使用者的互动...

沟通这回事:ORID 与引导

前言 昨天分享了冰山理论,今天接着谈「焦点讨论法 | ORID」,并在後半延伸至引导学(Facili...

JavaScript 之旅 (30):总结 & 系列目录

终於来到铁人赛的最後一天!本篇对「JavaScript 之旅」此系列做个总结,并整理此系列中的每篇...