api.ts•1.2 kB
import { getTrpcClient } from "./trpc";
export function getAuthHeader(apiKey: string) {
return {
"Content-Type": "application/json",
authorization: `Bearer ${apiKey}`,
};
}
export async function uploadTestAsset(
apiKey: string,
port: number,
file: File,
) {
const formData = new FormData();
formData.append("file", file);
const response = await fetch(`http://localhost:${port}/api/v1/assets`, {
method: "POST",
headers: {
authorization: `Bearer ${apiKey}`,
},
body: formData,
});
if (!response.ok) {
throw new Error(`Failed to upload asset: ${response.statusText}`);
}
return response.json() as Promise<{
assetId: string;
contentType: string;
fileName: string;
}>;
}
export async function createTestUser() {
const trpc = getTrpcClient();
const random = Math.random().toString(36).substring(7);
const email = `testuser+${random}@example.com`;
await trpc.users.create.mutate({
name: "Test User",
email,
password: "test1234",
confirmPassword: "test1234",
});
const { key } = await trpc.apiKeys.exchange.mutate({
email,
password: "test1234",
keyName: "test-key",
});
return key;
}