작업중

This commit is contained in:
2023-08-06 08:03:29 +00:00
parent 2b27b8b427
commit 7352cdbf23
6 changed files with 161 additions and 32 deletions
+56
View File
@@ -0,0 +1,56 @@
import { APIPathGen } from "../api/APIPathGen";
import { RawArgType } from "../api/base";
import { APICallT, APITail, GET, POST, callClientAPI, extractHttpMethod } from "./clientAPI";
export type LoginResponse = {
result: true,
nextToken: [number, string] | undefined,
}
export type LoginFailed = {
result: false,
reqOTP: boolean,
reason: string,
}
export type AutoLoginNonceResponse = {
result: true,
loginNonce: string,
};
export type AutoLoginResponse = {
result: true,
nextToken: [number, string] | undefined,
}
export type AutoLoginFailed = {
result: false,
silent: boolean,
reason: string,
}
const apiRealPath = {
Login: {
LoginByID: POST as APICallT<{
username: string,
password: string,
}, LoginResponse, LoginFailed>,
LoginByToken: POST as APICallT<{
hashedToken: string,
token_id: number,
}, AutoLoginResponse, AutoLoginFailed>,
ReqNonce: GET as APICallT<undefined, AutoLoginNonceResponse, AutoLoginFailed>
},
} as const;
export const SammoRootAPI = APIPathGen(apiRealPath, (path: string[], tail: APITail, pathParam) => {
const method = extractHttpMethod(tail);
return (args?: RawArgType, returnError?: boolean) => {
if (returnError) {
return callClientAPI(method, path.join('/'), args, pathParam, true);
}
return callClientAPI(method, path.join('/'), args, pathParam);
};
});