Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
bba12c9
feat: new function to report
jacopocarlini Sep 8, 2025
6afea0f
fix junit
jacopocarlini Sep 9, 2025
7d43eef
coverage
jacopocarlini Sep 9, 2025
aefd63c
Bump to version 0.2.2-1-PAGOPA-3213-ipg-143-gpd-reporting-sviluppare-…
pagopa-github-bot Sep 9, 2025
fc390fe
Merge branch 'main' into PAGOPA-3213-ipg-143-gpd-reporting-sviluppare…
jacopocarlini Sep 9, 2025
d9b927b
Bump to version 0.2.3-1-PAGOPA-3213-ipg-143-gpd-reporting-sviluppare-…
pagopa-github-bot Sep 10, 2025
47dbf9b
Bump to version 0.2.3-2-PAGOPA-3213-ipg-143-gpd-reporting-sviluppare-…
pagopa-github-bot Sep 10, 2025
a34406c
Bump to version 0.2.3-3-PAGOPA-3213-ipg-143-gpd-reporting-sviluppare-…
pagopa-github-bot Sep 10, 2025
c7e2d8b
fix
jacopocarlini Sep 11, 2025
ff23676
Merge branch 'PAGOPA-3213-ipg-143-gpd-reporting-sviluppare-aggiorname…
jacopocarlini Sep 11, 2025
cf9223a
Bump to version 0.2.3-4-PAGOPA-3213-ipg-143-gpd-reporting-sviluppare-…
pagopa-github-bot Sep 11, 2025
a6bd393
log level
jacopocarlini Sep 11, 2025
56422f2
Merge branch 'PAGOPA-3213-ipg-143-gpd-reporting-sviluppare-aggiorname…
jacopocarlini Sep 11, 2025
a91382d
[PAGOPA-3213] fix message parsing
gioelemella Sep 11, 2025
2626f66
fix
jacopocarlini Sep 11, 2025
15ef024
Bump to version 0.2.3-5-PAGOPA-3213-ipg-143-gpd-reporting-sviluppare-…
pagopa-github-bot Sep 11, 2025
9f6260f
cleanup code
jacopocarlini Sep 12, 2025
63d0ec5
Merge branch 'PAGOPA-3213-ipg-143-gpd-reporting-sviluppare-aggiorname…
jacopocarlini Sep 12, 2025
3319e0e
Merge branch 'main' into PAGOPA-3213-ipg-143-gpd-reporting-sviluppare…
jacopocarlini Sep 12, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .env.sample
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,6 @@ NODO_HOST=http://localhost:8086/nodo-per-pa/v1
PAA_ID_INTERMEDIARIO=PAA_ID_INTERMEDIARIO
PAA_STAZIONE_INT=PAA_STAZIONE_INT
PAA_PASSWORD=PAA_PASSWORD
NCRON_SCHEDULE_BATCH=*/45 * * * * *
NCRON_SCHEDULE_BATCH=*/45 * * * * *
GPD_BASE_PATH=https://api.dev.platform.pagopa.it/gpd/api/v2
GPD_SUBKEY=GPD_SUBKEY
15 changes: 0 additions & 15 deletions .identity/00_data.tf
Original file line number Diff line number Diff line change
@@ -1,12 +1,3 @@
data "azurerm_resource_group" "dashboards" {
name = "dashboards"
}

data "azurerm_kubernetes_cluster" "aks" {
name = local.aks_cluster.name
resource_group_name = local.aks_cluster.resource_group_name
}

