completed initial charge logic

This commit is contained in:
2025-06-18 09:28:01 +02:00
parent b214d42d2f
commit 9ae78635c7
34 changed files with 614 additions and 102 deletions

View File

@@ -1,18 +1,53 @@
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.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.UUID;
@RestController
@RequestMapping("/transaction")
@RequiredArgsConstructor
public class TransactonController {
@PostMapping()
public ResponseEntity post(@RequestBody Object transactionRequest) {
return ResponseEntity.ok("Transaction endpoint is working");
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();
}
}