-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMovementController.java
More file actions
66 lines (50 loc) · 2.5 KB
/
Copy pathMovementController.java
File metadata and controls
66 lines (50 loc) · 2.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
package com.neflodev.expensestrackerapi.web;
import com.neflodev.expensestrackerapi.dto.general.IdBody;
import com.neflodev.expensestrackerapi.dto.movement.MovementDto;
import com.neflodev.expensestrackerapi.dto.movement.MovementFilters;
import com.neflodev.expensestrackerapi.dto.movement.MovementParams;
import com.neflodev.expensestrackerapi.dto.movement.MovementRequestBody;
import com.neflodev.expensestrackerapi.service.MovementService;
import com.neflodev.expensestrackerapi.util.CustomUtils;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("movements/")
public class MovementController {
private final MovementService service;
public MovementController(MovementService service) {
this.service = service;
}
@PostMapping("/me")
public ResponseEntity<List<MovementDto>> postRetrieveUserMovements(@RequestBody MovementRequestBody filters){
String sessionUsername = CustomUtils.retrieveSessionUsername();
return ResponseEntity.ok(service.retrieveUserMovements(filters, sessionUsername));
}
@GetMapping("/filters")
public ResponseEntity<MovementFilters> postRetrieveMovementTypes(){
String sessionUsername = CustomUtils.retrieveSessionUsername();
return ResponseEntity.ok(service.retrieveMovementFilters(sessionUsername));
}
@PostMapping("/")
public ResponseEntity<IdBody> postCreateMovement(@RequestBody MovementParams params){
String sessionUsername = CustomUtils.retrieveSessionUsername();
return ResponseEntity.status(HttpStatus.CREATED).body(service.createMovement(params, sessionUsername));
}
@PutMapping("/")
public ResponseEntity<IdBody> putUpdateMovement(@RequestBody MovementParams params){
String sessionUsername = CustomUtils.retrieveSessionUsername();
return ResponseEntity.ok(service.updateMovement(params, sessionUsername));
}
@DeleteMapping("/{movementId}")
public ResponseEntity<Void> deleteMovement(@PathVariable("movementId") Long movementId){
String sessionUsername = CustomUtils.retrieveSessionUsername();
if (sessionUsername == null) {
throw new UsernameNotFoundException("La sesión de usuario no es correcta");
}
service.deleteMovement(movementId);
return ResponseEntity.ok().build();
}
}