From 2b1ba88983182c74a9f7c2987c81dccd829fa4c7 Mon Sep 17 00:00:00 2001 From: rodriguestiago0 <tiagomcrodrigues@gmail.com> Date: Sun, 4 Aug 2024 19:56:11 +0100 Subject: [PATCH] Add Reset Hold and Hold For Next Month api (#3140) --- packages/api/methods.ts | 8 +++++++ packages/loot-core/src/server/api.ts | 21 +++++++++++++++++++ .../loot-core/src/types/api-handlers.d.ts | 7 +++++++ upcoming-release-notes/3140.md | 6 ++++++ 4 files changed, 42 insertions(+) create mode 100644 upcoming-release-notes/3140.md diff --git a/packages/api/methods.ts b/packages/api/methods.ts index 06109bf83..fc3455063 100644 --- a/packages/api/methods.ts +++ b/packages/api/methods.ts @@ -208,3 +208,11 @@ export function updateRule(rule) { export function deleteRule(id) { return send('api/rule-delete', { id }); } + +export function holdBudgetForNextMonth(month, amount) { + return send('api/budget-hold-for-next-month', { month, amount }); +} + +export function resetBudgetHold(month) { + return send('api/budget-reset-hold', { month }); +} diff --git a/packages/loot-core/src/server/api.ts b/packages/loot-core/src/server/api.ts index 84e538405..6d49fb813 100644 --- a/packages/loot-core/src/server/api.ts +++ b/packages/loot-core/src/server/api.ts @@ -406,6 +406,27 @@ handlers['api/budget-set-carryover'] = withMutation(async function ({ }); }); +handlers['api/budget-hold-for-next-month'] = withMutation(async function ({ + month, + amount, +}) { + checkFileOpen(); + await validateMonth(month); + if (amount <= 0) { + throw APIError('Amount to hold needs to be greater than 0'); + } + return handlers['budget/hold-for-next-month']({ + month, + amount, + }); +}); + +handlers['api/budget-reset-hold'] = withMutation(async function ({ month }) { + checkFileOpen(); + await validateMonth(month); + return handlers['budget/reset-hold']({ month }); +}); + handlers['api/transactions-export'] = async function ({ transactions, categoryGroups, diff --git a/packages/loot-core/src/types/api-handlers.d.ts b/packages/loot-core/src/types/api-handlers.d.ts index 2b9bd0880..cf26bac83 100644 --- a/packages/loot-core/src/types/api-handlers.d.ts +++ b/packages/loot-core/src/types/api-handlers.d.ts @@ -63,6 +63,13 @@ export interface ApiHandlers { flag: boolean; }) => Promise<void>; + 'api/budget-hold-for-next-month': (arg: { + month: string; + amount: number; + }) => Promise<void>; + + 'api/budget-reset-hold': (arg: { month: string }) => Promise<void>; + 'api/transactions-export': (arg: { transactions; categoryGroups; diff --git a/upcoming-release-notes/3140.md b/upcoming-release-notes/3140.md new file mode 100644 index 000000000..0802097b9 --- /dev/null +++ b/upcoming-release-notes/3140.md @@ -0,0 +1,6 @@ +--- +category: Enhancements +authors: [rodriguestiago0] +--- + +Add `reset-hold` and `hold-for-next-month` methods to the API \ No newline at end of file -- GitLab