UNPKG

@papra/api-sdk

Version:

Api SDK for Papra, the document archiving platform.

73 lines (69 loc) 1.96 kB
import { injectArguments } from "@corentinth/chisels"; import { ofetch } from "ofetch"; //#region package.json var version = "1.1.3"; //#endregion //#region src/http-client.ts function createApiClient({ apiKey, apiBaseUrl }) { const apiClient = ofetch.create({ headers: { "Authorization": `Bearer ${apiKey}`, "X-Papra-Source": `papra-api-sdk-javascript/${version}` }, baseURL: apiBaseUrl }); return { apiClient }; } //#endregion //#region src/api-client.ts const PAPRA_API_URL = "https://api.papra.app"; function createClient({ apiKey, apiBaseUrl = PAPRA_API_URL }) { const { apiClient } = createApiClient({ apiKey, apiBaseUrl }); const methods = injectArguments({ uploadDocument, listOrganizations, listTags, createTag, addTagToDocument }, { apiClient }); return { ...methods, forOrganization: (organizationId) => injectArguments(methods, { organizationId }) }; } async function uploadDocument({ file, organizationId, apiClient }) { const formData = new FormData(); formData.append("file", file); return await apiClient(`/api/organizations/${organizationId}/documents`, { method: "POST", body: formData }); } async function listOrganizations({ apiClient }) { return await apiClient("/api/organizations", { method: "GET" }); } async function listTags({ organizationId, apiClient }) { return await apiClient(`/api/organizations/${organizationId}/tags`, { method: "GET" }); } async function createTag({ organizationId, name, color, description, apiClient }) { return await apiClient(`/api/organizations/${organizationId}/tags`, { method: "POST", body: { name, color, description } }); } async function addTagToDocument({ organizationId, documentId, tagId, apiClient }) { return await apiClient(`/api/organizations/${organizationId}/documents/${documentId}/tags`, { method: "POST", body: { tagId } }); } //#endregion export { PAPRA_API_URL, createClient }; //# sourceMappingURL=index.js.map