data "github_organization_teams" "all" {
root_teams_only = true
summary_only = true
Expand Down Expand Up @@ -42,12 +33,6 @@ data "azurerm_key_vault_secret" "key_vault_integration_test_subkey" {
key_vault_id = data.azurerm_key_vault.key_vault.id
}

data "azurerm_key_vault_secret" "flow_sa_connection_string" {
name = "flows-sa-${var.env_short}-connection-string"
key_vault_id = data.azurerm_key_vault.domain_key_vault.id
}


data "azurerm_user_assigned_identity" "identity_cd_01"{
name = "${local.prefix}-${var.env_short}-${local.domain}-01-github-cd-identity"
resource_group_name = "${local.prefix}-${var.env_short}-identity-rg"
Expand Down
2 changes: 0 additions & 2 deletions .identity/03_github_environment.tf
Original file line number Diff line number Diff line change
Expand Up @@ -25,15 +25,13 @@ locals {
"TENANT_ID" : data.azurerm_client_config.current.tenant_id,
"SUBSCRIPTION_ID" : data.azurerm_subscription.current.subscription_id,
"API_SUBSCRIPTION_KEY" : data.azurerm_key_vault_secret.key_vault_integration_test_subkey.value,
"FLOW_SA_CONNECTION_STRING": data.azurerm_key_vault_secret.flow_sa_connection_string.value
}
env_variables = {
"CONTAINER_APP_ENVIRONMENT_NAME" : local.container_app_environment.name,
"CONTAINER_APP_ENVIRONMENT_RESOURCE_GROUP_NAME" : local.container_app_environment.resource_group,
"CLUSTER_NAME" : local.aks_cluster.name,
"CLUSTER_RESOURCE_GROUP" : local.aks_cluster.resource_group_name,
"NAMESPACE" : local.domain,
"REPORTING_BATCH_QUEUE": "pagopa${var.env_short}flowsaqueueorg"
}
repo_secrets = {
"SONAR_TOKEN" : data.azurerm_key_vault_secret.key_vault_sonar.value,
Expand Down
4 changes: 2 additions & 2 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
# more info https://docs.gitguardian.com/internal-repositories-monitoring/integrations/git_hooks/pre_commit
repos:
- repo: https://github.com/gitguardian/ggshield
rev: v1.11.0
rev: v1.40.0
hooks:
- id: ggshield
language_version: python3
stages: [ commit ]
stages: [ pre-commit ]
4 changes: 3 additions & 1 deletion local.settings.json.example
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@
"NODO_HOST": "http://localhost:8081/nodo-per-pa/v1",
"PAA_ID_INTERMEDIARIO":"PAA_ID_INTERMEDIARIO",
"PAA_STAZIONE_INT":"PAA_STAZIONE_INT",
"PAA_PASSWORD":"PAA_PASSWORD"
"PAA_PASSWORD":"PAA_PASSWORD",
"GPD_BASE_PATH":"https://api.dev.platform.pagopa.it/gpd/api/v2",
"GPD_SUBKEY": "GPD_SUBKEY"
}
}
6 changes: 6 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,12 @@
<version>2.3.1</version>
</dependency>

<dependency>
<groupId>com.mashape.unirest</groupId>
<artifactId>unirest-java</artifactId>
<version>1.4.9</version>
</dependency>

<!-- resteasy START -->
<dependency>
<groupId>org.jboss.resteasy</groupId>
Expand Down
61 changes: 61 additions & 0 deletions src/main/java/it/gov/pagopa/reporting/GpdReportingSync.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
package it.gov.pagopa.reporting;

import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;
import com.microsoft.azure.functions.*;
import com.microsoft.azure.functions.annotation.*;
import it.gov.pagopa.reporting.model.ReportedIUVEventModel;

import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
* Azure Functions with Azure Http trigger.
*/
public class GpdReportingSync {

private String gpdBasePath = System.getenv("GPD_BASE_PATH");
private String gpdSubeKey = System.getenv("GPD_SUBKEY");


/**
* This function will be invoked by an incoming HTTP request
* @return
*/
@FunctionName("GpdReportingSync")
public void run (
@EventHubTrigger(
name = "BizEvent",
eventHubName = "", // blank because the value is included in the connection string
connection = "FDR_EVENTHUB_CONN_STRING",
cardinality = Cardinality.MANY)
List<ReportedIUVEventModel> items,
@BindingName(value = "PropertiesArray") Map<String, Object>[] properties,
final ExecutionContext context) {

Logger logger = context.getLogger();
logger.log(Level.FINE, () -> "[GpdReportingSync] function executed at: " + LocalDateTime.now());

for (ReportedIUVEventModel event: items) {
gpdReport(logger, event.getDomainId(), event.getIuv(), String.valueOf(event.getIdTransfer()));
}

}

public void gpdReport(Logger logger, String organizationId, String iuv, String transferId) {
try {
HttpResponse<String> response = Unirest.post(gpdBasePath + "/organizations/" + organizationId + "/paymentoptions/" + iuv + "/transfers/" + transferId + "/report")
.header("accept", "application/json")
.header("ocp-apim-subscription-key", gpdSubeKey)
.asString();
logger.log(Level.INFO, () -> response.getStatus() +" "+ response.getBody()); // TODO delete this line
} catch (Exception e) {
logger.log(Level.SEVERE, () -> "[GpdReportingSync] GPD client error: " + e.getLocalizedMessage());
}
}


}
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
package it.gov.pagopa.reporting.model;

import com.fasterxml.jackson.annotation.JsonProperty;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class ReportedIUVEventModel {

@JsonProperty("IUV")
private String iuv;

@JsonProperty("IUR")
private String iur;

@JsonProperty("IMPORTO")
private BigDecimal amount;

@JsonProperty("COD_ESITO")
private Integer outcomeCode;

@JsonProperty("DATA_ESITO_SINGOLO_PAGAMENTO")
private LocalDateTime singlePaymentOutcomeDate;

@JsonProperty("IDSP")
private String idsp;

@JsonProperty("ID_FLUSSO")
private String flowId;

@JsonProperty("DATA_ORA_FLUSSO")
private LocalDateTime flowDateTime;

@JsonProperty("ID_DOMINIO")
private String domainId;

@JsonProperty("PSP")
private String psp;

@JsonProperty("INT_PSP")
private String intPsp;

@JsonProperty("UNIQUE_ID")
private String uniqueId;

@JsonProperty("INSERTED_TIMESTAMP")
private LocalDateTime insertedTimestamp;

@JsonProperty("ID_TRANSFER")
private Long idTransfer;
}
Loading