From eb2d0e53dc15ef27d89178ad3c75bd35e4f2bd64 Mon Sep 17 00:00:00 2001 From: Dmitrii Cravcenco Date: Fri, 27 Oct 2023 17:53:00 +0300 Subject: [PATCH] Add expense/income update --- .../controller/ExpenseController.java | 14 +++++++++----- .../controller/IncomeController.java | 19 +++++++++++-------- 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/faf223/expensetrackerfaf/controller/ExpenseController.java b/src/main/java/com/faf223/expensetrackerfaf/controller/ExpenseController.java index 501035f..b6b8964 100644 --- a/src/main/java/com/faf223/expensetrackerfaf/controller/ExpenseController.java +++ b/src/main/java/com/faf223/expensetrackerfaf/controller/ExpenseController.java @@ -61,14 +61,18 @@ public class ExpenseController { } - // TODO: has to be checked on auto extracting Uuid - @PatchMapping() - public ResponseEntity updateExpense(@RequestBody ExpenseCreationDTO expenseDTO, + // TODO: check if the expense belongs to the user + @PatchMapping("/update/{id}") + public ResponseEntity updateExpense(@PathVariable long id, @RequestBody ExpenseCreationDTO expenseDTO, BindingResult bindingResult) { - Expense expense = expenseMapper.toExpense(expenseDTO); + Expense expense = expenseService.getTransactionById(id); + ExpenseCategory category = expenseCategoryService.getCategoryById(expenseDTO.getExpenseCategory()); + expense.setCategory(category); + expense.setAmount(expenseDTO.getAmount()); + if (!bindingResult.hasErrors()) { expenseService.createOrUpdate(expense); - return ResponseEntity.ok(expenseMapper.toDto(expense)); + return ResponseEntity.status(HttpStatus.CREATED).build(); } else { return ResponseEntity.notFound().build(); } diff --git a/src/main/java/com/faf223/expensetrackerfaf/controller/IncomeController.java b/src/main/java/com/faf223/expensetrackerfaf/controller/IncomeController.java index 164ec9e..cbe59c2 100644 --- a/src/main/java/com/faf223/expensetrackerfaf/controller/IncomeController.java +++ b/src/main/java/com/faf223/expensetrackerfaf/controller/IncomeController.java @@ -3,9 +3,7 @@ package com.faf223.expensetrackerfaf.controller; import com.faf223.expensetrackerfaf.dto.IncomeCreationDTO; import com.faf223.expensetrackerfaf.dto.IncomeDTO; import com.faf223.expensetrackerfaf.dto.mappers.IncomeMapper; -import com.faf223.expensetrackerfaf.model.Income; -import com.faf223.expensetrackerfaf.model.IncomeCategory; -import com.faf223.expensetrackerfaf.model.User; +import com.faf223.expensetrackerfaf.model.*; import com.faf223.expensetrackerfaf.service.IncomeCategoryService; import com.faf223.expensetrackerfaf.service.IncomeService; import com.faf223.expensetrackerfaf.service.UserService; @@ -60,13 +58,18 @@ public class IncomeController { return ResponseEntity.notFound().build(); } - @PatchMapping() - public ResponseEntity updateIncome(@RequestBody IncomeCreationDTO incomeDTO, - BindingResult bindingResult) { - Income income = incomeMapper.toIncome(incomeDTO); + // TODO: check if the income belongs to the user, extract logic into service + @PatchMapping("/update/{id}") + public ResponseEntity updateIncome(@PathVariable long id, @RequestBody IncomeCreationDTO incomeDTO, + BindingResult bindingResult) { + Income income = incomeService.getTransactionById(id); + IncomeCategory category = incomeCategoryService.getCategoryById(incomeDTO.getIncomeCategory()); + income.setCategory(category); + income.setAmount(incomeDTO.getAmount()); + if (!bindingResult.hasErrors()) { incomeService.createOrUpdate(income); - return ResponseEntity.ok(incomeMapper.toDto(income)); + return ResponseEntity.status(HttpStatus.CREATED).build(); } else { return ResponseEntity.notFound().build(); }