挑战目标: MockNative Camp前端
今天到101取I13 pro替换我的I10,不知道是年纪大了还是怎麽样,从下订到等待到取货,完全没有什麽兴奋的感觉,拿回家拆开後也就放着转移资料过去,就开始赶铁人赛的东西了,这还真的是挑战,每天前後端都需要生东西出来,尤其是其中一边卡Bug或是有其他事耽搁,导致每天都非常赶得在写文章,不过我觉得是个很不错的挑战,每天固定花时间逼自己前进跟归纳也是不错的方式。
幸好自己前後端只有前端是选择几乎没写过的React/NextJS,後端选择了熟悉的JAVA/Spring,还好当时取消後端使用Rust完全不熟但有兴趣的语言,不然双双遇到Bug真的会搞死自己。
昨天实作了patch,发现了问题,就是密码不应该是可以一起被更新的,如果前端带错值或是没带到passowrd,会直接把用户的密码给更新成null,还有email也是作为登入帐号,不可以被随便更新,所以我们今天就来refactor一下(拖台钱。
PatchReq.java
package com.mock.nativecamp.payload.user;
import lombok.Data;
@Data
public class PatchReq {
private String name;
private String birthday;
private String gender;
private String credit_token;
private String profilePic;
private Boolean news;
private String userNationality;
private String userResidence;
private Boolean genderNotify;
private Boolean birthdayNotify;
private Boolean userNationalityNotify;
private Boolean userResidenceNotify;
private String timezone;
}
Users.java 这边的update method也要跟着拿掉
public Users updateUser(Users user, PatchReq patchReq) {
user.setName(patchReq.getName());
user.setBirthday(patchReq.getBirthday());
user.setGender(patchReq.getGender());
user.setCreditToken(patchReq.getCredit_token());
user.setProfilePic(patchReq.getProfilePic());
user.setNews(patchReq.getNews());
user.setUserNationality(patchReq.getUserNationality());
user.setUserNationalityNotify(patchReq.getUserNationalityNotify());
user.setUserResidence(patchReq.getUserNationality());
user.setUserNationalityNotify(patchReq.getUserNationalityNotify());
user.setGenderNotify(patchReq.getGenderNotify());
user.setBirthdayNotify(patchReq.getBirthdayNotify());
user.setTimezone(patchReq.getTimezone());
return user;
}
这样就可以避免更新到密码或是帐号的方式,但相对的我们必须要新增相对应的API来做更新帐号和密码。
这两只API我们晚点再做,先来推进一下进度,我们先来看一下教师的新增流程,
首先会需要输入信箱和密码,然後会寄信到信箱中,从验证的URL会导向注册页面
这边我们就可以先来想一下要怎麽设计API了,因为教师属於另外一个网页不是我们mock的目标,所以不考虑照他的流程走,直接使用API新增,这边就可以开始来设计我们的model。
Teachers.java
package com.mock.nativecamp.model;
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 = "Teachers")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Teachers {
@Id
private String userId;
private String name;
private String email;
private String password;
private String status;
private String timezone;
private String birthday;
private String country;
private String nationality;
private String referrer_Email;
}
详细的我们留到明天在继续观察好了,我需要从其他页面获取教师可能会有的栏位之後再来继续扩充。
之前曾在 Day8 有跟大家提过字体常用的样式,今天来带大家深入探讨各式文字怎麽设计,才会带给使用者...
在开发Vue时,官方建议使用属性及事件对其他元件做处理,不过凡事总有例外的嘛~ 还是会有一些情境中会...
前言 JS 30 是由加拿大的全端工程师 Wes Bos 免费提供的 JavaScript 简单应用...
其实这个区块原本是预计要做这个的 但是因为他的 JSON 我没法参透出他的意涵q 所以今天改做其他内...
有关於ExcelJS这个套件的教学与说明,请先看我的上一篇文章: [前端/ES6] 实作汇出exce...