Bläddra i källkod

feat: 新建课程和删除课程的流程

mjh 4 år sedan
förälder
incheckning
a42c55cf77
3 ändrade filer med 86 tillägg och 28 borttagningar
  1. 17 4
      src/api/coder.js
  2. 53 18
      src/api/course.js
  3. 16 6
      src/api/helper.js

+ 17 - 4
src/api/coder.js

@@ -2,22 +2,35 @@ import {axios} from "@/requests/axios.config";
 
 const prefix = "https://coder-server.seec.seecoder.cn/api";
 
-function createCoderCourse(data){
-  return axios.post(`${prefix}/course`, data);
+function createCoderCourse({name, code, price}){
+  return axios.post(`${prefix}/course`, {
+    name,
+    code,
+    price,
+  });
 }
 
-function updateCoderCourse(data){
-  return axios.put(`${prefix}/course`, data);
+function updateCoderCourse({name, code, price}){
+  return axios.put(`${prefix}/course`, {
+    name,
+    code,
+    price,
+  });
 }
 
 // coder子系统没有删除课程
 function deleteCoderCourse(){
 }
 
+function getAllCoderCourses(){
+  return axios.get(`${prefix}/course`);
+}
+
 const coderAPIs = {
   createCoderCourse,
   updateCoderCourse,
   deleteCoderCourse,
+  getAllCoderCourses,
 };
 
 export default coderAPIs;

+ 53 - 18
src/api/course.js

@@ -1,19 +1,45 @@
 import {axios} from "@/requests/axios.config";
+import coderAPIs from "@/api/coder";
+import evalAPIs from "@/api/eval";
+import helperAPIs from "@/api/helper";
 
 const prefix = "/course";
 
 async function createCourse(data) {
-  // todo: create coder course
-  let coderRes = await this.$apis.createCoderCourse(null);
-  // todo: coder子系统创建课程失败,执行回滚。
-  let coderId = coderRes.data.resource.id;
-  console.log("new coder course, id: " + coderId);
+  console.log(data);
+
+  //create coder course
+  await coderAPIs.createCoderCourse({
+    name: data.name,
+    code: data.invitationCode,
+    price: 0,
+  }).then(coderRes => {
+      let coderId = coderRes.data.res.id;
+      console.log("new coder course, id: " + coderId);
+      data.coderId = coderId;
+    })
+    .catch(err => {
+      console.log(err);
+      // todo: coder子系统创建课程失败,执行回滚。
+    });
+
   // todo: create eval course
+
   // todo: create helper course
-  const helperRes = await this.$apis.createHelperCourse(null);
-  // todo: helper子系统创建课程失败,执行回滚。
-  const helperId = helperRes.data.id;
-  console.log("new helper course, id: " + helperId);
+  await helperAPIs.createHelperCourse({
+    name: data.name,
+    bio: data.description,
+    code: data.invitationCode,
+  }).then(helperRes => {
+    console.log(helperRes);
+    // const helperId = helperRes.data.id;
+    // console.log("new helper course, id: " + helperId);
+    // data.helperId = helperId;
+  })
+    .catch(err => {
+      console.log(err);
+      // todo: helper子系统创建课程失败,执行回滚。
+    });
   // todo: 根据前三个系统的返回结果得到evalId、coderId、helperId。
   return axios.post(`${prefix}/create`, data);
 }
@@ -41,22 +67,31 @@ function getCourse(params) {
   });
 }
 
-async function updateCourse(data) {
-  // todo: update coder course
-  let coderRes = await this.$apis.updateCoderCourse(null);
-  // todo: update eval course
-  // todo: update helper course
-  let helperRes = await this.$apis.updateHelperCourse(null);
+function updateCourse(data) {
   return axios.post(`${prefix}/update`, data);
 }
 
 async function deleteCourse(data) {
   // todo: delete coder course
-  let coderRes = await this.$apis.deleteCoderCourse(null);
+  await coderAPIs.deleteCoderCourse()
+    .then(coderRes => {
+
+    })
+    .catch(err => {
+
+    });
+
   // todo: delete eval course
+
   // todo: delete helper course
-  let helperRes = await this.$apis.deleteHelperCourse(null);
-  return axios.post(`${prefix}/delete`, data);
+  await helperAPIs.deleteHelperCourse(data.helperId)
+    .then(coderRes => {
+
+    })
+    .catch(err => {
+
+    });
+  return axios.post(`${prefix}/delete`, data.id);
 }
 
 

+ 16 - 6
src/api/helper.js

@@ -2,19 +2,29 @@ import {axios} from "@/requests/axios.config";
 
 const prefix = "http://helper.seecoder.cn/api";
 
-function createHelperCourse(data){
-  return axios.post(`${prefix}/course`, data);
+function createHelperCourse({name, bio, code, knowledgeId = null}) {
+  return axios.post(`${prefix}/course`, {
+    name,
+    bio,
+    code,
+    knowledgeId,
+  });
 }
 
-function getHelperCourses(){
+function getHelperCourses() {
   return axios.get(`${prefix}/course`);
 }
 
-function updateHelperCourse(helperId, data){
-  return axios.put(`${prefix}/course/${helperId}`, data);
+function updateHelperCourse(helperId, {name, bio, code, knowledgeId}) {
+  return axios.put(`${prefix}/course/${helperId}`, {
+    name,
+    bio,
+    code,
+    knowledgeId,
+  });
 }
 
-function deleteHelperCourse(helperId){
+function deleteHelperCourse(helperId) {
   return axios.delete(`${prefix}/course/${helperId}`);
 }