diff --git a/finnow-api/source/transaction/data.d b/finnow-api/source/transaction/data.d index f98e045..33b629c 100644 --- a/finnow-api/source/transaction/data.d +++ b/finnow-api/source/transaction/data.d @@ -27,7 +27,7 @@ interface TransactionCategoryRepository { TransactionCategory[] findAllByParentId(Optional!ulong parentId); TransactionCategory insert(Optional!ulong parentId, string name, string description, string color); void deleteById(ulong id); - TransactionCategory updateById(ulong id, string name, string description, string color); + TransactionCategory updateById(ulong id, string name, string description, string color, Optional!ulong parentId); } interface TransactionTagRepository { diff --git a/finnow-api/source/transaction/data_impl_sqlite.d b/finnow-api/source/transaction/data_impl_sqlite.d index 44e9293..2a342f8 100644 --- a/finnow-api/source/transaction/data_impl_sqlite.d +++ b/finnow-api/source/transaction/data_impl_sqlite.d @@ -133,13 +133,13 @@ class SqliteTransactionCategoryRepository : TransactionCategoryRepository { util.sqlite.deleteById(db, "transaction_category", id); } - TransactionCategory updateById(ulong id, string name, string description, string color) { + TransactionCategory updateById(ulong id, string name, string description, string color, Optional!ulong parentId) { util.sqlite.update( db, "UPDATE transaction_category - SET name = ?, description = ?, color = ? + SET name = ?, description = ?, color = ?, parent_id = ? WHERE id = ?", - name, description, color, id + name, description, color, toNullable!ulong(parentId), id ); return findById(id).orElseThrow(); } diff --git a/finnow-api/source/transaction/service.d b/finnow-api/source/transaction/service.d index 280a7c3..c35a0e8 100644 --- a/finnow-api/source/transaction/service.d +++ b/finnow-api/source/transaction/service.d @@ -390,7 +390,8 @@ TransactionCategoryResponse updateCategory(ProfileDataSource ds, ulong categoryI categoryId, payload.name, payload.description, - payload.color + payload.color, + toOptional!ulong(payload.parentId) ); return TransactionCategoryResponse.of(curr); }