@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
185 lines (184 loc) • 6.4 kB
TypeScript
import RestApi from "../../modules/RestApi";
import { CustomerInfo } from "./Customers";
import { Delivery, DeliveryLocation } from "./DeliveryLocation";
import { Lines, Note, Pdf, Recipient, References } from "./Invoices";
import { Templates } from "./Templates";
import { ProjectInfo } from "./Projects";
import { PaymentTerms } from "./PaymentTerms";
import { HttpResponse } from "../../types/Http.type";
import { AuthToken, OrderResponse, Pagination } from "../../types/Economic.type";
import { Endpoints } from "./Common";
/**
* Represents the base `Order` interface for all order types.
*/
interface Order {
currency: string;
customer: CustomerInfo;
date: string;
dueDate: string;
delivery: Delivery;
deliveryLocation: DeliveryLocation;
grossAmount: number;
netAmount: number;
netAmountInBaseCurrency: number;
notes: Note;
paymentTerms: Pick<PaymentTerms, "paymentTermsNumber" | "paymentTermsType" | "name" | "self" | "description" | "daysOfCredit">;
pdf: Pdf;
project: ProjectInfo;
recipient: Recipient;
references: References;
roundingAmount: number;
self: string;
vatAmount: number;
}
export type InvoiceEndpoints = Pick<Endpoints, "archived" | "drafts" | "sent" | "self">;
type Soap = {
orderHandle: OrderHandle;
};
type OrderHandle = {
id: number;
};
/**
* Represents a draft order interface extending the base `Order` interface.
*/
export interface DraftOrder extends Order {
costPriceInBaseCurrency: number;
exchangeRate: number;
grossAmountInBaseCurrency: number;
lastUpdated: number;
marginInBaseCurrency: number;
marginPercentage: number;
soap: Soap;
templates: Pick<Templates, "self" | "upgradeInstructions">;
orderNumber: number;
}
/**
* Represents a single draft order interface extending `DraftOrder` interface.
*/
export interface SingleDraftOrder extends DraftOrder {
lines: Lines;
}
/**
* Represents a sent order interface extending `DraftOrder` interface.
*/
export interface SentOrder extends DraftOrder {
}
/**
* Represents a archived order interface extending `DraftOrder` interface.
*/
export interface ArchivedOrder extends DraftOrder {
}
export type SentOrderUpdate = Pick<DraftOrder, "orderNumber">;
export default class Orders extends RestApi {
/**
* @constructor
*/
constructor(props: AuthToken);
/**
* This is the root for the orders endpoint. From here you can navigate to draft, sent and archived orders.
*
* @see https://restdocs.e-conomic.com/#orders
* @returns {Promise<HttpResponse>}
*
*/
get(): Promise<HttpResponse<InvoiceEndpoints>>;
/**
* This returns a collection of all draft orders.
*
* @see https://restdocs.e-conomic.com/#get-orders-drafts
*
* @param {number} offset
* @param {number} limit
* @returns {Promise<HttpResponse>}
*
*/
getDrafts(offset?: number, limit?: number): Promise<HttpResponse<OrderResponse<DraftOrder[], Pagination>>>;
/**
* Returns a specific customer's order drafts.
*
* @param {number} customerNumber
* @returns {Promise<HttpResponse>}
*/
getCustomerOrderDrafts(customerNumber: number, skipPages?: number, limit?: number): Promise<HttpResponse<OrderResponse<DraftOrder[], Pagination>>>;
/**
* This endpoint provides you with the entire document for a specific order draft.
*
* @see https://restdocs.e-conomic.com/#get-orders-drafts-ordernumber
* @param {number} orderNumber
* @returns {Promise<HttpResponse>}
*
*/
getDraft(orderNumber: number): Promise<HttpResponse<SingleDraftOrder>>;
/**
* Create a new draft order.
* @see https://restdocs.e-conomic.com/#post-orders-drafts
* @param {DraftOrder} draftOrder
* @returns {Promise<HttpResponse<SingleDraftOrder>>}
*/
createDraftOrder(draftOrder: DraftOrder): Promise<HttpResponse<SingleDraftOrder>>;
/**
* Update an existing draft order.
* @see https://restdocs.e-conomic.com/#put-orders-drafts-ordernumber
* @param {number} orderNumber
* @param {DraftOrder} draftOrder
* @returns {Promise<HttpResponse<SingleDraftOrder>>}
*/
updateDraftOrder(orderNumber: number, draftOrder: DraftOrder): Promise<HttpResponse<SingleDraftOrder>>;
/**
* Delete an existing draft order.
* @see https://restdocs.e-conomic.com/#delete-orders-drafts-ordernumber
* @param {number} orderNumber
* @returns {Promise<HttpResponse<void>>}
*/
deleteDraftOrder(orderNumber: number): Promise<HttpResponse<void>>;
/**
* This returns a collection of all sent orders.
*
* @see https://restdocs.e-conomic.com/#get-orders-sent
*
* @param {number} offset
* @param {number} limit
* @returns {Promise<HttpResponse>}
*
*/
getAllSent(offset?: number, limit?: number): Promise<HttpResponse<OrderResponse<SentOrder[], Pagination>>>;
/**
* This endpoint provides you with the entire document for a specific sent order.
*
* @see https://restdocs.e-conomic.com/#get-orders-sent-ordernumber
*
* @param {number} orderNumber
* @returns {Promise<HttpResponse>}
*
*/
getSent(orderNumber: number): Promise<HttpResponse<SentOrder>>;
/**
* Create sent order
*
* @param {SentOrderUpdate} sentOrder
* @returns {Promise<HttpResponse<DraftOrder>>}
*/
sentDraftOrder(sentOrder: SentOrderUpdate): Promise<HttpResponse<DraftOrder>>;
/**
* This returns a collection of all archived orders.
*
* @see https://restdocs.e-conomic.com/#get-orders-archived
*
* @param {number} offset
* @param {number} limit
* @returns {Promise<HttpResponse>}
*
*/
getAllArchived(offset?: number, limit?: number): Promise<HttpResponse<OrderResponse<ArchivedOrder[], Pagination>>>;
/**
* This endpoint provides you with the entire document for a specific archived order. An archived order is an order that was first registered as sent and then upgraded to invoice draft.
*
* @see https://restdocs.e-conomic.com/#get-orders-archived-ordernumber
*
* @param {number} orderNumber
* @returns {Promise<HttpResponse>}
*
*/
getArchived(orderNumber: number): Promise<HttpResponse<ArchivedOrder>>;
}
export {};