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(); }