Commit 18ab60c3 authored by Chunchi Che's avatar Chunchi Che

update mdproDeck API

parent 5d3048b6
Pipeline #27778 passed with stages
in 8 minutes and 54 seconds
import { useConfig } from "@/config";
import { MdproDeck } from "./schema";
import { mdproHeaders } from "./util";
import { handleHttps, mdproHeaders } from "./util";
const { mdproServer } = useConfig();
const API_PATH = "api/mdpro3/deck/update";
interface UpdateResp {
code: number;
message: string;
data: MdproDeck;
}
const API_PATH = "/api/mdpro3/deck/deckId";
export async function updateDeck(
req: MdproDeck,
): Promise<UpdateResp | undefined> {
export async function generateDeck(): Promise<string | undefined> {
const myHeaders = mdproHeaders();
const resp = await fetch(`${mdproServer}/${API_PATH}`, {
method: "PUT",
method: "GET",
headers: myHeaders,
body: JSON.stringify(req),
redirect: "follow",
});
if (!resp.ok) {
console.error(`[Update of MdproDeck] HTTPS error! status: ${resp.status}`);
return undefined;
} else {
return await resp.json();
}
return await handleHttps(resp, API_PATH);
}
export * from "./generate";
export * from "./mget";
export * from "./pull";
export * from "./update";
export * from "./upload";
import { useConfig } from "@/config";
import { MdproDeck } from "./schema";
import { mdproHeaders } from "./util";
import { MdproDeck, MdproResp } from "./schema";
import { handleHttps, mdproHeaders } from "./util";
const { mdproServer } = useConfig();
const API_PATH = "/api/mdpro3/deck";
interface MgetResp {
code: number;
message: string;
data?: MdproDeck;
}
export async function mgetDeck(id: string): Promise<MgetResp | undefined> {
export async function mgetDeck(
id: string,
): Promise<MdproResp<MdproDeck> | undefined> {
const myHeaders = mdproHeaders();
const resp = await fetch(`${mdproServer}/${API_PATH}/${id}`, {
......@@ -22,10 +18,5 @@ export async function mgetDeck(id: string): Promise<MgetResp | undefined> {
redirect: "follow",
});
if (!resp.ok) {
console.error(`[Mget of Mdpro Decks] HTTPS error! status: ${resp.status}`);
return undefined;
} else {
return await resp.json();
}
return await handleHttps(resp, API_PATH);
}
import { useConfig } from "@/config";
import { MdproDeck } from "./schema";
import { mdproHeaders } from "./util";
import { MdproDeck, MdproResp } from "./schema";
import { handleHttps, mdproHeaders } from "./util";
const { mdproServer } = useConfig();
const API_PATH = "api/mdpro3/deck/list";
......@@ -20,21 +20,17 @@ const defaultPullReq: PullReq = {
size: 20,
};
interface PullResp {
code: number;
message: string;
data?: {
current: number;
size: number;
total: number;
pages: number;
records: MdproDeck[];
};
interface RespData {
current: number;
size: number;
total: number;
pages: number;
records: MdproDeck[];
}
export async function pullDecks(
req: PullReq = defaultPullReq,
): Promise<PullResp | undefined> {
): Promise<MdproResp<RespData> | undefined> {
const myHeaders = mdproHeaders();
const params = new URLSearchParams();
......@@ -53,10 +49,5 @@ export async function pullDecks(
redirect: "follow",
});
if (!resp.ok) {
console.error(`[Pull of Mdpro Decks] HTTPS error! status: ${resp.status}`);
return undefined;
} else {
return await resp.json();
}
return await handleHttps(resp, API_PATH);
}
export interface MdproResp<T> {
code: number;
message: string;
data?: T;
}
export interface MdproDeck {
/*
*`ID` of the online deck.
......
import { useConfig } from "@/config";
import { MdproDeck } from "./schema";
import { mdproHeaders } from "./util";
import { MdproDeck, MdproResp } from "./schema";
import { handleHttps, mdproHeaders } from "./util";
const { mdproServer } = useConfig();
const API_PATH = "api/mdpro3/deck/upload";
interface UploadResp {
code: number;
message: string;
data: MdproDeck;
}
export async function uploadDeck(
req: MdproDeck,
): Promise<UploadResp | undefined> {
): Promise<MdproResp<MdproDeck> | undefined> {
const myHeaders = mdproHeaders();
myHeaders.append("Content-Type", "application/json");
......@@ -25,12 +19,5 @@ export async function uploadDeck(
redirect: "follow",
});
if (!resp.ok) {
console.error(
`[Upload of Mdpro Decks] HTTPS error! status: ${resp.status}`,
);
return undefined;
} else {
return await resp.json();
}
return await handleHttps(resp, API_PATH);
}
......@@ -4,3 +4,17 @@ export function mdproHeaders(): Headers {
return myHeaders;
}
export async function handleHttps<T>(
resp: Response,
api: string,
): Promise<T | undefined> {
if (!resp.ok) {
console.error(
`[Mdpro] Https error from api ${api}! status: ${resp.status}`,
);
return undefined;
} else {
return await resp.json();
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment