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

View File

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