All files / src/lib/api invitations.ts

100% Statements 5/5
100% Branches 0/0
100% Functions 4/4
100% Lines 5/5

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46      94x         2x                   3x                     2x             3x                  
// Invitation API - for accepting team invitations
import { request } from "./base";
 
export const invitationApi = {
	async previewInvitation(
		token: string,
		options?: { signal?: AbortSignal },
	) {
		return request<{
			email: string;
			role: string;
			proName: string;
			expiresAt: string;
			accountExists: boolean;
		}>(`/api/invitations/${token}/preview`, { signal: options?.signal });
	},
 
	async getInvitation(token: string) {
		return request<{
			id: number;
			email: string;
			role: string;
			pro: { id: string; businessName: string } | null;
			invitedBy: { id: string; name: string } | null;
			expiresAt: string;
		}>(`/api/invitations/${token}`);
	},
 
	async verifySignup(token: string, email: string) {
		return request<{ verified: boolean }>(`/api/invitations/${token}/verify-signup`, {
			method: "POST",
			body: { email },
		});
	},
 
	async acceptInvitation(token: string) {
		return request<{
			message: string;
			role: string;
			pro: { id: string; businessName: string } | null;
		}>(`/api/invitations/${token}/accept`, {
			method: "POST",
		});
	},
};