'use strict'; const fs = require('fs'); const moment = require('moment') const uuid = require('uuid'); async function check (ctx) { try { const { models } = this.fs.dc; const { appKey, appSecret } = this.request.body; const existRes = await models.Application.findOne({ where: { appKey: appKey, appSecret: appSecret, } }) if (!existRes) { throw '应用不存在' } else if (existRes.forbidden) { throw '应用已被禁用' } ctx.status = 204; } catch (error) { ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); ctx.status = 400; ctx.body = typeof error == 'string' ? { message: error } : error } } async function edit (ctx, next) { let errMsg = '创建应用失败' const transaction = await ctx.fs.dc.orm.transaction(); try { const { models } = ctx.fs.dc; const { userId } = ctx.fs.api const data = ctx.request.body; if (data.id) { // 修改 const storageData = Object.assign({}, data,) await models.Application.update(storageData, { where: { id: data.id }, transaction }) } else { // 添加 const storageData = Object.assign({}, data, { appKey: uuid.v4(), appSecret: uuid.v4(), createUserId: userId, createTime: moment().format(), forbidden: true }) await models.Application.create(storageData, { transaction }) } await transaction.commit(); ctx.status = 204; } catch (error) { await transaction.rollback(); ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); ctx.status = 400; ctx.body = { message: errMsg } } } module.exports = { check, edit, };