diff --git a/server/api/Login/index.ts b/server/api/Login/index.ts index 31b12e4..5ee8352 100644 --- a/server/api/Login/index.ts +++ b/server/api/Login/index.ts @@ -3,9 +3,11 @@ import type { APINamespaceType } from "../defs"; import { LoginByID } from "./LoginByID"; import { LoginByToken } from "./LoginByToken"; import { ReqNonce } from "./ReqNonce"; +import { test } from "./test"; export const Login = { LoginByID, LoginByToken, ReqNonce, + test, } satisfies APINamespaceType; \ No newline at end of file diff --git a/server/api/Login/test.ts b/server/api/Login/test.ts new file mode 100644 index 0000000..006096e --- /dev/null +++ b/server/api/Login/test.ts @@ -0,0 +1,18 @@ +import { GET } from "../defs"; +import type { structure } from "../../apiStructure/sammoRootAPI"; +import type { ExtractError, ExtractQuery, ExtractResponse } from "../../apiStructure/defs"; + +type BaseAPI = typeof structure.Login.test; +type RType = ExtractResponse; +type EType = ExtractError; +type QType = ExtractQuery; + +export class test extends GET{ + protected ReqNonce = Symbol("ReqNonce");//TODO: remove this + protected override async api(query: QType): Promise { + return { + hello: "world", + result: true, + } + } +} \ No newline at end of file diff --git a/server/apiStructure/defs.ts b/server/apiStructure/defs.ts index ebc30fc..d91f6b2 100644 --- a/server/apiStructure/defs.ts +++ b/server/apiStructure/defs.ts @@ -136,18 +136,18 @@ export type HeadAPICallT< export type APITail = ReturnType | ReturnType | ReturnType | ReturnType | ReturnType | ReturnType; export function GET< - ResultType extends ValidResponse, - ErrorType extends InvalidResponse, + ResultType extends ValidResponse = ValidResponse, + ErrorType extends InvalidResponse = InvalidResponse, >(): EmptyGetAPICallT export function GET< ArgType extends RawArgType, - ResultType extends ValidResponse, - ErrorType extends InvalidResponse, + ResultType extends ValidResponse = ValidResponse, + ErrorType extends InvalidResponse = InvalidResponse, >(): BasicGetAPICallT; export function GET< ArgType extends RawArgType, - ResultType extends ValidResponse, - ErrorType extends InvalidResponse, + ResultType extends ValidResponse = ValidResponse, + ErrorType extends InvalidResponse = InvalidResponse, >(): BasicGetAPICallT | EmptyGetAPICallT { return Object.assign( fakeGET, @@ -156,18 +156,18 @@ export function GET< } export function POST< - ResultType extends ValidResponse, - ErrorType extends InvalidResponse, + ResultType extends ValidResponse = ValidResponse, + ErrorType extends InvalidResponse = InvalidResponse, >(): EmptyPostAPICallT export function POST< ArgType extends RawArgType, - ResultType extends ValidResponse, - ErrorType extends InvalidResponse, + ResultType extends ValidResponse = ValidResponse, + ErrorType extends InvalidResponse = InvalidResponse, >(): BasicPostAPICallT; export function POST< ArgType extends RawArgType, - ResultType extends ValidResponse, - ErrorType extends InvalidResponse, + ResultType extends ValidResponse = ValidResponse, + ErrorType extends InvalidResponse = InvalidResponse, >(): BasicPostAPICallT | EmptyPostAPICallT { return Object.assign( fakePOST, @@ -176,18 +176,18 @@ export function POST< } export function PUT< - ResultType extends ValidResponse, - ErrorType extends InvalidResponse, + ResultType extends ValidResponse = ValidResponse, + ErrorType extends InvalidResponse = InvalidResponse, >(): EmptyPutAPICallT export function PUT< ArgType extends RawArgType, - ResultType extends ValidResponse, - ErrorType extends InvalidResponse, + ResultType extends ValidResponse = ValidResponse, + ErrorType extends InvalidResponse = InvalidResponse, >(): BasicPutAPICallT; export function PUT< ArgType extends RawArgType, - ResultType extends ValidResponse, - ErrorType extends InvalidResponse, + ResultType extends ValidResponse = ValidResponse, + ErrorType extends InvalidResponse = InvalidResponse, >(): BasicPutAPICallT | EmptyPutAPICallT { return Object.assign( fakePUT, @@ -196,18 +196,18 @@ export function PUT< } export function DELETE< - ResultType extends ValidResponse, - ErrorType extends InvalidResponse, + ResultType extends ValidResponse = ValidResponse, + ErrorType extends InvalidResponse = InvalidResponse, >(): EmptyDeleteAPICallT export function DELETE< ArgType extends RawArgType, - ResultType extends ValidResponse, - ErrorType extends InvalidResponse, + ResultType extends ValidResponse = ValidResponse, + ErrorType extends InvalidResponse = InvalidResponse, >(): BasicDeleteAPICallT; export function DELETE< ArgType extends RawArgType, - ResultType extends ValidResponse, - ErrorType extends InvalidResponse, + ResultType extends ValidResponse = ValidResponse, + ErrorType extends InvalidResponse = InvalidResponse, >(): BasicDeleteAPICallT | EmptyDeleteAPICallT { return Object.assign( fakeDELETE, @@ -216,18 +216,18 @@ export function DELETE< } export function PATCH< - ResultType extends ValidResponse, - ErrorType extends InvalidResponse, + ResultType extends ValidResponse = ValidResponse, + ErrorType extends InvalidResponse = InvalidResponse, >(): EmptyPatchAPICallT export function PATCH< ArgType extends RawArgType, - ResultType extends ValidResponse, - ErrorType extends InvalidResponse, + ResultType extends ValidResponse = ValidResponse, + ErrorType extends InvalidResponse = InvalidResponse, >(): BasicPatchAPICallT; export function PATCH< ArgType extends RawArgType, - ResultType extends ValidResponse, - ErrorType extends InvalidResponse, + ResultType extends ValidResponse = ValidResponse, + ErrorType extends InvalidResponse = InvalidResponse, >(): BasicPatchAPICallT | EmptyPatchAPICallT { return Object.assign( fakePATCH, @@ -236,18 +236,18 @@ export function PATCH< } export function HEAD< - ResultType extends ValidResponse, - ErrorType extends InvalidResponse, + ResultType extends ValidResponse = ValidResponse, + ErrorType extends InvalidResponse = InvalidResponse, >(): EmptyHeadAPICallT export function HEAD< ArgType extends RawArgType, - ResultType extends ValidResponse, - ErrorType extends InvalidResponse, + ResultType extends ValidResponse = ValidResponse, + ErrorType extends InvalidResponse = InvalidResponse, >(): BasicHeadAPICallT; export function HEAD< ArgType extends RawArgType, - ResultType extends ValidResponse, - ErrorType extends InvalidResponse, + ResultType extends ValidResponse = ValidResponse, + ErrorType extends InvalidResponse = InvalidResponse, >(): BasicHeadAPICallT | EmptyHeadAPICallT { return Object.assign( fakeHEAD, diff --git a/server/apiStructure/sammoRootAPI.ts b/server/apiStructure/sammoRootAPI.ts index 364a39b..21363ed 100644 --- a/server/apiStructure/sammoRootAPI.ts +++ b/server/apiStructure/sammoRootAPI.ts @@ -40,6 +40,7 @@ export const structure = { hashedToken: string, token_id: number, }, AutoLoginResponse, AutoLoginFailed>(), - ReqNonce: GET() + ReqNonce: GET(), + test: GET<{result: true, hello:'world'}>(), }, } satisfies DefAPINamespace; \ No newline at end of file