59 lines
1.6 KiB
TypeScript
59 lines
1.6 KiB
TypeScript
import BaseController from 'common/base.controller'
|
|
import { ZError } from 'common/ZError'
|
|
import { router } from 'decorators/router'
|
|
|
|
import { Wallet } from 'modules/Wallet'
|
|
import { WalletExt } from 'modules/WalletExt'
|
|
import { customAlphabet } from 'nanoid'
|
|
|
|
const nanoid = customAlphabet('1234567890abcdef', 10)
|
|
|
|
class WalletController extends BaseController {
|
|
@router('get /wallet/info')
|
|
async getWalletInfo(req, res) {
|
|
let user = req.user
|
|
let record = await Wallet.insertOrUpdate({ account: user.id }, {})
|
|
let data: any = { oid: user.id }
|
|
if (record.nweRecord) {
|
|
record.salt = nanoid()
|
|
record.is = nanoid(12)
|
|
record.nweRecord = false
|
|
await record.save()
|
|
}
|
|
Object.assign(data, record.toJson())
|
|
return data
|
|
}
|
|
|
|
@router('post /wallet/info')
|
|
async uploadWalletInfo(req, res) {
|
|
let user = req.user
|
|
let { key } = req.params
|
|
if (!key) {
|
|
throw new ZError(10, 'no data to save')
|
|
}
|
|
let record = await Wallet.insertOrUpdate({ account: user.id }, {})
|
|
record.key = key
|
|
await record.save()
|
|
return {}
|
|
}
|
|
|
|
@router('post /wallet/collection')
|
|
async uploadUserCollection(req, res) {
|
|
let user = req.user
|
|
let { data } = req.params
|
|
let record = await WalletExt.insertOrUpdate({ account: user.id }, { data })
|
|
if (record.nweRecord) {
|
|
record.nweRecord = false
|
|
await record.save()
|
|
}
|
|
return {}
|
|
}
|
|
|
|
@router('get /wallet/collection')
|
|
async getUserCollection(req, res) {
|
|
let user = req.user
|
|
let record = await WalletExt.insertOrUpdate({ account: user.id }, {})
|
|
return record.data
|
|
}
|
|
}
|