mirror of
https://github.com/zoriya/Kyoo.git
synced 2025-05-24 02:02:36 -04:00
248 lines
5.0 KiB
TypeScript
248 lines
5.0 KiB
TypeScript
import { buildUrl } from "tests/utils";
|
|
import { app } from "~/base";
|
|
import type { SeedHistory } from "~/models/history";
|
|
import type { SeedSerie } from "~/models/serie";
|
|
import type { SerieWatchStatus } from "~/models/watchlist";
|
|
import { getJwtHeaders } from "./jwt";
|
|
|
|
export const createSerie = async (serie: SeedSerie) => {
|
|
const resp = await app.handle(
|
|
new Request(buildUrl("series"), {
|
|
method: "POST",
|
|
body: JSON.stringify(serie),
|
|
headers: {
|
|
"Content-Type": "application/json",
|
|
...(await getJwtHeaders()),
|
|
},
|
|
}),
|
|
);
|
|
const body = await resp.json();
|
|
return [resp, body] as const;
|
|
};
|
|
|
|
export const getSerie = async (
|
|
id: string,
|
|
{
|
|
langs,
|
|
...query
|
|
}: { langs?: string; preferOriginal?: boolean; with?: string[] },
|
|
) => {
|
|
const resp = await app.handle(
|
|
new Request(buildUrl(`series/${id}`, query), {
|
|
method: "GET",
|
|
headers: langs
|
|
? {
|
|
"Accept-Language": langs,
|
|
...(await getJwtHeaders()),
|
|
}
|
|
: await getJwtHeaders(),
|
|
}),
|
|
);
|
|
const body = await resp.json();
|
|
return [resp, body] as const;
|
|
};
|
|
|
|
export const getSeries = async ({
|
|
langs,
|
|
...query
|
|
}: { langs?: string; preferOriginal?: boolean; with?: string[] }) => {
|
|
const resp = await app.handle(
|
|
new Request(buildUrl("series", query), {
|
|
method: "GET",
|
|
headers: langs
|
|
? {
|
|
"Accept-Language": langs,
|
|
...(await getJwtHeaders()),
|
|
}
|
|
: await getJwtHeaders(),
|
|
}),
|
|
);
|
|
const body = await resp.json();
|
|
return [resp, body] as const;
|
|
};
|
|
|
|
export const getSeasons = async (
|
|
serie: string,
|
|
{
|
|
langs,
|
|
...opts
|
|
}: {
|
|
filter?: string;
|
|
limit?: number;
|
|
after?: string;
|
|
sort?: string | string[];
|
|
query?: string;
|
|
langs?: string;
|
|
preferOriginal?: boolean;
|
|
},
|
|
) => {
|
|
const resp = await app.handle(
|
|
new Request(buildUrl(`series/${serie}/seasons`, opts), {
|
|
method: "GET",
|
|
headers: langs
|
|
? {
|
|
"Accept-Language": langs,
|
|
...(await getJwtHeaders()),
|
|
}
|
|
: await getJwtHeaders(),
|
|
}),
|
|
);
|
|
const body = await resp.json();
|
|
return [resp, body] as const;
|
|
};
|
|
|
|
export const getEntries = async (
|
|
serie: string,
|
|
{
|
|
langs,
|
|
...opts
|
|
}: {
|
|
filter?: string;
|
|
limit?: number;
|
|
after?: string;
|
|
sort?: string | string[];
|
|
query?: string;
|
|
langs?: string;
|
|
preferOriginal?: boolean;
|
|
},
|
|
) => {
|
|
const resp = await app.handle(
|
|
new Request(buildUrl(`series/${serie}/entries`, opts), {
|
|
method: "GET",
|
|
headers: langs
|
|
? {
|
|
"Accept-Language": langs,
|
|
...(await getJwtHeaders()),
|
|
}
|
|
: await getJwtHeaders(),
|
|
}),
|
|
);
|
|
const body = await resp.json();
|
|
return [resp, body] as const;
|
|
};
|
|
|
|
export const getExtras = async (
|
|
serie: string,
|
|
opts: {
|
|
filter?: string;
|
|
limit?: number;
|
|
after?: string;
|
|
sort?: string | string[];
|
|
query?: string;
|
|
},
|
|
) => {
|
|
const resp = await app.handle(
|
|
new Request(buildUrl(`series/${serie}/extras`, opts), {
|
|
method: "GET",
|
|
headers: await getJwtHeaders(),
|
|
}),
|
|
);
|
|
const body = await resp.json();
|
|
return [resp, body] as const;
|
|
};
|
|
|
|
export const getUnknowns = async (opts: {
|
|
filter?: string;
|
|
limit?: number;
|
|
after?: string;
|
|
sort?: string | string[];
|
|
query?: string;
|
|
}) => {
|
|
const resp = await app.handle(
|
|
new Request(buildUrl("unknowns", opts), {
|
|
method: "GET",
|
|
headers: await getJwtHeaders(),
|
|
}),
|
|
);
|
|
const body = await resp.json();
|
|
return [resp, body] as const;
|
|
};
|
|
|
|
export const getNews = async ({
|
|
langs,
|
|
...opts
|
|
}: {
|
|
filter?: string;
|
|
limit?: number;
|
|
after?: string;
|
|
query?: string;
|
|
langs?: string;
|
|
preferOriginal?: boolean;
|
|
}) => {
|
|
const resp = await app.handle(
|
|
new Request(buildUrl("news", opts), {
|
|
method: "GET",
|
|
headers: langs
|
|
? {
|
|
"Accept-Language": langs,
|
|
...(await getJwtHeaders()),
|
|
}
|
|
: await getJwtHeaders(),
|
|
}),
|
|
);
|
|
const body = await resp.json();
|
|
return [resp, body] as const;
|
|
};
|
|
|
|
export const setSerieStatus = async (
|
|
id: string,
|
|
status: Omit<SerieWatchStatus, "seenCount">,
|
|
) => {
|
|
const resp = await app.handle(
|
|
new Request(buildUrl(`series/${id}/watchstatus`), {
|
|
method: "POST",
|
|
body: JSON.stringify(status),
|
|
headers: {
|
|
"Content-Type": "application/json",
|
|
...(await getJwtHeaders()),
|
|
},
|
|
}),
|
|
);
|
|
const body = await resp.json();
|
|
return [resp, body] as const;
|
|
};
|
|
|
|
export const getHistory = async (
|
|
profile: string,
|
|
{
|
|
langs,
|
|
...opts
|
|
}: {
|
|
filter?: string;
|
|
limit?: number;
|
|
after?: string;
|
|
query?: string;
|
|
langs?: string;
|
|
preferOriginal?: boolean;
|
|
},
|
|
) => {
|
|
const resp = await app.handle(
|
|
new Request(buildUrl(`profiles/${profile}/history`, opts), {
|
|
method: "GET",
|
|
headers: langs
|
|
? {
|
|
"Accept-Language": langs,
|
|
...(await getJwtHeaders()),
|
|
}
|
|
: await getJwtHeaders(),
|
|
}),
|
|
);
|
|
const body = await resp.json();
|
|
return [resp, body] as const;
|
|
};
|
|
|
|
export const addToHistory = async (profile: string, seed: SeedHistory[]) => {
|
|
const resp = await app.handle(
|
|
new Request(buildUrl(`profiles/${profile}/history`), {
|
|
method: "POST",
|
|
body: JSON.stringify(seed),
|
|
headers: {
|
|
"Content-Type": "application/json",
|
|
...(await getJwtHeaders()),
|
|
},
|
|
}),
|
|
);
|
|
const body = await resp.json();
|
|
return [resp, body] as const;
|
|
};
|