54 lines
1.8 KiB
Java
54 lines
1.8 KiB
Java
package zw.qantra.tm.domain.controllers;
|
|
|
|
import lombok.RequiredArgsConstructor;
|
|
import zw.qantra.tm.domain.services.TransactionService;
|
|
import zw.qantra.tm.domain.models.Transaction;
|
|
|
|
import org.springframework.http.ResponseEntity;
|
|
import org.springframework.web.bind.annotation.*;
|
|
import java.util.List;
|
|
import java.util.UUID;
|
|
|
|
@RestController
|
|
@RequestMapping("/transaction")
|
|
@RequiredArgsConstructor
|
|
public class TransactonController {
|
|
|
|
private final TransactionService transactionService;
|
|
|
|
@GetMapping
|
|
public ResponseEntity<List<Transaction>> getAll() {
|
|
return ResponseEntity.ok(transactionService.getTransactionRepository().findAll());
|
|
}
|
|
|
|
@GetMapping("/{id}")
|
|
public ResponseEntity<Transaction> getById(@PathVariable UUID id) {
|
|
return transactionService.getTransactionRepository().findById(id)
|
|
.map(ResponseEntity::ok)
|
|
.orElse(ResponseEntity.notFound().build());
|
|
}
|
|
|
|
@PostMapping
|
|
public ResponseEntity<Transaction> create(@RequestBody Transaction transaction) {
|
|
return ResponseEntity.ok(transactionService.execute(transaction));
|
|
}
|
|
|
|
@PutMapping("/{id}")
|
|
public ResponseEntity<Transaction> update(@PathVariable UUID id, @RequestBody Transaction transaction) {
|
|
if (!transactionService.getTransactionRepository().existsById(id)) {
|
|
return ResponseEntity.notFound().build();
|
|
}
|
|
transaction.setId(id);
|
|
return ResponseEntity.ok(transactionService.execute(transaction));
|
|
}
|
|
|
|
@DeleteMapping("/{id}")
|
|
public ResponseEntity<Void> delete(@PathVariable UUID id) {
|
|
if (!transactionService.getTransactionRepository().existsById(id)) {
|
|
return ResponseEntity.notFound().build();
|
|
}
|
|
transactionService.getTransactionRepository().deleteById(id);
|
|
return ResponseEntity.noContent().build();
|
|
}
|
|
}
|