UNPKG

asaasjs

Version:

An AsaasJS SDK for NodeJS

1 lines 12.7 kB
{"version":3,"sources":["../src/constants.ts","../src/exceptions.ts","../src/requests.ts","../src/utils.ts","../src/index.ts"],"names":[],"mappings":"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","file":"index.cjs","sourcesContent":["export const BASE_URL = \"https://api.asaas.com/v3\"\nexport const SANDBOX_BASE_URL = \"https://api-sandbox.asaas.com/v3\"\nexport const ASAAS_DOCS = \"https://docs.asaas.com/reference\"\nexport function DEFAULT_HEADERS(apiKey: string) {\n return {\n \"content-type\": \"application/json\",\n accept: \"application/json\",\n access_token: apiKey,\n \"user-agent\": `NodeJS SDK`,\n }\n}\n","import { ASAAS_DOCS } from \"./constants\"\n\n/**\n * Default class for Asaas exceptions and errors.\n *\n * It can be serialized to JSON through the `toJSON` method.\n */\nexport class AsaasError extends Error {\n constructor(message: string) {\n super(\n `Asaas Error: ${message}\\n\\nPlease, refer to the documentation at: ${ASAAS_DOCS}`\n )\n this.name = \"AsaasError\"\n }\n\n toJSON() {\n return {\n name: this.name,\n message: this.message,\n }\n }\n}\n\nexport const ApiErrors = {\n 401: {\n code: \"unauthorized\",\n description: \"Unauthorized request\",\n },\n 403: {\n code: \"forbidden\",\n description: \"Forbidden request\",\n },\n 404: {\n code: \"not_found\",\n description: \"Resource not found\",\n },\n}\n\nexport type AsaasApiError = {\n errors: {\n code: string\n description: string\n }[]\n}\n","import { BASE_URL, SANDBOX_BASE_URL, DEFAULT_HEADERS } from \"./constants\"\nimport { ApiErrors } from \"./exceptions\"\n\nexport function createRequest(\n apiKey: string,\n sandbox: boolean\n): <TResponse>(\n path: string,\n options: Parameters<typeof fetch>[1]\n) => Promise<TResponse> {\n const url = sandbox ? SANDBOX_BASE_URL : BASE_URL\n const defaultHeaders = DEFAULT_HEADERS(apiKey)\n\n return async <TResponse>(\n path: string,\n options: Parameters<typeof fetch>[1]\n ): Promise<TResponse> => {\n try {\n const response = await fetch(`${url}${path}`, {\n ...options,\n headers: { ...defaultHeaders, ...options?.headers },\n })\n\n try {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const data: any = await response.json()\n if (!response.ok) {\n return { errors: data.errors, data: null } as TResponse\n }\n return { data, errors: null } as TResponse\n } catch (error) {\n if (!response.ok && response.status in ApiErrors) {\n return {\n data: null,\n errors: [ApiErrors[response.status as keyof typeof ApiErrors]],\n } as TResponse\n }\n return {\n data: null,\n errors: [\n {\n code: \"sdk_error\",\n description: (error as Error).message,\n },\n ],\n } as TResponse\n }\n } catch (error) {\n return {\n errors: {\n code: \"sdk_error\",\n description: (error as Error).message,\n },\n data: null,\n } as TResponse\n }\n }\n}\n","export function objectToQueryString<T extends object>(obj: T) {\n if (obj === null || obj === undefined) {\n return \"\"\n }\n\n return Object.entries(obj as Record<string, unknown>)\n .filter(([, value]) => value !== undefined && value !== null)\n .map(([key, value]) => {\n if (value === null || value === undefined) {\n return\n }\n\n if (typeof value === \"object\") {\n return `${encodeURIComponent(key)}=${encodeURIComponent(\n JSON.stringify(value)\n )}`\n }\n\n return `${encodeURIComponent(key)}=${encodeURIComponent(\n value.toString()\n )}`\n })\n .join(\"&\")\n}\n","import { AsaasError } from \"./exceptions\"\nimport { createRequest } from \"./requests\"\nimport type {\n CreateCustomerData,\n CreateCustomerResponse,\n CreatePaymentData,\n CreatePaymentResponse,\n CreatePaymentWithCreditCardData,\n CreatePaymentWithCreditCardResponse,\n ListCustomersData,\n ListCustomersResponse,\n ShowIdentificationFieldResponse,\n ShowPaymentResponse,\n ShowPixQrCodeResponse,\n} from \"./types\"\nimport { objectToQueryString } from \"./utils\"\n\nfunction asaasjs({\n apiKey,\n sandbox = false,\n}: {\n sandbox?: boolean\n apiKey: string\n}) {\n if (!apiKey) throw new AsaasError(\"API key is required!\")\n const request = createRequest(apiKey, sandbox)\n\n return {\n /**\n * Gerencie seus clientes.\n */\n customers: {\n /**\n * Permite que você recupere uma lista dos clientes criados.\n *\n * @returns Lista de clientes criados ou erro\n * @example\n * ```ts\n * const asaasjs = asaasjs('apiKey');\n *\n * const response = await asaasjs.customers.list();\n * /* ... * /\n */\n list(data: ListCustomersData = {}): Promise<ListCustomersResponse> {\n return request(`/customers?${objectToQueryString(data)}`, {\n method: \"GET\",\n })\n },\n\n /**\n * Permite que você cadastre um novo cliente\n *\n * @returns Cliente criado ou erro\n * @example\n * ```ts\n * const asaasjs = asaasjs('apiKey');\n *\n * const response = await asaasjs.customers.create(data);\n * /* ... * /\n */\n create(data: CreateCustomerData): Promise<CreateCustomerResponse> {\n return request(`/customers`, {\n method: \"POST\",\n body: JSON.stringify(data),\n })\n },\n },\n\n /**\n * Gerencie suas cobranças.\n */\n payments: {\n /**\n * Permite que você crie uma nova cobrança\n *\n * @returns Cobrança criada ou erro\n * @example\n * ```ts\n * const asaasjs = asaasjs('apiKey');\n *\n * const response = await asaasjs.payments.create(data);\n * /* ... * /\n */\n create(data: CreatePaymentData): Promise<CreatePaymentResponse> {\n return request(`/payments`, {\n method: \"POST\",\n body: JSON.stringify(data),\n })\n },\n\n /**\n * Permite que você crie uma nova cobrança pagando com cartão de crédito\n *\n * @returns Cobrança criada ou erro\n * @example\n * ```ts\n * const asaasjs = asaasjs('apiKey');\n *\n * const response = await asaasjs.payments.create(data);\n * /* ... * /\n */\n createWithCreditCard(\n data: CreatePaymentWithCreditCardData\n ): Promise<CreatePaymentWithCreditCardResponse> {\n return request(`/payments`, {\n method: \"POST\",\n body: JSON.stringify(data),\n })\n },\n\n /**\n * Permite que você recupere uma única cobrança\n *\n * @returns Cobrança ou erro\n * @example\n * ```ts\n * const asaasjs = asaasjs('apiKey');\n *\n * const response = await asaasjs.payments.show(cobrancaId);\n * /* ... * /\n */\n show(id: string): Promise<ShowPaymentResponse> {\n return request(`/payments/${id}`, {\n method: \"GET\",\n })\n },\n\n /**\n * Permite que você recupere a linha digitável de uma cobrança única\n *\n * @returns Linha digitável ou erro\n * @example\n * ```ts\n * const asaasjs = asaasjs('apiKey');\n *\n * const response = await asaasjs.payments.showIdentificationField(cobrancaId);\n * /* ... * /\n */\n showIdentificationField(\n id: string\n ): Promise<ShowIdentificationFieldResponse> {\n return request(`/payments/${id}/identificationField`, {\n method: \"GET\",\n })\n },\n\n /**\n * Permite que você recupere o QR Code Pix de uma cobrança única\n *\n * @returns QRCode ou erro\n * @example\n * ```ts\n * const asaasjs = asaasjs('apiKey');\n *\n * const response = await asaasjs.payments.showPixQrCode(cobrancaId);\n * /* ... * /\n */\n showPixQrCode(id: string): Promise<ShowPixQrCodeResponse> {\n return request(`/payments/${id}/pixQrCode`, {\n method: \"GET\",\n })\n },\n },\n }\n}\n\nexport { AsaasError, asaasjs }\n"]}