feat: sync with latest api

This commit is contained in:
Paul Pan 2023-12-22 23:34:41 +08:00
parent 013a4a4e90
commit c796c83626
3 changed files with 29 additions and 14 deletions

View File

@ -11,11 +11,16 @@ export interface ResponseWrap<T> {
body: T;
}
export interface WithCount<T> {
count: number;
data: T[];
}
export interface Meta {
ID: number;
CreatedAt: number;
UpdatedAt: number;
DeletedAt: number;
CreatedAt: Date;
UpdatedAt: Date;
DeletedAt: Date;
}
export async function send<D, T>(

View File

@ -1,4 +1,4 @@
import { Meta, send } from "./base.ts";
import { Meta, send, WithCount } from "./base.ts";
import { SubmissionInfo } from "./submission.ts";
export enum Verdict {
@ -37,6 +37,11 @@ export interface StatusInfo {
is_enabled: boolean;
}
export interface SubmissionWithPoint {
submission: SubmissionInfo;
point: number;
}
export interface QueryReq {
pid?: number;
uid?: number;
@ -44,11 +49,6 @@ export interface QueryReq {
limit: number;
}
export interface QueryResp {
submission: SubmissionInfo;
point: number;
}
export interface QueryBySubmissionReq {
sid: number;
}
@ -59,21 +59,30 @@ export interface QueryByVersionReq {
limit: number;
}
export interface QueryByVersionResp {
count: number;
status: StatusInfo[];
}
export class StatusApi {
static async Query(data: QueryReq): Promise<QueryResp[]> {
return send("/status/query", data);
static async Query(
data: QueryReq,
token: string,
): Promise<WithCount<SubmissionWithPoint>> {
return send("/status/query", data, token);
}
static async QueryBySubmission(
data: QueryBySubmissionReq,
token: string,
): Promise<StatusInfo> {
return send("/status/query/submission", data);
return send("/status/query/submission", data, token);
}
static async QueryByVersion(
data: QueryByVersionReq,
token: string,
): Promise<StatusInfo[]> {
): Promise<WithCount<StatusInfo>> {
return send("/status/query/version", data, token);
}
}

View File

@ -1,9 +1,10 @@
import { Meta, send } from "./base.ts";
import { UserProfile } from "./user.ts";
import { ProblemInfo } from "./problem.ts";
export interface SubmissionInfo {
meta: Meta;
problem_id: number;
problem: ProblemInfo;
user: UserProfile;
language: string;
code: string;