医学道
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
video/src/api/user.ts

86 lines
2.1 KiB

import {request} from "./request";
interface Code {
image: string
}
export interface LoginData {
access_token: string
code?: Code
company: Company
token: string
user: User
catch_key: string
}
interface CheckoutBody {
catch_key: string
code: string
phone_number: string
}
interface CheckoutData {
token: string
phone_number: string
user: User
company: Company
}
interface DepListData {
departments: Department[]
user: User
}
interface LearningRecord {
user_course_records: LearnRecord[]
}
interface CourseRecord {
course: Curriculum
data: Record<number, userRecord>
}
interface HourCourse {
courseHour: Record<number, Hour>,
date: Record<number, { start: number, end: number }>
duration: Record<number, number>
}
export const userApi = {
login(code: string) {
return request<LoginData>('/api/v1/auth/login/wechat', 'POST', {code})
},
checkout(data: CheckoutBody) {
return request<CheckoutData>('/api/v1/auth/login/checkout', 'POST', data)
},
unbind(id: number) {
return request(`/api/v1/auth/login/unbind/${id}`, "PUT")
},
putName(id: number, name: string) {
return request<User>(`/api/v1/auth/login/${id}`, "PUT", {name})
},
/** 所属部门 */
depList() {
return request<DepListData>(`/api/v1/user/detail`, "GET")
},
code(catch_key: string) {
return request<{ code: Code }>(`/api/v1/auth/login/code`, "POST", {openid: catch_key})
},
learningRecord(courseId?: number) {
return request<LearningRecord>(`/api/v1/user/record/course`, "GET", courseId ? {courseId} : {})
},
/** 学习记录 */
record(category_id: number) {
return request<Record<number, userRecord>>(`/api/v1/course/${category_id}/record`, "GET")
},
courseRecord(course_id: number) {
return request<CourseRecord>(`/api/v1/course/${course_id}/info`, "GET")
},
hourCourse(course_id: number, unique_ident: number) {
return request<HourCourse>(`/api/v1/course/${course_id}/info/${unique_ident}`, "GET")
},
meetingSave(data: any) {
return request<LoginData>(`/api/v1/user/meeting/save`, "POST", data)
}
}