yapi/server/models/project.js
2017-07-06 20:53:26 +08:00

93 lines
1.8 KiB
JavaScript

import yapi from '../yapi.js'
import baseModel from './base.js'
class projectModel extends baseModel{
getName(){
return 'project'
}
getSchema(){
return {
uid: {type: Number, required: true},
name: {type: String, required: true},
basepath: {type: String, required: true},
desc: String,
group_id: {type: Number, required: true},
members: Array,
prd_host: {type: String, required: true},
env: Object,
add_time: Number,
up_time: Number
}
}
save(data) {
let m = new this.model(data);
return m.save();
}
get(id){
return this.model.findOne({
_id: id
}).exec()
}
checkNameRepeat(name){
return this.model.count({
name: name
})
}
checkDomainRepeat(domain, basepath){
return this.model.count({
prd_host: domain,
basepath: basepath
})
}
list (group_id){
return this.model.find({
group_id: group_id
}).exec()
}
del(id){
return this.model.deleteOne({
_id: id
})
}
up(id, data){
data.up_time = yapi.commons.time();
return this.model.update({
_id: id,
}, data, { runValidators: true })
}
addMember(id, uid){
return this.model.update({
_id, id
}, {
$push: {members: uid}
})
}
delMember(id, uid){
return this.model.update({
_id: id
}, {
$pull: {members: uid}
})
}
checkMemberRepeat(id, uid){
return this.model.count({
_id: id,
members:[uid]
})
}
}
module.exports = projectModel;