@phasesdk/api-client-for-economic
Version:
e-conomic REST API Library for Node.js is a powerful tool designed to simplify integration with the e-conomic platform for developers building Node.js applications. With this library, developers can effortlessly leverage the full functionality of the e-co
115 lines (105 loc) • 2.85 kB
text/typescript
import { CustomerInfo } from "./Customers";
import RestApi from "../../modules/RestApi";
import {
AuthToken,
InvoiceResponse,
Pagination,
} from "../../types/Economic.type";
import { HttpResponse } from "../../types/Http.type";
export type IPaymentTerms = {
paymentTermsNumber: number;
daysOfCredit: number;
description: string;
name: string;
paymentTermsType: string;
self: string;
};
export type PaymentTerms = {
contraAccountForPrepaidAmount: ContraAccountForPrepaidAmount;
paymentTermsNumber: number;
contraAccountForRemainderAmount: ContraAccountForRemainderAmount;
description: string;
self: string;
daysOfCredit: number;
name: string;
paymentTermsType:
| "net"
| "invoiceMonth"
| "paidInCash"
| "prepaid"
| "dueDate"
| "factoring"
| "invoiceWeekStartingSunday"
| "invoiceWeekStartingMonday"
| "creditcard";
percentageForPrepaidAmount: number;
percentageForRemainderAmount: number;
};
export type ContraAccountForPrepaidAmount = {
accountNumber: number;
self: string;
};
export type ContraAccountForRemainderAmount = {
accountNumber: number;
self: string;
};
export type creditCardCompany = CustomerInfo;
export default class ProductGroups extends RestApi {
/**
* @constructor
*/
constructor(props: AuthToken) {
super(props);
}
/**
* This endpoint allows you to fetch a collection of all product groups.
*
* @see https://restdocs.e-conomic.com/#get-payment-terms
*
* @param {number} offset
* @param {number} limit
* @returns {Promise<HttpResponse>}
*
*/
get(
offset: number = 0,
limit: number = 100
): Promise<HttpResponse<InvoiceResponse<IPaymentTerms[], Pagination>>> {
const requestObj = {
method: "get",
url: `/payment-terms?skippages=${offset}&pagesize=${limit}`,
};
return this._httpRequest<InvoiceResponse<IPaymentTerms[], Pagination>>(
requestObj
);
}
/**
* This endpoint allows you to fetch a specific product group.
*
* @see https://restdocs.e-conomic.com/#get-payment-terms
* @param {number} paymentTermsNumber
* @returns {Promise<HttpResponse>}
*/
getFor(paymentTermsNumber: number): Promise<HttpResponse<IPaymentTerms>> {
const requestObj = {
method: "get",
url: `/payment-terms/${paymentTermsNumber}`,
};
return this._httpRequest<IPaymentTerms>(requestObj);
}
/**
* Create a new product
* .
* @see https://restdocs.e-conomic.com/#post-payment-terms
* @param {PaymentTerms} paymentTerms
* @returns {Promise<HttpResponse<PaymentTerms>>}
*/
create(paymentTerms: any): Promise<HttpResponse<PaymentTerms>> {
const requestObj = {
method: "post",
url: `/payment-terms`,
data: paymentTerms,
};
return this._httpRequest<PaymentTerms>(requestObj);
}
}