From c5a2c19efbcf22da1ae11f3c35f589ebb6941b01 Mon Sep 17 00:00:00 2001 From: Jose Date: Mon, 26 Jan 2026 14:16:14 +0100 Subject: [PATCH] Add: missing @RequestBody annotations in some controllers as well as some missing fields in entities. --- .../huertos/controller/BalanceController.java | 8 +++++ .../huertos/controller/ExpenseController.java | 2 +- .../huertos/controller/IncomeController.java | 25 ++++++++-------- .../huertos/controller/RequestController.java | 4 +-- .../miarma/backend/huertos/dto/IncomeDto.java | 9 ++++++ ...NamesDto.java => VIncomesWithInfoDto.java} | 11 ++++++- ...apper.java => VIncomesWithInfoMapper.java} | 11 +++---- .../miarma/backend/huertos/model/Request.java | 26 ++++++++++++++-- ...thFullNames.java => VIncomesWithInfo.java} | 9 ++++-- .../view/VBalanceWithTotalsRepository.java | 4 ++- .../view/VIncomesWithFullNamesRepository.java | 12 -------- .../view/VIncomesWithInfoRepository.java | 12 ++++++++ .../huertos/service/BalanceService.java | 30 ++++++++++++------- .../huertos/service/RequestService.java | 2 +- ...vice.java => VIncomesWithInfoService.java} | 16 +++++----- 15 files changed, 122 insertions(+), 59 deletions(-) rename huertos/src/main/java/net/miarma/backend/huertos/dto/view/{VIncomesWithFullNamesDto.java => VIncomesWithInfoDto.java} (86%) rename huertos/src/main/java/net/miarma/backend/huertos/mapper/view/{VIncomesWithFullNamesMapper.java => VIncomesWithInfoMapper.java} (55%) rename huertos/src/main/java/net/miarma/backend/huertos/model/view/{VIncomesWithFullNames.java => VIncomesWithInfo.java} (88%) delete mode 100644 huertos/src/main/java/net/miarma/backend/huertos/repository/view/VIncomesWithFullNamesRepository.java create mode 100644 huertos/src/main/java/net/miarma/backend/huertos/repository/view/VIncomesWithInfoRepository.java rename huertos/src/main/java/net/miarma/backend/huertos/service/view/{VIncomesWithFullNamesService.java => VIncomesWithInfoService.java} (60%) diff --git a/huertos/src/main/java/net/miarma/backend/huertos/controller/BalanceController.java b/huertos/src/main/java/net/miarma/backend/huertos/controller/BalanceController.java index 81c86b1..dbe20d6 100644 --- a/huertos/src/main/java/net/miarma/backend/huertos/controller/BalanceController.java +++ b/huertos/src/main/java/net/miarma/backend/huertos/controller/BalanceController.java @@ -1,7 +1,9 @@ package net.miarma.backend.huertos.controller; import net.miarma.backend.huertos.dto.BalanceDto; +import net.miarma.backend.huertos.dto.view.VBalanceWithTotalsDto; import net.miarma.backend.huertos.mapper.BalanceMapper; +import net.miarma.backend.huertos.mapper.view.VBalanceWithTotalsMapper; import net.miarma.backend.huertos.model.Balance; import net.miarma.backend.huertos.service.BalanceService; import org.springframework.http.ResponseEntity; @@ -27,6 +29,12 @@ public class BalanceController { return ResponseEntity.ok(BalanceMapper.toDto(balance)); } + @GetMapping("/with-totals") + @PreAuthorize("hasAnyRole('HUERTOS_ROLE_ADMIN', 'HUERTOS_ROLE_DEV')") + public ResponseEntity getWithTotals() { + return ResponseEntity.ok(VBalanceWithTotalsMapper.toDto(balanceService.getWithTotals())); + } + @PostMapping @PreAuthorize("hasAnyRole('HUERTOS_ROLE_ADMIN', 'HUERTOS_ROLE_DEV')") public ResponseEntity setBalance(BalanceDto dto) { diff --git a/huertos/src/main/java/net/miarma/backend/huertos/controller/ExpenseController.java b/huertos/src/main/java/net/miarma/backend/huertos/controller/ExpenseController.java index 4130539..abd0e65 100644 --- a/huertos/src/main/java/net/miarma/backend/huertos/controller/ExpenseController.java +++ b/huertos/src/main/java/net/miarma/backend/huertos/controller/ExpenseController.java @@ -34,7 +34,7 @@ public class ExpenseController { @PostMapping @PreAuthorize("hasAnyRole('HUERTOS_ROLE_ADMIN', 'HUERTOS_ROLE_DEV')") - public ResponseEntity create(ExpenseDto.Request dto) { + public ResponseEntity create(@RequestBody ExpenseDto.Request dto) { return ResponseEntity.ok( ExpenseMapper.toResponse( expenseService.create( diff --git a/huertos/src/main/java/net/miarma/backend/huertos/controller/IncomeController.java b/huertos/src/main/java/net/miarma/backend/huertos/controller/IncomeController.java index df17993..c919d44 100644 --- a/huertos/src/main/java/net/miarma/backend/huertos/controller/IncomeController.java +++ b/huertos/src/main/java/net/miarma/backend/huertos/controller/IncomeController.java @@ -1,14 +1,13 @@ package net.miarma.backend.huertos.controller; -import net.miarma.backend.huertos.dto.ExpenseDto; import net.miarma.backend.huertos.dto.IncomeDto; -import net.miarma.backend.huertos.dto.view.VIncomesWithFullNamesDto; -import net.miarma.backend.huertos.mapper.ExpenseMapper; +import net.miarma.backend.huertos.dto.view.VIncomesWithInfoDto; import net.miarma.backend.huertos.mapper.IncomeMapper; -import net.miarma.backend.huertos.mapper.view.VIncomesWithFullNamesMapper; +import net.miarma.backend.huertos.mapper.view.VIncomesWithInfoMapper; import net.miarma.backend.huertos.model.Income; +import net.miarma.backend.huertos.service.HuertosUserMetadataService; import net.miarma.backend.huertos.service.IncomeService; -import net.miarma.backend.huertos.service.view.VIncomesWithFullNamesService; +import net.miarma.backend.huertos.service.view.VIncomesWithInfoService; import net.miarma.backlib.security.JwtService; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -23,12 +22,12 @@ import java.util.UUID; @RequestMapping("/incomes") public class IncomeController { private IncomeService incomeService; - private VIncomesWithFullNamesService vIncomesWithFullNamesService; + private VIncomesWithInfoService vIncomesWithInfoService; private JwtService jwtService; - public IncomeController(IncomeService incomeService, VIncomesWithFullNamesService vIncomesWithFullNamesService, JwtService jwtService) { + public IncomeController(IncomeService incomeService, VIncomesWithInfoService vIncomesWithInfoService, JwtService jwtService) { this.incomeService = incomeService; - this.vIncomesWithFullNamesService = vIncomesWithFullNamesService; + this.vIncomesWithInfoService = vIncomesWithInfoService; this.jwtService = jwtService; } @@ -43,13 +42,13 @@ public class IncomeController { ); } - @GetMapping("/with-names") + @GetMapping("/with-info") @PreAuthorize("hasAnyRole('HUERTOS_ROLE_ADMIN', 'HUERTOS_ROLE_DEV')") - public ResponseEntity> getAllWithNames() { + public ResponseEntity> getAllWithInfo() { return ResponseEntity.ok( - vIncomesWithFullNamesService.getAll() + vIncomesWithInfoService.getAll() .stream() - .map(VIncomesWithFullNamesMapper::toResponse) + .map(VIncomesWithInfoMapper::toResponse) .toList() ); } @@ -79,7 +78,7 @@ public class IncomeController { @PostMapping @PreAuthorize("hasAnyRole('HUERTOS_ROLE_ADMIN', 'HUERTOS_ROLE_DEV')") - public ResponseEntity create(IncomeDto.Request dto) { + public ResponseEntity create(@RequestBody IncomeDto.Request dto) { return ResponseEntity.ok( IncomeMapper.toResponse( incomeService.create( diff --git a/huertos/src/main/java/net/miarma/backend/huertos/controller/RequestController.java b/huertos/src/main/java/net/miarma/backend/huertos/controller/RequestController.java index a2151e0..e397f06 100644 --- a/huertos/src/main/java/net/miarma/backend/huertos/controller/RequestController.java +++ b/huertos/src/main/java/net/miarma/backend/huertos/controller/RequestController.java @@ -52,10 +52,10 @@ public class RequestController { } @PostMapping - public ResponseEntity create(RequestDto.Request dto) { + public ResponseEntity create(@RequestBody RequestDto.Request dto) { return ResponseEntity.ok( RequestMapper.toResponse( - requestService.createWaitlist( + requestService.create( RequestMapper.toEntity(dto) ))); } diff --git a/huertos/src/main/java/net/miarma/backend/huertos/dto/IncomeDto.java b/huertos/src/main/java/net/miarma/backend/huertos/dto/IncomeDto.java index f30b4f4..fe6a7e5 100644 --- a/huertos/src/main/java/net/miarma/backend/huertos/dto/IncomeDto.java +++ b/huertos/src/main/java/net/miarma/backend/huertos/dto/IncomeDto.java @@ -7,11 +7,20 @@ import java.util.UUID; public class IncomeDto { public static class Request { private UUID userId; + private Integer memberNumber; private String concept; private BigDecimal amount; private Byte type; private Byte frequency; + public Integer getMemberNumber() { + return memberNumber; + } + + public void setMemberNumber(Integer memberNumber) { + this.memberNumber = memberNumber; + } + public UUID getUserId() { return userId; } diff --git a/huertos/src/main/java/net/miarma/backend/huertos/dto/view/VIncomesWithFullNamesDto.java b/huertos/src/main/java/net/miarma/backend/huertos/dto/view/VIncomesWithInfoDto.java similarity index 86% rename from huertos/src/main/java/net/miarma/backend/huertos/dto/view/VIncomesWithFullNamesDto.java rename to huertos/src/main/java/net/miarma/backend/huertos/dto/view/VIncomesWithInfoDto.java index 99b7963..0c2428f 100644 --- a/huertos/src/main/java/net/miarma/backend/huertos/dto/view/VIncomesWithFullNamesDto.java +++ b/huertos/src/main/java/net/miarma/backend/huertos/dto/view/VIncomesWithInfoDto.java @@ -4,10 +4,11 @@ import java.math.BigDecimal; import java.time.Instant; import java.util.UUID; -public class VIncomesWithFullNamesDto { +public class VIncomesWithInfoDto { private UUID incomeId; private UUID userId; private String displayName; + private Integer memberNumber; private String concept; private BigDecimal amount; private Byte type; @@ -34,6 +35,14 @@ public class VIncomesWithFullNamesDto { return displayName; } + public Integer getMemberNumber() { + return memberNumber; + } + + public void setMemberNumber(Integer memberNumber) { + this.memberNumber = memberNumber; + } + public void setDisplayName(String displayName) { this.displayName = displayName; } diff --git a/huertos/src/main/java/net/miarma/backend/huertos/mapper/view/VIncomesWithFullNamesMapper.java b/huertos/src/main/java/net/miarma/backend/huertos/mapper/view/VIncomesWithInfoMapper.java similarity index 55% rename from huertos/src/main/java/net/miarma/backend/huertos/mapper/view/VIncomesWithFullNamesMapper.java rename to huertos/src/main/java/net/miarma/backend/huertos/mapper/view/VIncomesWithInfoMapper.java index bdf2b45..b0f6da7 100644 --- a/huertos/src/main/java/net/miarma/backend/huertos/mapper/view/VIncomesWithFullNamesMapper.java +++ b/huertos/src/main/java/net/miarma/backend/huertos/mapper/view/VIncomesWithInfoMapper.java @@ -1,15 +1,16 @@ package net.miarma.backend.huertos.mapper.view; -import net.miarma.backend.huertos.dto.view.VIncomesWithFullNamesDto; -import net.miarma.backend.huertos.model.view.VIncomesWithFullNames; +import net.miarma.backend.huertos.dto.view.VIncomesWithInfoDto; +import net.miarma.backend.huertos.model.view.VIncomesWithInfo; -public class VIncomesWithFullNamesMapper { +public class VIncomesWithInfoMapper { - public static VIncomesWithFullNamesDto toResponse(VIncomesWithFullNames entity) { - VIncomesWithFullNamesDto dto = new VIncomesWithFullNamesDto(); + public static VIncomesWithInfoDto toResponse(VIncomesWithInfo entity) { + VIncomesWithInfoDto dto = new VIncomesWithInfoDto(); dto.setIncomeId(entity.getIncomeId()); dto.setUserId(entity.getUserId()); dto.setDisplayName(entity.getDisplayName()); + dto.setMemberNumber(entity.getMemberNumber()); dto.setConcept(entity.getConcept()); dto.setAmount(entity.getAmount()); dto.setType(entity.getType()); diff --git a/huertos/src/main/java/net/miarma/backend/huertos/model/Request.java b/huertos/src/main/java/net/miarma/backend/huertos/model/Request.java index 89ef45d..fd8146c 100644 --- a/huertos/src/main/java/net/miarma/backend/huertos/model/Request.java +++ b/huertos/src/main/java/net/miarma/backend/huertos/model/Request.java @@ -24,10 +24,16 @@ public class Request { private Byte status; @Column(name = "requested_by", columnDefinition = "BINARY(16)") - private UUID requestedBy; + private byte[] requestedByBin; + + @Transient + private UUID requestedBy; @Column(name = "target_user_id", columnDefinition = "BINARY(16)") - private UUID targetUserId; + private byte[] targetUserIdBin; + + @Transient + private UUID targetUserId; @Column(name = "created_at", nullable = false) private Instant createdAt; @@ -38,6 +44,14 @@ public class Request { if (requestId != null) { requestIdBin = UuidUtil.uuidToBin(requestId); } + + if (requestedBy != null) { + requestedByBin = UuidUtil.uuidToBin(requestedBy); + } + + if (targetUserId != null) { + targetUserIdBin = UuidUtil.uuidToBin(targetUserId); + } } @PostLoad @@ -45,6 +59,14 @@ public class Request { if (requestIdBin != null) { requestId = UuidUtil.binToUUID(requestIdBin); } + + if (requestedByBin != null) { + requestedBy = UuidUtil.binToUUID(requestedByBin); + } + + if (targetUserIdBin != null) { + targetUserId = UuidUtil.binToUUID(targetUserIdBin); + } } public UUID getRequestId() { diff --git a/huertos/src/main/java/net/miarma/backend/huertos/model/view/VIncomesWithFullNames.java b/huertos/src/main/java/net/miarma/backend/huertos/model/view/VIncomesWithInfo.java similarity index 88% rename from huertos/src/main/java/net/miarma/backend/huertos/model/view/VIncomesWithFullNames.java rename to huertos/src/main/java/net/miarma/backend/huertos/model/view/VIncomesWithInfo.java index 35604fc..b1e5761 100644 --- a/huertos/src/main/java/net/miarma/backend/huertos/model/view/VIncomesWithFullNames.java +++ b/huertos/src/main/java/net/miarma/backend/huertos/model/view/VIncomesWithInfo.java @@ -10,8 +10,8 @@ import java.util.UUID; @Entity @Immutable -@Table(name = "v_incomes_with_full_names") -public class VIncomesWithFullNames { +@Table(name = "v_incomes_with_info") +public class VIncomesWithInfo { @Id @Column(name = "income_id", columnDefinition = "BINARY(16)") @@ -29,6 +29,9 @@ public class VIncomesWithFullNames { @Column(name = "display_name") private String displayName; + @Column(name = "member_number") + private Integer memberNumber; + private String concept; private BigDecimal amount; private Byte type; @@ -60,6 +63,8 @@ public class VIncomesWithFullNames { return displayName; } + public Integer getMemberNumber() { return memberNumber; } + public String getConcept() { return concept; } diff --git a/huertos/src/main/java/net/miarma/backend/huertos/repository/view/VBalanceWithTotalsRepository.java b/huertos/src/main/java/net/miarma/backend/huertos/repository/view/VBalanceWithTotalsRepository.java index df23308..232fd82 100644 --- a/huertos/src/main/java/net/miarma/backend/huertos/repository/view/VBalanceWithTotalsRepository.java +++ b/huertos/src/main/java/net/miarma/backend/huertos/repository/view/VBalanceWithTotalsRepository.java @@ -4,7 +4,9 @@ import net.miarma.backend.huertos.model.view.VBalanceWithTotals; import org.springframework.data.repository.Repository; import java.util.List; +import java.util.Optional; -public interface VBalanceWithTotalsRepository extends Repository { +public interface VBalanceWithTotalsRepository extends Repository { List findAll(); + Optional findById(Byte id); } diff --git a/huertos/src/main/java/net/miarma/backend/huertos/repository/view/VIncomesWithFullNamesRepository.java b/huertos/src/main/java/net/miarma/backend/huertos/repository/view/VIncomesWithFullNamesRepository.java deleted file mode 100644 index e5d1e51..0000000 --- a/huertos/src/main/java/net/miarma/backend/huertos/repository/view/VIncomesWithFullNamesRepository.java +++ /dev/null @@ -1,12 +0,0 @@ -package net.miarma.backend.huertos.repository.view; - -import net.miarma.backend.huertos.model.view.VIncomesWithFullNames; -import org.springframework.data.repository.Repository; - -import java.util.List; -import java.util.Optional; - -public interface VIncomesWithFullNamesRepository extends Repository { - List findAll(); - Optional findById(byte[] incomeId); -} diff --git a/huertos/src/main/java/net/miarma/backend/huertos/repository/view/VIncomesWithInfoRepository.java b/huertos/src/main/java/net/miarma/backend/huertos/repository/view/VIncomesWithInfoRepository.java new file mode 100644 index 0000000..c05f91b --- /dev/null +++ b/huertos/src/main/java/net/miarma/backend/huertos/repository/view/VIncomesWithInfoRepository.java @@ -0,0 +1,12 @@ +package net.miarma.backend.huertos.repository.view; + +import net.miarma.backend.huertos.model.view.VIncomesWithInfo; +import org.springframework.data.repository.Repository; + +import java.util.List; +import java.util.Optional; + +public interface VIncomesWithInfoRepository extends Repository { + List findAll(); + Optional findById(byte[] incomeId); +} diff --git a/huertos/src/main/java/net/miarma/backend/huertos/service/BalanceService.java b/huertos/src/main/java/net/miarma/backend/huertos/service/BalanceService.java index 8de4526..4665672 100644 --- a/huertos/src/main/java/net/miarma/backend/huertos/service/BalanceService.java +++ b/huertos/src/main/java/net/miarma/backend/huertos/service/BalanceService.java @@ -1,8 +1,9 @@ package net.miarma.backend.huertos.service; import java.time.Instant; -import java.util.Optional; +import net.miarma.backend.huertos.model.view.VBalanceWithTotals; +import net.miarma.backend.huertos.repository.view.VBalanceWithTotalsRepository; import net.miarma.backlib.exception.ConflictException; import net.miarma.backlib.exception.NotFoundException; import org.springframework.stereotype.Service; @@ -15,40 +16,47 @@ import net.miarma.backend.huertos.repository.BalanceRepository; @Transactional public class BalanceService { - private final BalanceRepository repo; + private final BalanceRepository balanceRepository; + private final VBalanceWithTotalsRepository vBalanceWithTotalsRepository; - public BalanceService(BalanceRepository repo) { - this.repo = repo; + public BalanceService(BalanceRepository balanceRepository, VBalanceWithTotalsRepository vBalanceWithTotalsRepository) { + this.balanceRepository = balanceRepository; + this.vBalanceWithTotalsRepository = vBalanceWithTotalsRepository; } public Balance get() { - return repo.findById((byte) 1) + return balanceRepository.findById((byte) 1) + .orElseThrow(() -> new NotFoundException("Balance not found")); + } + + public VBalanceWithTotals getWithTotals() { + return vBalanceWithTotalsRepository.findById((byte) 1) .orElseThrow(() -> new NotFoundException("Balance not found")); } public Balance create(Balance balance) { - if (repo.existsById((byte) 1)) { + if (balanceRepository.existsById((byte) 1)) { throw new ConflictException("Balance already exists"); } balance.setId((byte) 1); balance.setCreatedAt(Instant.now()); - return repo.save(balance); + return balanceRepository.save(balance); } public Balance update(Balance dto) { - Balance balance = repo.findById((byte) 1) + Balance balance = balanceRepository.findById((byte) 1) .orElseThrow(() -> new NotFoundException("Balance not found")); if (dto.getInitialBank() != null) balance.setInitialBank(dto.getInitialBank()); if (dto.getInitialCash() != null) balance.setInitialCash(dto.getInitialCash()); - return repo.save(balance); + return balanceRepository.save(balance); } public void delete() { - if (!repo.existsById((byte) 1)) { + if (!balanceRepository.existsById((byte) 1)) { throw new NotFoundException("Balance not found"); } - repo.deleteById((byte) 1); + balanceRepository.deleteById((byte) 1); } } diff --git a/huertos/src/main/java/net/miarma/backend/huertos/service/RequestService.java b/huertos/src/main/java/net/miarma/backend/huertos/service/RequestService.java index 829dd92..7dd4a6f 100644 --- a/huertos/src/main/java/net/miarma/backend/huertos/service/RequestService.java +++ b/huertos/src/main/java/net/miarma/backend/huertos/service/RequestService.java @@ -63,7 +63,7 @@ public class RequestService { .toList(); } - public Request createWaitlist(Request request) { + public Request create(Request request) { if (request.getType() == null) { throw new BadRequestException("type is required"); } diff --git a/huertos/src/main/java/net/miarma/backend/huertos/service/view/VIncomesWithFullNamesService.java b/huertos/src/main/java/net/miarma/backend/huertos/service/view/VIncomesWithInfoService.java similarity index 60% rename from huertos/src/main/java/net/miarma/backend/huertos/service/view/VIncomesWithFullNamesService.java rename to huertos/src/main/java/net/miarma/backend/huertos/service/view/VIncomesWithInfoService.java index 3c50cd2..03efe1e 100644 --- a/huertos/src/main/java/net/miarma/backend/huertos/service/view/VIncomesWithFullNamesService.java +++ b/huertos/src/main/java/net/miarma/backend/huertos/service/view/VIncomesWithInfoService.java @@ -7,31 +7,31 @@ import net.miarma.backlib.exception.NotFoundException; import org.springframework.stereotype.Service; import jakarta.transaction.Transactional; -import net.miarma.backend.huertos.model.view.VIncomesWithFullNames; -import net.miarma.backend.huertos.repository.view.VIncomesWithFullNamesRepository; +import net.miarma.backend.huertos.model.view.VIncomesWithInfo; +import net.miarma.backend.huertos.repository.view.VIncomesWithInfoRepository; import net.miarma.backlib.util.UuidUtil; @Service @Transactional -public class VIncomesWithFullNamesService { +public class VIncomesWithInfoService { - private final VIncomesWithFullNamesRepository repository; + private final VIncomesWithInfoRepository repository; - public VIncomesWithFullNamesService(VIncomesWithFullNamesRepository repository) { + public VIncomesWithInfoService(VIncomesWithInfoRepository repository) { this.repository = repository; } - public List getAll() { + public List getAll() { return repository.findAll(); } - public VIncomesWithFullNames getById(UUID incomeId) { + public VIncomesWithInfo getById(UUID incomeId) { byte[] idBytes = UuidUtil.uuidToBin(incomeId); return repository.findById(idBytes) .orElseThrow(() -> new NotFoundException("Income not found")); } - public List getByUserId(UUID userId) { + public List getByUserId(UUID userId) { byte[] idBytes = UuidUtil.uuidToBin(userId); return repository.findAll().stream() .filter(i -> i.getUserId().equals(userId))