On this page
关注用户
控制器:app/controller/user.js
js
// 关注
async follow() {
const { ctx, service, app } = this;
let currentUser = ctx.authUser;
ctx.validate({
follow_id: {
type: 'int',
required: true,
desc: '用户ID'
},
});
let { follow_id } = ctx.request.body;
let where = {
user_id: currentUser.id,
follow_id
}
let follow = await app.model.Follow.findOne({ where });
if (follow) {
return ctx.apiFail('你已经关注过了');
}
// 用户是否存在
if (!await service.user.exist(follow_id)) {
return ctx.apiFail('对方不存在');
}
// 不能关注自己
if (currentUser.id === follow_id) {
return ctx.apiFail('不能关注自己');
}
let res = await app.model.Follow.create({ ...where });
ctx.apiSuccess({
status: true,
msg: "关注成功"
});
}
服务:app/service/user.js
js
// 是否存在
async exist(user_id) {
const { app } = this;
return await app.model.User.findOne({
where: {
id: user_id
}
});
}
路由:app/router.js
js
// 关注
router.post("/user/follow", controller.user.follow);