@oceans/cli
Version:
work for oceans
51 lines (42 loc) • 1.1 kB
JavaScript
const Base = require('./base')
const { merge } = require('../common/utils')
const { LOGIN_TOKEN_EXPIRED } = require('../config')
class Account extends Base {
constructor () {
super('account', {
username: '',
domain: '',
expired: new Date().getTime() + LOGIN_TOKEN_EXPIRED,
loginTime: new Date(),
token: ''
})
}
refreshUser (username, userInfo) {
return new Promise((resolve, reject) => {
const info = merge(this.struct, userInfo)
this.db.update({ username }, info, { upsert: true }, (err, rs) => {
if (err) {
reject(err)
return false
}
resolve(rs)
})
})
}
findTheLastActiveAccount () {
return new Promise((resolve, reject) => {
this.db.find({})
.projection({ password: 0 })
.sort({ loginTime: -1 })
.limit(1).exec((err, docs) => {
if (err) {
reject(err)
return false
}
resolve(docs.length > 0 ? docs[0] : null)
})
})
}
}
Account.AccountKey = 'active'
module.exports = Account