-
Notifications
You must be signed in to change notification settings - Fork 0
feat: [UPBE-591] Report Generation API Creation #389
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
v1tt0ri0Alt
merged 34 commits into
develop
from
UPBE-591-be-creazione-api-generazione-report
Feb 13, 2026
Merged
Changes from 13 commits
Commits
Show all changes
34 commits
Select commit
Hold shift + click to select a range
4ceb6eb
Report Generation API Creation
martameligarziera be7bdb2
Report Generation API Creation- rename generateMerchantTransactionsRe…
martameligarziera 2cf54fe
Report Generation API Creation- rename generateMerchantTransactionsRe…
martameligarziera 0c6779a
Merge branch 'develop' of https://github.com/pagopa/idpay-transaction…
martameligarziera d1bd263
Merge remote-tracking branch 'refs/remotes/origin/UPBE-591-be-creazio…
v1tt0ri0Alt f3f7814
Report Generation API Creation - implementation
martameligarziera 661c15b
Merge remote-tracking branch 'refs/remotes/origin/UPBE-591-be-creazio…
v1tt0ri0Alt fc87d0e
added getReportList in ReportController
v1tt0ri0Alt 4f8ece0
Report Generation API Creation - implementation
martameligarziera 228312c
Report Generation API Creation - collection name reports
martameligarziera dc2a8b3
added unit test for ReportController, ReportMapper, ReportServiceImpl…
v1tt0ri0Alt 05e8d1f
Log injection
martameligarziera e3ba038
removed unused import
v1tt0ri0Alt 72d118c
Log injection
martameligarziera 0de0022
Log injection
martameligarziera 7df2851
Merge branch 'UPBE-601-be-creazione-api-lista-report' of https://gith…
martameligarziera 4bcf279
fix tests
martameligarziera 2b82c19
coverage
martameligarziera 79a4ec8
coverage
martameligarziera c8646aa
log injection
martameligarziera 250a8ea
Merge branch 'develop' of https://github.com/pagopa/idpay-transaction…
martameligarziera 52f3f98
deleting parameter operatorlevel
martameligarziera a746933
fix tests
martameligarziera 5219cd5
modified getTransactionsReports
v1tt0ri0Alt ed5c06e
Merge branch 'UPBE-601-be-creazione-api-lista-report' of https://gith…
martameligarziera 7355316
chaged endPoints
martameligarziera 62b91cf
modified ReportServiceImpl and adjusted ReportControllerImplTest
v1tt0ri0Alt ce700d7
chaged endPoints
martameligarziera bdec236
patchReport - status
martameligarziera 2c2e837
COMMENT
martameligarziera f201a60
coverage
martameligarziera cb504d0
handling merchant not found
martameligarziera a111da5
fix tests
martameligarziera 11d55f0
log injection
martameligarziera File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
4 changes: 4 additions & 0 deletions
4
src/main/java/it/gov/pagopa/idpay/transactions/connector/rest/MerchantRestClient.java
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,10 +1,14 @@ | ||
| package it.gov.pagopa.idpay.transactions.connector.rest; | ||
|
|
||
| import it.gov.pagopa.idpay.transactions.connector.rest.dto.MerchantDetailDTO; | ||
| import it.gov.pagopa.idpay.transactions.connector.rest.dto.PointOfSaleDTO; | ||
| import reactor.core.publisher.Mono; | ||
|
|
||
| public interface MerchantRestClient { | ||
|
|
||
| Mono<PointOfSaleDTO> getPointOfSale(String merchantId, String pointOfSaleId); | ||
|
|
||
| Mono<MerchantDetailDTO> getMerchantDetail(String merchantId, String initiativeId); | ||
|
|
||
|
|
||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
16 changes: 16 additions & 0 deletions
16
src/main/java/it/gov/pagopa/idpay/transactions/connector/rest/dto/MerchantDetailDTO.java
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,16 @@ | ||
| package it.gov.pagopa.idpay.transactions.connector.rest.dto; | ||
|
|
||
| import lombok.AllArgsConstructor; | ||
| import lombok.Builder; | ||
| import lombok.Data; | ||
| import lombok.NoArgsConstructor; | ||
|
|
||
| @Data | ||
| @NoArgsConstructor | ||
| @AllArgsConstructor | ||
| @Builder | ||
| public class MerchantDetailDTO { | ||
|
|
||
| private String businessName; | ||
|
|
||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
33 changes: 33 additions & 0 deletions
33
src/main/java/it/gov/pagopa/idpay/transactions/controller/ReportController.java
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,33 @@ | ||
| package it.gov.pagopa.idpay.transactions.controller; | ||
|
|
||
| import it.gov.pagopa.idpay.transactions.dto.ReportDTO; | ||
| import it.gov.pagopa.idpay.transactions.dto.ReportListDTO; | ||
| import it.gov.pagopa.idpay.transactions.dto.ReportRequest; | ||
| import it.gov.pagopa.idpay.transactions.dto.TransactionsRequest; | ||
| import it.gov.pagopa.idpay.transactions.enums.RewardBatchAssignee; | ||
| import jakarta.validation.Valid; | ||
| import org.springframework.data.domain.Pageable; | ||
| import org.springframework.data.web.PageableDefault; | ||
| import org.springframework.web.bind.annotation.*; | ||
| import reactor.core.publisher.Mono; | ||
|
|
||
| import java.time.LocalDateTime; | ||
|
|
||
| @RequestMapping("/idpay/merchant/portal") | ||
| public interface ReportController { | ||
|
|
||
| @GetMapping("/initiatives/{initiativeId}/transactions/reports") | ||
| Mono<ReportListDTO> getTransactionsReports( | ||
| @RequestHeader(value = "x-merchant-id", required = false) String merchantId, | ||
| @RequestHeader(value = "x-organization-role", required = false) String organizationRole, | ||
| @RequestParam(value = "rewardBatchAssignee", required = false) String rewardBatchAssignee, | ||
| @PathVariable("initiativeId") String initiativeId, | ||
| @PageableDefault Pageable pageable | ||
| ); | ||
|
|
||
| @PostMapping("/initiatives/{initiativeId}/transactions/reports") | ||
| Mono<ReportDTO> generateReport(@RequestHeader("x-merchant-id") String merchantId, | ||
| @RequestHeader(value = "x-organization-role", required = false) String organizationRole, | ||
| @PathVariable("initiativeId") String initiativeId, | ||
| @RequestBody @Valid ReportRequest request); | ||
| } |
53 changes: 53 additions & 0 deletions
53
src/main/java/it/gov/pagopa/idpay/transactions/controller/ReportControllerImpl.java
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,53 @@ | ||
| package it.gov.pagopa.idpay.transactions.controller; | ||
|
|
||
| import it.gov.pagopa.idpay.transactions.dto.ReportDTO; | ||
| import it.gov.pagopa.idpay.transactions.dto.ReportListDTO; | ||
| import it.gov.pagopa.idpay.transactions.dto.ReportRequest; | ||
| import it.gov.pagopa.idpay.transactions.enums.ReportType; | ||
| import it.gov.pagopa.idpay.transactions.enums.RewardBatchAssignee; | ||
| import it.gov.pagopa.idpay.transactions.service.ReportService; | ||
| import it.gov.pagopa.idpay.transactions.dto.mapper.ReportMapper; | ||
| import it.gov.pagopa.idpay.transactions.utils.Utilities; | ||
| import lombok.extern.slf4j.Slf4j; | ||
| import org.springframework.data.domain.Pageable; | ||
| import org.springframework.web.bind.annotation.RestController; | ||
| import reactor.core.publisher.Mono; | ||
|
|
||
| import java.time.LocalDateTime; | ||
|
|
||
| @RestController | ||
| @Slf4j | ||
| public class ReportControllerImpl implements ReportController { | ||
|
|
||
| private final ReportService reportService; | ||
| private final ReportMapper reportMapper; | ||
|
|
||
| public ReportControllerImpl(ReportService reportService, ReportMapper reportMapper) { | ||
| this.reportService = reportService; | ||
| this.reportMapper = reportMapper; | ||
| } | ||
|
|
||
| @Override | ||
| public Mono<ReportListDTO> getTransactionsReports( | ||
| String merchantId, | ||
| String organizationRole, | ||
| String rewardBatchAssignee, | ||
| String initiativeId, | ||
| Pageable pageable | ||
| ) { | ||
| log.info("[GET_TRANSACTIONS_REPORTS] Request received for initiative: {}", Utilities.sanitizeString(initiativeId)); | ||
|
|
||
| return reportService.getTransactionsReports(merchantId, organizationRole, rewardBatchAssignee, initiativeId, pageable) | ||
| .flatMap(page -> Mono.just(reportMapper.toListDTO(page))); | ||
| } | ||
|
|
||
|
|
||
| @Override | ||
| public Mono<ReportDTO> generateReport(String merchantId, | ||
| String organizationRole, | ||
| String initiativeId, | ||
| ReportRequest request | ||
| ) { | ||
| return reportService.generateReport(merchantId, organizationRole, initiativeId, request); | ||
| } | ||
| } |
32 changes: 32 additions & 0 deletions
32
src/main/java/it/gov/pagopa/idpay/transactions/dto/ReportDTO.java
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,32 @@ | ||
| package it.gov.pagopa.idpay.transactions.dto; | ||
|
|
||
| import com.fasterxml.jackson.annotation.JsonInclude; | ||
| import it.gov.pagopa.idpay.transactions.enums.ReportStatus; | ||
| import it.gov.pagopa.idpay.transactions.enums.ReportType; | ||
| import it.gov.pagopa.idpay.transactions.enums.RewardBatchAssignee; | ||
| import lombok.AllArgsConstructor; | ||
| import lombok.Builder; | ||
| import lombok.Data; | ||
|
|
||
| import java.time.LocalDateTime; | ||
|
|
||
| @Data | ||
| @AllArgsConstructor | ||
| @Builder | ||
| @JsonInclude(JsonInclude.Include.NON_NULL) | ||
| public class ReportDTO { | ||
|
|
||
| String id; | ||
| String initiativeId; | ||
| ReportStatus reportStatus; | ||
| LocalDateTime startPeriod; | ||
| LocalDateTime endPeriod; | ||
| String merchantId; | ||
| String businessName; | ||
| LocalDateTime requestDate; | ||
| LocalDateTime elaborationDate; | ||
| RewardBatchAssignee operatorLevel; | ||
| String fileName; | ||
| ReportType reportType; | ||
|
|
||
| } |
20 changes: 20 additions & 0 deletions
20
src/main/java/it/gov/pagopa/idpay/transactions/dto/ReportListDTO.java
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,20 @@ | ||
| package it.gov.pagopa.idpay.transactions.dto; | ||
|
|
||
| import lombok.AllArgsConstructor; | ||
| import lombok.Builder; | ||
| import lombok.Data; | ||
| import lombok.NoArgsConstructor; | ||
|
|
||
| import java.util.List; | ||
|
|
||
| @Data | ||
| @AllArgsConstructor | ||
| @NoArgsConstructor | ||
| @Builder | ||
| public class ReportListDTO { | ||
| private List<ReportDTO> reports; | ||
| private int page; | ||
| private int size; | ||
| private int totalElements; | ||
| private int totalPages; | ||
| } |
35 changes: 35 additions & 0 deletions
35
src/main/java/it/gov/pagopa/idpay/transactions/dto/ReportRequest.java
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,35 @@ | ||
| package it.gov.pagopa.idpay.transactions.dto; | ||
|
|
||
| import it.gov.pagopa.idpay.transactions.enums.ReportType; | ||
| import it.gov.pagopa.idpay.transactions.enums.RewardBatchAssignee; | ||
| import jakarta.validation.constraints.NotEmpty; | ||
| import jakarta.validation.constraints.NotNull; | ||
| import lombok.AllArgsConstructor; | ||
| import lombok.Builder; | ||
| import lombok.Data; | ||
| import lombok.NoArgsConstructor; | ||
| import org.springframework.web.bind.annotation.PathVariable; | ||
| import org.springframework.web.bind.annotation.PostMapping; | ||
| import org.springframework.web.bind.annotation.RequestHeader; | ||
| import org.springframework.web.bind.annotation.RequestParam; | ||
| import reactor.core.publisher.Mono; | ||
|
|
||
| import java.time.LocalDateTime; | ||
| import java.util.List; | ||
|
|
||
| @Data | ||
| @AllArgsConstructor | ||
| @NoArgsConstructor | ||
| @Builder | ||
| public class ReportRequest { | ||
|
|
||
| @NotNull | ||
| private LocalDateTime startPeriod; | ||
| @NotNull | ||
| private LocalDateTime endPeriod; | ||
| @NotNull | ||
| private ReportType reportType; | ||
|
|
||
| private RewardBatchAssignee operatorLevel; | ||
| } | ||
|
|
50 changes: 50 additions & 0 deletions
50
src/main/java/it/gov/pagopa/idpay/transactions/dto/mapper/ReportMapper.java
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,50 @@ | ||
| package it.gov.pagopa.idpay.transactions.dto.mapper; | ||
|
|
||
| import it.gov.pagopa.idpay.transactions.dto.ReportDTO; | ||
| import it.gov.pagopa.idpay.transactions.dto.ReportListDTO; | ||
| import it.gov.pagopa.idpay.transactions.model.Report; | ||
| import org.springframework.data.domain.Page; | ||
| import org.springframework.stereotype.Service; | ||
|
|
||
| import java.util.List; | ||
| import java.util.stream.Collectors; | ||
|
|
||
| @Service | ||
| public class ReportMapper { | ||
|
|
||
| public ReportDTO toDTO(Report report) { | ||
| if (report == null) { | ||
| return null; | ||
| } | ||
|
|
||
| return ReportDTO.builder() | ||
| .id(report.getId()) | ||
| .initiativeId(report.getInitiativeId()) | ||
| .reportStatus(report.getReportStatus()) | ||
| .startPeriod(report.getStartPeriod()) | ||
| .endPeriod(report.getEndPeriod()) | ||
| .merchantId(report.getMerchantId()) | ||
| .businessName(report.getBusinessName()) | ||
| .requestDate(report.getRequestDate()) | ||
| .elaborationDate(report.getElaborationDate()) | ||
| .operatorLevel(report.getOperatorLevel()) | ||
| .fileName(report.getFileName()) | ||
| .reportType(report.getReportType()) | ||
| .build(); | ||
| } | ||
|
|
||
| public ReportListDTO toListDTO(Page<Report> page) { | ||
| List<ReportDTO> dtoList = page.getContent() | ||
| .stream() | ||
| .map(this::toDTO) | ||
| .collect(Collectors.toList()); | ||
|
|
||
| return ReportListDTO.builder() | ||
| .reports(dtoList) | ||
| .page(page.getNumber()) | ||
| .size(page.getSize()) | ||
| .totalElements((int) page.getTotalElements()) | ||
| .totalPages(page.getTotalPages()) | ||
| .build(); | ||
| } | ||
| } |
8 changes: 8 additions & 0 deletions
8
src/main/java/it/gov/pagopa/idpay/transactions/enums/ReportStatus.java
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,8 @@ | ||
| package it.gov.pagopa.idpay.transactions.enums; | ||
|
|
||
| public enum ReportStatus { | ||
| INSERTED, | ||
| FAILED, | ||
| IN_PROGRESS, | ||
| GENERATED | ||
| } |
5 changes: 5 additions & 0 deletions
5
src/main/java/it/gov/pagopa/idpay/transactions/enums/ReportType.java
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| package it.gov.pagopa.idpay.transactions.enums; | ||
|
|
||
| public enum ReportType { | ||
| MERCHANT_TRANSACTIONS | ||
| } |
40 changes: 40 additions & 0 deletions
40
src/main/java/it/gov/pagopa/idpay/transactions/model/Report.java
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,40 @@ | ||
| package it.gov.pagopa.idpay.transactions.model; | ||
|
|
||
| import it.gov.pagopa.idpay.transactions.enums.ReportStatus; | ||
| import it.gov.pagopa.idpay.transactions.enums.ReportType; | ||
| import it.gov.pagopa.idpay.transactions.enums.RewardBatchAssignee; | ||
| import lombok.AllArgsConstructor; | ||
| import lombok.Builder; | ||
| import lombok.Data; | ||
| import lombok.EqualsAndHashCode; | ||
| import lombok.NoArgsConstructor; | ||
| import lombok.experimental.FieldNameConstants; | ||
| import org.springframework.data.annotation.Id; | ||
| import org.springframework.data.mongodb.core.mapping.Document; | ||
| import org.springframework.data.mongodb.core.mapping.MongoId; | ||
|
|
||
| import java.time.LocalDateTime; | ||
|
|
||
| @Data | ||
| @AllArgsConstructor | ||
| @NoArgsConstructor | ||
| @Builder | ||
| @FieldNameConstants | ||
| @EqualsAndHashCode(of = {"id"}, callSuper = false) | ||
| @Document(collection = "reports") | ||
| public class Report { | ||
|
|
||
| @MongoId | ||
| private String id; | ||
| private String initiativeId; | ||
| private ReportStatus reportStatus; | ||
| private LocalDateTime startPeriod; | ||
| private LocalDateTime endPeriod; | ||
| private String merchantId; | ||
| private String businessName; | ||
| private LocalDateTime requestDate; | ||
| private LocalDateTime elaborationDate; | ||
| private RewardBatchAssignee operatorLevel; | ||
| private String fileName; | ||
| private ReportType reportType; | ||
| } |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.