/** * PUT /expenses : Updates an existing expense. * * @param expense the expense to update * @return the ResponseEntity with status 200 (OK) and with body the updated expense, or with * status 400 (Bad Request) if the expense is not valid, or with status 500 (Internal Server * Error) if the expense couldnt be updated * @throws URISyntaxException if the Location URI syntax is incorrect */ @RequestMapping( value = "/expenses", method = RequestMethod.PUT, produces = MediaType.APPLICATION_JSON_VALUE) @Timed public ResponseEntity<Expense> updateExpense(@Valid @RequestBody Expense expense) throws URISyntaxException { log.debug("REST request to update Expense : {}", expense); if (expense.getId() == null) { return createExpense(expense); } calculationService.updateExpense(expense); Expense result = expenseRepository.save(expense); return ResponseEntity.ok() .headers(HeaderUtil.createEntityUpdateAlert("expense", expense.getId().toString())) .body(result); }
/** * POST /expenses : Create a new expense. * * @param expense the expense to create * @return the ResponseEntity with status 201 (Created) and with body the new expense, or with * status 400 (Bad Request) if the expense has already an ID * @throws URISyntaxException if the Location URI syntax is incorrect */ @RequestMapping( value = "/expenses", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) @Timed public ResponseEntity<Expense> createExpense(@Valid @RequestBody Expense expense) throws URISyntaxException { log.debug("REST request to save Expense : {}", expense); if (expense.getId() != null) { return ResponseEntity.badRequest() .headers( HeaderUtil.createFailureAlert( "expense", "idexists", "A new expense cannot already have an ID")) .body(null); } calculationService.addExpense(expense); Expense result = expenseRepository.save(expense); return ResponseEntity.created(new URI("/api/expenses/" + result.getId())) .headers(HeaderUtil.createEntityCreationAlert("expense", result.getId().toString())) .body(result); }