Преглед на файлове

[更新] codehw api列表

WuXinyu преди 7 години
родител
ревизия
9b3ae4e8b4
променени са 1 файла, в които са добавени 82 реда и са изтрити 10 реда
  1. 82 10
      src/api/codehw.js

+ 82 - 10
src/api/codehw.js

@@ -1,5 +1,5 @@
-// import request from "@/util/request";
-// import { CODE_HOMEWORK_MODULE } from "./_prefix";
+import request from "@/util/request";
+import { CODE_HOMEWORK_MODULE } from "./_prefix";
 
 /**
  * 获得学生的 代码作业 列表
@@ -15,33 +15,105 @@ export const getCodeHomeworkList = courseId => {
 };
 
 /**
- * 获得一项代码作业的 项目 列表
+ * 获得某个 Homework 的 Project 列表(应该只有一个)
+ * @param {string|number} homeworkId
+ * @return {Promise<{data:{projectId:string,name:string}[]}>}
  */
 export const getProjectList = homeworkId => {
+  //TODO:delete this before deploy
   console.log(homeworkId);
-  return {
-    data: [{ projectId: "project1", projectName: "xxx" }]
-  };
+  return request(`${CODE_HOMEWORK_MODULE}/projects`, {
+    method: "POST",
+    body: {
+      homeworkId
+    }
+  });
 };
 
 /**
- * 获得项目的详细信息
+ * TODO:请确认 homeworkId 是否有用
+ * 获得 Project 的详细信息
+ * @param homeworkId
+ * @param {string|number} projectId
+ * @return {Promise<{id:string,data:ProjectSerializerType}>}
  */
 export const getProjectDetail = ({ homeworkId, projectId }) => {
+  //TODO:delete this before deploy
   console.log(homeworkId, projectId);
+  return request(`${CODE_HOMEWORK_MODULE}/project/${projectId}`);
+};
+
+/**
+ * 获得一次构建的详细信息
+ * @param {string|number} buildId
+ * @return {Promise<{id:string,data:BuildSerializerType}>}
+ */
+export const getBuildDetail = buildId => {
+  return request(`${CODE_HOMEWORK_MODULE}/build/${buildId}`);
+};
+
+/**
+ * 获得一次部署的详细信息
+ * @param {string|number} deployId
+ * @return {Promise<{id:string,data:DeploySerializerType}>}
+ */
+export const getDeployDetail = deployId => {
+  return request(`${CODE_HOMEWORK_MODULE}/deploy/${deployId}`);
+};
+
+/**
+ * 获得一次单元测试的详细信息
+ * @param {string|number} unitId
+ * @return {Promise<{id:string,data:UnitTestSerializerType}>}
+ */
+export const getUnitTestDetail = unitId => {
+  return request(`${CODE_HOMEWORK_MODULE}/unit/${unitId}`);
+};
+
+/**
+ * 获得一次页面功能测试的详细信息
+ * @param {string|number} functionalId
+ * @return {Promise<{id:string,data:FunctionalTestSerializerType}>}
+ */
+export const getFunctionalDetail = functionalId => {
+  return request(`${CODE_HOMEWORK_MODULE}/functional/${functionalId}`);
 };
 
 /**
  * 获得可用的镜像列表
+ * @param {string|number} homeworkId
+ * @param {string|number} projectId
+ * @return {Promise<{data:MirrorSerializerType[]}>}
  */
-export const getAvailableMirrorList = () => {};
+export const getAvailableMirrorList = ({ homeworkId, projectId }) => {
+  return request(`${CODE_HOMEWORK_MODULE}/mirrors/${homeworkId}/${projectId}`);
+};
 
 /**
+ * TODO: arguments 不被允许
  * 触发一次部署
+ * @param {string|number} homeworkId
+ * @param {string|number} projectId
+ * @param {string|number} mirrorId
+ * @return {Promise<{data:{success:boolean}}>}
  */
-export const makeDeploy = () => {};
+export const makeDeploy = ({ homeworkId, projectId, mirrorId }) => {
+  return request(`${CODE_HOMEWORK_MODULE}/deploy`, {
+    method: "POST",
+    body: { homeworkId, projectId, mirrorId }
+  });
+};
 
 /**
  * 触发页面功能测试
+ * @param {string|number} homeworkId
+ * @param {string|number} projectId
+ * @param {string|number} deployId
+ * @return {Promise<{data:{success:boolean}}>}
  */
-export const makeFunctionalTest = () => {};
+export const makeFunctionalTest = ({ homeworkId, projectId, deployId }) => {
+  return request(`${CODE_HOMEWORK_MODULE}/functional`, {
+    method: "POST",
+    body: { homeworkId, projectId, deployId }
+  });
+};