aboutsummaryrefslogtreecommitdiffhomepage
path: root/frontend/app/.server/api
diff options
context:
space:
mode:
Diffstat (limited to 'frontend/app/.server/api')
-rw-r--r--frontend/app/.server/api/client.ts7
-rw-r--r--frontend/app/.server/api/schema.d.ts82
2 files changed, 86 insertions, 3 deletions
diff --git a/frontend/app/.server/api/client.ts b/frontend/app/.server/api/client.ts
index 12f2fc6..8e50b7e 100644
--- a/frontend/app/.server/api/client.ts
+++ b/frontend/app/.server/api/client.ts
@@ -1,4 +1,9 @@
import createClient from "openapi-fetch";
import type { paths } from "./schema";
-export const apiClient = createClient<paths>({ baseUrl: "http://api-server/" });
+export const apiClient = createClient<paths>({
+ baseUrl:
+ process.env.NODE_ENV === "development"
+ ? "http://localhost:8002/api/"
+ : "http://api-server/api/",
+});
diff --git a/frontend/app/.server/api/schema.d.ts b/frontend/app/.server/api/schema.d.ts
index 5219ac8..cd87705 100644
--- a/frontend/app/.server/api/schema.d.ts
+++ b/frontend/app/.server/api/schema.d.ts
@@ -4,7 +4,7 @@
*/
export interface paths {
- "/api/login": {
+ "/login": {
parameters: {
query?: never;
header?: never;
@@ -64,6 +64,60 @@ export interface paths {
patch?: never;
trace?: never;
};
+ "/games": {
+ parameters: {
+ query?: never;
+ header?: never;
+ path?: never;
+ cookie?: never;
+ };
+ /** List games */
+ get: {
+ parameters: {
+ query?: {
+ player_id?: number;
+ };
+ header: {
+ Authorization: string;
+ };
+ path?: never;
+ cookie?: never;
+ };
+ requestBody?: never;
+ responses: {
+ /** @description List of games */
+ 200: {
+ headers: {
+ [name: string]: unknown;
+ };
+ content: {
+ "application/json": {
+ games: components["schemas"]["Game"][];
+ };
+ };
+ };
+ /** @description Forbidden */
+ 403: {
+ headers: {
+ [name: string]: unknown;
+ };
+ content: {
+ "application/json": {
+ /** @example Forbidden operation */
+ message: string;
+ };
+ };
+ };
+ };
+ };
+ put?: never;
+ post?: never;
+ delete?: never;
+ options?: never;
+ head?: never;
+ patch?: never;
+ trace?: never;
+ };
}
export type webhooks = Record<string, never>;
export interface components {
@@ -76,10 +130,34 @@ export interface components {
/** @example John Doe */
display_name: string;
/** @example /images/john.jpg */
- icon_path?: string | null;
+ icon_path?: string;
/** @example false */
is_admin: boolean;
};
+ Game: {
+ /** @example 1 */
+ game_id: number;
+ /**
+ * @example active
+ * @enum {string}
+ */
+ state: "closed" | "waiting_entries" | "waiting_start" | "prepare" | "starting" | "gaming" | "finished";
+ /** @example Game 1 */
+ display_name: string;
+ /** @example 360 */
+ duration_seconds: number;
+ /** @example 946684800 */
+ started_at?: number;
+ problem?: components["schemas"]["Problem"];
+ };
+ Problem: {
+ /** @example 1 */
+ problem_id: number;
+ /** @example Problem 1 */
+ title: string;
+ /** @example This is a problem */
+ description: string;
+ };
};
responses: never;
parameters: never;