增加获取题目和上报的接口

This commit is contained in:
zhl 2021-04-26 15:22:31 +08:00
parent cba94a9cea
commit e73920b917
2 changed files with 49 additions and 1 deletions

View File

@ -137,7 +137,7 @@ export class ApiServer {
self.registerRouter();
self.setErrHandler();
// self.setFormatSend();
this.server.listen({port: config.api.port, host: config.api.host}, (err: any, address: any) => {
this.server.listen({port: config.api.port}, (err: any, address: any) => {
if (err) {
logger.log(err)
process.exit(0)

View File

@ -0,0 +1,48 @@
import BaseController from '../../common/base.controller'
import { role, router } from '../../decorators/router'
import { Puzzle } from '../../models/content/Puzzle'
import { ZError } from '../../common/ZError'
class PuzzleController extends BaseController {
@role('anon')
@router('post /puzzle/list')
async list(req, res) {
let { shop, level } = req.params
let count = 10
let records = await Puzzle.aggregate([
{ $match: { status: 1, is_hide: 0, deleted: 0 } },
{ $sample: { size: count } }
]).exec()
return records.map(o => {
let answers = []
for (let i = 1; i <=4; i++) {
if (o[`a${i}`]) {
answers.push(o[`a${i}`])
}
}
answers.randomSort()
return {
id: o._id,
title: o.question,
answers,
type: 1
}
})
}
@role('anon')
@router('post /puzzle/answer')
async report(req, res) {
let { id, answer } = req.params
if (!id || !answer) {
throw new ZError(11, 'param mismatch')
}
let record = await Puzzle.findById(id)
if (!record) {
throw new ZError(12, 'question not found')
}
let result = record.a1 == answer ? 1 : 0
return {result}
}
}