questionnaire.js 842 B

12345678910111213141516171819202122232425
  1. 'use strict';
  2. const { CrudService } = require('naf-framework-mongoose/lib/service');
  3. const { BusinessError, ErrorCode } = require('naf-core').Error;
  4. const _ = require('lodash');
  5. const assert = require('assert');
  6. // 问卷
  7. class QuestionnaireService extends CrudService {
  8. constructor(ctx) {
  9. super(ctx, 'questionnaire');
  10. this.model = this.ctx.model.Questionnaire;
  11. this.question = this.ctx.service.question;
  12. }
  13. async fetch({ id }) {
  14. const data = await this.model.findById(id, '+questions');
  15. if (!data) throw new BusinessError(ErrorCode.DATA_NOT_EXIST, '未找到指定问卷!');
  16. const obj = data.questions;
  17. if (obj.every(e => _.isObject(e))) return data;
  18. const questions = await this.question.getQuestions(obj);
  19. data.questions = questions;
  20. return data;
  21. }
  22. }
  23. module.exports = QuestionnaireService;