Files
update_xlsx/src/clarizen/client.ts
T

39 lines
1.1 KiB
TypeScript
Raw Normal View History

2026-06-04 14:45:08 -03:00
import { Clarizen, ClarizenApiError } from "@arco/clarizen-lib";
export function getApiKey(): string | undefined {
return process.env.CLARIZEN_API_KEY ?? process.env.API_KEY_AW;
}
export function createClarizenClient(): Clarizen {
const apiKey = getApiKey();
if (!apiKey) {
throw new Error(
"Defina CLARIZEN_API_KEY ou API_KEY_AW no arquivo .env na raiz do projeto.",
);
}
return new Clarizen({
baseUrl: process.env.CLARIZEN_BASE_URL ?? "https://api.clarizen.com",
apiToken: apiKey,
});
}
export async function checkClarizenAuth(
clarizen: Clarizen,
): Promise<{ ok: true; userId: string } | { ok: false; message: string; status?: number }> {
try {
const session = await clarizen.authentication.getSessionInfo();
return { ok: true, userId: session.userId };
} catch (err) {
if (err instanceof ClarizenApiError) {
return {
ok: false,
message: err.message,
status: err.status === 401 || err.status === 403 ? err.status : 502,
};
}
const message = err instanceof Error ? err.message : "Falha de autenticação";
return { ok: false, message, status: 502 };
}
}