yapi/server/models/log.js

69 lines
1.7 KiB
JavaScript
Raw Normal View History

import yapi from '../yapi.js';
import baseModel from './base.js';
2017-07-20 20:30:24 +08:00
import userModel from '../models/user.js';
2017-07-20 20:30:24 +08:00
class logModel extends baseModel {
getName() {
2017-07-20 20:30:24 +08:00
return 'log';
}
getSchema() {
return {
uid: { type: Number, required: true },
title: { type: String, required: true },
type: { type: String, enum: ['user', 'group', 'interface', 'project', 'other'], required: true },
content: { type: String, required: true },
username: { type: String, required: true },
add_time: Number
};
}
2017-07-24 12:25:46 +08:00
/**
* @param {String} title log标题
* @param {String} content log内容
* @param {Enum} type log类型 ['user', 'group', 'interface', 'project', 'other']
* @param {Number} uid 用户id
*/
2017-07-20 20:30:24 +08:00
async save(data) {
let userInst = yapi.getInst(userModel);
let username = await userInst.findById(data.uid);
let saveData = {
title: data.title,
content: data.content,
type: data.type,
uid: data.uid,
username: username,
add_time: yapi.commons.time()
};
let log = new this.model(saveData);
2017-07-20 20:30:24 +08:00
return log.save();
}
list(uid) {
return this.model.find({
uid: uid
})
.exec();
}
listWithPaging(uid, page, limit) {
page = parseInt(page);
limit = parseInt(limit);
return this.model.find({
uid: uid
})
.skip((page - 1) * limit)
.limit(limit)
.exec();
}
listCount(uid) {
return this.model.count({
uid: uid
});
}
}
2017-07-20 20:30:24 +08:00
module.exports = logModel;