Files
X-Financial/web/src/services/budgets.js

32 lines
1.0 KiB
JavaScript
Raw Normal View History

import { apiRequest } from './api.js'
function buildQuery(params = {}) {
const search = new URLSearchParams()
Object.entries(params || {}).forEach(([key, value]) => {
if (typeof value === 'undefined' || value === null || value === '') return
search.set(key === 'pageSize' ? 'page_size' : key, String(value))
})
const query = search.toString()
return query ? `?${query}` : ''
}
export function fetchBudgetSummary(params = {}) {
return apiRequest(`/budgets/summary${buildQuery(params)}`)
}
export function fetchBudgetAllocations(params = {}) {
return apiRequest(`/budgets/allocations${buildQuery(params)}`)
}
export function createBudgetAllocation(payload = {}) {
return apiRequest('/budgets/allocations', {
method: 'POST',
body: JSON.stringify(payload)
})
}
export function fetchBudgetTransactions(allocationId, params = {}) {
const encodedId = encodeURIComponent(String(allocationId || '').trim())
return apiRequest(`/budgets/allocations/${encodedId}/transactions${buildQuery(params)}`)
}