From 4da257c2e2f674a112f6ee13373c07b22309c3c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=89=E5=AD=90?= Date: Thu, 20 Jan 2022 22:19:10 +0800 Subject: [PATCH] (#28)Add Schedule API --- miniprogram/api/Schedule.ts | 58 +++++++++++++------------ miniprogram/pages/Timetable/TestCore.ts | 15 ++++--- 2 files changed, 39 insertions(+), 34 deletions(-) diff --git a/miniprogram/api/Schedule.ts b/miniprogram/api/Schedule.ts index 4ba75ce..042a9bf 100644 --- a/miniprogram/api/Schedule.ts +++ b/miniprogram/api/Schedule.ts @@ -1,4 +1,5 @@ -import { API, HTTPMethod, IParamSetting, GeneralCallbackResult} from "../core/Api"; +import { HTTPMethod, IParamSetting } from "../core/Api"; +import { EduBase } from "./EduBase"; interface IScheduleInput { @@ -36,7 +37,7 @@ interface IClassData { week: string; } -interface IScheduleOutput { +type IScheduleOutput = { /** * 课程列表 @@ -49,38 +50,15 @@ interface IScheduleOutput { index: number; }[]; -interface IScheduleEvent { - /** - * session 过期 - */ - expire: GeneralCallbackResult; - - /** - * 登录失败 - */ - unauthorized: GeneralCallbackResult; - - /** - * 未知的问题 - */ - error: GeneralCallbackResult; - - /** - * 数据损坏或丢失 - */ - badData: GeneralCallbackResult; -} - - /** * Schedule API * 需要session与semester * 此 API 用来向教务处发起获取课程表的请求 * 请求成功后将获得教务处返回的课程表JSON文件 */ -class Schedlue extends API { +class Schedlue extends EduBase { - public override baseUrl: string = "jwc.2333.pub"; + public override baseUrl: string = "https://jwc.2333.pub"; public override url = "/course_timetable"; @@ -102,7 +80,31 @@ class Schedlue extends API { super(); this.initDebugLabel("Schedule"); - this.addFailedCallBack(); + this.useEduCallback((data) => { + const res: IScheduleOutput = []; + + for( let i = 0; i < data.length; i++ ) { + const classList: IClassData[] = []; + const CTTDetails = data[i].CTTDetails ?? []; + + for( let j = 0; j < CTTDetails.length; j++ ) { + + classList.push({ + name: CTTDetails[j].Name, + room: CTTDetails[j].Room, + teacher: CTTDetails[j].Teacher, + week: CTTDetails[j].Week, + }) + } + + res.push({ + classList, + index: data[i].Id + }) + } + return res; + + }); } } diff --git a/miniprogram/pages/Timetable/TestCore.ts b/miniprogram/pages/Timetable/TestCore.ts index 22044f0..b2a4e38 100644 --- a/miniprogram/pages/Timetable/TestCore.ts +++ b/miniprogram/pages/Timetable/TestCore.ts @@ -1,5 +1,6 @@ import { Modular, Manager, ILifetime } from "../../core/Module"; import { Login } from "../../api/Login"; +import { Schedlue } from "../../api/Schedule" import { Storage } from "../../core/Storage"; /** @@ -28,12 +29,14 @@ implements Partial { s.set("be", 12); }, 1000) - new Login().param({studentId: "2017060129", password: "hch2000210%"}) - .request().wait({ - ok: (w) => {console.log("ok", w)}, - no: (w) => {console.log("no", w)}, - done: (w) => {console.log("done", w)} - }); + // new Login().param({studentId: "2017060129", password: ""}) + // .request().wait({ + // ok: (w) => {console.log("ok", w)}, + // no: (w) => {console.log("no", w)}, + // done: (w) => {console.log("done", w)} + // }); + // new Schedlue().param({cookie:"C729D1AB1B17077485ACCD9279135C22",semester:"2020-2021-2"}) + // .request() } }