feat: additional api package stuff

This commit is contained in:
Adrian Castro
2024-04-15 21:18:25 +02:00
parent 4e01f35458
commit 338e633d48
8 changed files with 340 additions and 0 deletions

48
packages/api/src/login.ts Normal file
View File

@@ -0,0 +1,48 @@
import { ofetch } from "ofetch";
import type { SessionResponse } from "./auth";
export interface ChallengeTokenResponse {
challenge: string;
}
export async function getLoginChallengeToken(
url: string,
publicKey: string,
): Promise<ChallengeTokenResponse> {
return ofetch<ChallengeTokenResponse>("/auth/login/start", {
method: "POST",
body: {
publicKey,
},
baseURL: url,
});
}
export interface LoginResponse {
session: SessionResponse;
token: string;
}
export interface LoginInput {
publicKey: string;
challenge: {
code: string;
signature: string;
};
device: string;
}
export async function loginAccount(
url: string,
data: LoginInput,
): Promise<LoginResponse> {
return ofetch<LoginResponse>("/auth/login/complete", {
method: "POST",
body: {
namespace: "movie-web",
...data,
},
baseURL: url,
});
}