Bläddra i källkod

[新增]题目实体类设计&&题目API

soleil 7 år sedan
förälder
incheckning
da8d118938

+ 47 - 0
mock/modules/question/index.js

@@ -0,0 +1,47 @@
+const express = require("express");
+const router = express.Router();
+const QuestionSerializer = require("../../serializers/QuestionSerializer");
+const QuestionTypeSerializer = require("../../serializers/QuestionTypeSerializer");
+
+//获取全部题目分类
+router.route("/teacher/questionType").get((req, res) => {
+  res.send({
+    data: [
+      QuestionTypeSerializer(),
+      QuestionTypeSerializer(),
+      QuestionTypeSerializer()
+    ]
+  });
+});
+
+//按题目分类获得题目(分页) || 根据作业分类获得题目
+router.route("/teacher/questions").get((req, res) => {
+  res.send({
+    data: [
+      QuestionSerializer(),
+      QuestionTypeSerializer(),
+      QuestionTypeSerializer()
+    ],
+    pageNum: 1
+  });
+});
+
+//根据关键字进行模糊查找
+router.route("/teacher/keyword").get((req, res) => {
+  res.send({
+    data: [
+      QuestionSerializer(),
+      QuestionTypeSerializer(),
+      QuestionTypeSerializer()
+    ]
+  });
+});
+
+//根据ID查看某个题目
+router.route("/question/:questionId").get((req, res) => {
+  res.send({
+    data: QuestionSerializer()
+  });
+});
+
+module.exports = router;

+ 22 - 0
mock/serializers/FileSerializer.js

@@ -0,0 +1,22 @@
+const makeId = require("../util/makeId");
+/**
+ * @description 文件基本信息
+ * @typedef {Object} FileSerializerType
+ * @property {string} filename 文件名
+ * @property {string} content 文件内容
+ * @property {number} size 文件大小
+ * @property {number} uploader 上传者ID
+ */
+
+/**
+ * @description 生成文件基本信息
+ * @returns {FileSerializer}
+ */
+module.exports = () => {
+  return {
+    filename: "第一次代码作业需求描述",
+    content: "这里是第一次代码作业的描述bulabulabulala",
+    size: 20,
+    uploader: makeId()
+  };
+};

+ 40 - 0
mock/serializers/QuestionSerializer.js

@@ -0,0 +1,40 @@
+const makeId = require("../util/makeId");
+const FileSerializer = require("./FileSerializer");
+
+/**
+ * @description 题目信息
+ * @typedef {Object} QuestionSerializerType
+ * @property {number|string} id 题目id
+ * @property {string} name 题目名称
+ * @property {string} description 题目描述
+ * @property {Object} assignmentType 作业类型
+ * @property {Object} type 题目类型
+ * @property {number} creator 创建者id
+ * @property {number} expectTime 预计完成时间
+ * @property {number} difficulty 题目难度
+ * @property {FileSerializerType} file 题目文件
+ */
+
+/**
+ * @description 题目信息
+ * @returns {CourseSerializerType}
+ */
+module.exports = () => {
+  return {
+    id: makeId(),
+    name: "物流系统需求规格说明书",
+    description: "某公司为xxx快递公司,请为该公司设计一个物流管理系统",
+    assignmentType: {
+      name: "DOCUMENT",
+      value: "文档作业"
+    },
+    type: {
+      name: "DOCUMENT",
+      value: "文档作业"
+    },
+    creator: makeId(),
+    expectTime: 20,
+    difficulty: 1,
+    file: FileSerializer
+  };
+};

+ 18 - 0
mock/serializers/QuestionTypeSerializer.js

@@ -0,0 +1,18 @@
+/**
+ * @description 题目类型
+ * @typedef {Object} QuestionTypeSerializerType
+ * @property {string} name 题目分类名
+ * @property {string} value 题目分类内容
+ */
+
+/**
+ * @description 生成题目类型
+ * @returns {QuestionTypeSerializer}
+ */
+
+module.exports = () => {
+  return {
+    name: "JAVA",
+    value: "JAVA语言"
+  };
+};