billoget-sdk
Version:
Official Node.js SDK for Billoget Public API - Complete budget, customer, and product management with approval workflows and UBS support
118 lines • 3.99 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.BudgetApprovalsService = void 0;
class BudgetApprovalsService {
constructor(httpClient) {
this.httpClient = httpClient;
}
// Configuration methods
/**
* Get approval configuration for the business
*/
async getConfig() {
const response = await this.httpClient.get("/api/public/budget-approvals/config");
return response.data;
}
/**
* Create or update approval configuration
*/
async createOrUpdateConfig(data) {
const response = await this.httpClient.post("/api/public/budget-approvals/config", data);
return response.data;
}
// Approvers management
/**
* Get all budget approvers for the business
*/
async getApprovers() {
const response = await this.httpClient.get("/api/public/budget-approvals/approvers");
return response.data;
}
/**
* Assign a user as budget approver
*/
async assignApprover(data) {
const response = await this.httpClient.post("/api/public/budget-approvals/approvers", data);
return response.data;
}
/**
* Remove a budget approver
*/
async removeApprover(approverId) {
await this.httpClient.delete(`/api/public/budget-approvals/approvers/${approverId}`);
}
// Approval workflow methods
/**
* Submit a budget for approval
*/
async submitForApproval(data) {
const response = await this.httpClient.post("/api/public/budget-approvals/submit", data);
return response.data;
}
/**
* Process an approval (approve or reject)
*/
async processApproval(approvalId, data) {
const response = await this.httpClient.post(`/api/public/budget-approvals/${approvalId}/process`, data);
return response.data;
}
// Query methods
/**
* Get pending approvals
*/
async getPendingApprovals(userId) {
const url = userId
? `/api/public/budget-approvals/pending?userId=${userId}`
: "/api/public/budget-approvals/pending";
const response = await this.httpClient.get(url);
return response.data;
}
/**
* Get approval history
*/
async getApprovalHistory(budgetId) {
const url = budgetId
? `/api/public/budget-approvals/history?budgetId=${budgetId}`
: "/api/public/budget-approvals/history";
const response = await this.httpClient.get(url);
return response.data;
}
/**
* Check if user can approve budgets
*/
async canUserApprove(userId) {
const url = userId
? `/api/public/budget-approvals/can-approve?userId=${userId}`
: "/api/public/budget-approvals/can-approve";
const response = await this.httpClient.get(url);
return response.data;
}
/**
* Get approval statistics
*/
async getApprovalStats() {
const response = await this.httpClient.get("/api/public/budget-approvals/stats");
return response.data;
}
/**
* Get approvals with filters and pagination
*/
async getApprovals(query = {}) {
const params = new URLSearchParams();
if (query.page)
params.append("page", query.page.toString());
if (query.limit)
params.append("limit", query.limit.toString());
if (query.status)
params.append("status", query.status);
if (query.budgetId)
params.append("budgetId", query.budgetId.toString());
if (query.userId)
params.append("userId", query.userId.toString());
const url = `/api/public/budget-approvals${params.toString() ? `?${params.toString()}` : ""}`;
const response = await this.httpClient.get(url);
return response.data;
}
}
exports.BudgetApprovalsService = BudgetApprovalsService;
//# sourceMappingURL=budget-approvals.js.map