|
1 | 1 | package com.apexgrid.transformertracker.web; |
2 | 2 |
|
3 | 3 | import com.apexgrid.transformertracker.model.Transformer; |
| 4 | +import com.apexgrid.transformertracker.repo.MaintenanceRecordRepo; |
4 | 5 | import com.apexgrid.transformertracker.repo.TransformerRepo; |
| 6 | +import com.apexgrid.transformertracker.web.dto.MaintenanceRecordResponse; |
5 | 7 | import org.springframework.http.ResponseEntity; |
6 | 8 | import org.springframework.security.core.annotation.AuthenticationPrincipal; |
7 | 9 | import org.springframework.security.core.userdetails.UserDetails; |
|
17 | 19 | @RequestMapping("/api/transformers") |
18 | 20 | public class TransformerController { |
19 | 21 | private final TransformerRepo repo; |
| 22 | + private final MaintenanceRecordRepo maintenanceRecordRepo; |
20 | 23 |
|
21 | | - public TransformerController(TransformerRepo repo) { |
| 24 | + public TransformerController(TransformerRepo repo, |
| 25 | + MaintenanceRecordRepo maintenanceRecordRepo) { |
22 | 26 | this.repo = repo; |
| 27 | + this.maintenanceRecordRepo = maintenanceRecordRepo; |
23 | 28 | } |
24 | 29 |
|
25 | 30 | @GetMapping |
@@ -86,4 +91,18 @@ public ResponseEntity<?> uploadBaseline(@PathVariable String id, |
86 | 91 | } |
87 | 92 | }).orElse(ResponseEntity.notFound().build()); |
88 | 93 | } |
| 94 | + |
| 95 | + @GetMapping("/{id}/maintenance-records") |
| 96 | + public ResponseEntity<?> listMaintenanceRecords(@PathVariable String id) { |
| 97 | + var transformer = repo.findById(id).or(() -> repo.findByTransformerNumber(id)); |
| 98 | + if (transformer.isEmpty()) { |
| 99 | + return ResponseEntity.status(404).body(Map.of("error", "Transformer not found")); |
| 100 | + } |
| 101 | + var payload = maintenanceRecordRepo |
| 102 | + .findAllByInspection_Transformer_IdOrderByTimestampDesc(transformer.get().getId()) |
| 103 | + .stream() |
| 104 | + .map(MaintenanceRecordResponse::fromEntity) |
| 105 | + .toList(); |
| 106 | + return ResponseEntity.ok(payload); |
| 107 | + } |
89 | 108 | } |
0 commit comments