UNPKG

fido-nordigen-node

Version:

Nordigen fido-rent (modified from official) API client for Node.js

91 lines (80 loc) 2.75 kB
import {HttpMethod} from "../httpMethod.js"; export default class RequisitionsApi { #endpoint = "requisitions"; #client = null; /** * Agreements api class * @param {Object} params * @param {NordigenClient} params.client */ constructor({client}) { this.#client = client; } /** * Create requisition. For creating links and retrieving accounts. * @param {Object} params * @param {string} params.redirectUrl application redirect url * @param {string} params.institutionId institution id * @param {string} [params.agreement] agreement id * @param {string} [params.userLanguage] to enforce a language for all end user steps hosted by Nordigen passed as a two-letter country code. Defaults to None * @param {string} params.reference additional layer of unique ID defined by yo * @returns Requisition object */ createRequisition({ redirectUrl, institutionId, agreement, userLanguage, reference }) { const payload = { "redirect": redirectUrl, "reference": reference, "institution_id": institutionId, ...(userLanguage && {"user_language": userLanguage}), ...(agreement && {"agreement": agreement}) }; return this.#client.request({ endpoint: `${this.#endpoint}/`, parameters: payload, method: HttpMethod.POST }) } /** * Get all requisitions@param {Object} params * @param {Object} params * @param {number} [params.limit] number of results to return per page. Defaults to 100. * @param {number} [params.offset] the initial index from which to return the results. Defaults to 0. * @returns Requisitions object */ getRequisitions({limit = 100, offset = 0} = {}) { const params = {limit, offset}; return this.#client.request({ endpoint: `${this.#endpoint}/`, method: HttpMethod.GET, parameters: params, }) } /** * Get requisition by id * @param {string} requisitionId * @returns Returns specific requisition */ getRequisitionById(requisitionId) { return this.#client.request({ endpoint: `${this.#endpoint}/${requisitionId}/` }) } /** * Delete requisition by id * @param {string} requisitionId * @returns Object that consist confirmation message that requisition has been deleted */ deleteRequisition(requisitionId) { return this.#client.request({ endpoint: `${this.#endpoint}/${requisitionId}/`, method: HttpMethod.DELETE }) } }