Skip to content

Commit

Permalink
add paSendRT to the crawler
Browse files Browse the repository at this point in the history
  • Loading branch information
esposimo committed May 21, 2024
1 parent b996578 commit e99bfb0
Show file tree
Hide file tree
Showing 16 changed files with 1,532 additions and 3 deletions.
7 changes: 7 additions & 0 deletions src/mock_crawler.php
Original file line number Diff line number Diff line change
Expand Up @@ -230,6 +230,13 @@
$a->run();


$a = new \pagopa\crawler\paymentlist\req\paSendRT(new \DateTime('2024-03-10'), 'paSendRT', 'REQ', $redis_cache);
$a->run();

$a = new \pagopa\crawler\paymentlist\resp\paSendRT(new DateTime('2024-03-10'), 'paSendRT', 'RESP', $redis_cache);
$a->run();


$a = new \pagopa\crawler\paymentlist\req\nodoInviaRT(new DateTime('2024-03-10'), 'nodoInviaRT', 'REQ', $redis_cache);
$a->run();

Expand Down
206 changes: 206 additions & 0 deletions src/mock_insert.php

Large diffs are not rendered by default.

4 changes: 3 additions & 1 deletion src/sql/05_2024_insert_data.sql
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,9 @@ INSERT INTO mapped_events(tipo_evento,sotto_tipo_evento ,fk_event) values
('nodoChiediCopiaRT' , 'REQ' , 45),
('nodoChiediCopiaRT' , 'RESP', 46),
('paGetPayment' , 'REQ' , 47),
('paGetPayment' , 'RESP', 48);
('paGetPayment' , 'RESP', 48),
('paSendRT' , 'REQ' , 49),
('paSendRT' , 'RESP', 50);

insert into mapped_payment_methods (tipoversamento, descrizione) values
('CC', 'Carta di Credito'),
Expand Down
150 changes: 150 additions & 0 deletions src/src/crawler/events/req/paSendRT.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,150 @@
<?php

namespace pagopa\crawler\events\req;

use pagopa\crawler\events\AbstractEvent;
use pagopa\crawler\MapEvents;
use pagopa\crawler\methods\MethodInterface;
use pagopa\database\sherlock\Transaction;
use pagopa\database\sherlock\TransactionDetails;
use pagopa\database\sherlock\Workflow;
use pagopa\crawler\methods\req\paSendRT as Payload;

class paSendRT extends AbstractEvent
{

protected Payload $method;

public function __construct(array $eventData)
{
parent::__construct($eventData);
$this->method = new Payload($this->data['payload']);
}
/**
* @inheritDoc
*/
public function getIuvs(): array|null
{
$value = $this->getIuv();
return (is_null($value)) ? null : array($value);
}

/**
* @inheritDoc
*/
public function getPaEmittenti(): array|null
{
$value = $this->getPaEmittente();
return (is_null($value)) ? null : array($value);
}

/**
* @inheritDoc
*/
public function getCcps(): array|null
{
$value = $this->getCcp();
return (is_null($value)) ? null : array($value);
}

/**
* @inheritDoc
*/
public function transaction(int $index = 0): Transaction|null
{
return null;
}

public function transactionDetails(int $transfer, int $index = 0): TransactionDetails|null
{
return null;
}

public function workflowEvent(int $index = 0): Workflow|null
{
$workflow = new Workflow($this->getInsertedTimestamp());
$workflow->setNewColumnValue('date_event', $this->getInsertedTimestamp()->format('Y-m-d'));
$workflow->setEventId($this->getUniqueId());
$workflow->setEventTimestamp($this->getInsertedTimestamp());
if (!is_null($this->getStazione()))
{
$workflow->setStazione($this->getStazione());
}
if (!is_null($this->getCanale()))
{
$workflow->setCanale($this->getCanale());
}
if (!is_null($this->getPsp()))
{
$workflow->setPsp($this->getPsp());
}
$workflow->setFkTipoEvento(MapEvents::getMethodId($this->getTipoEvento(), $this->getSottoTipoEvento()));
return $workflow;
}

/**
* @inheritDoc
*/
public function getMethodInterface(): Payload
{
return $this->method;
}

/**
* @inheritDoc
*/
public function getPaymentsCount(): int|null
{
return 1;
}

/**
* @inheritDoc
*/
public function getTransferCount(int $index = 0): int|null
{
return null;
}

/**
* @inheritDoc
*/
public function getCacheKeyPayment(int $index = 0): string|null
{
$iuv = $this->getIuv();
$pa_emittente = $this->getPaEmittente();

return sprintf('payment_%s_%s', $iuv, $pa_emittente);
}

/**
* @inheritDoc
*/
public function getCacheKeyAttempt(int $index = 0): string|null
{
$iuv = $this->getIuv();
$pa_emittente = $this->getPaEmittente();
$token = $this->getPaymentToken();

return sprintf('attempt_%s_%s_%s', $iuv, $pa_emittente, $token);
}

/**
* @inheritDoc
*/
public function getCacheKeyList(): array
{
$return = array();
if (!is_null($this->getSessionId()))
{
$key = sprintf('session_id_%s_%s_%s', $this->getSessionId(), $this->getTipoEvento(), $this->getSottoTipoEvento());
$return[] = $key;
}
if (!is_null($this->getPaymentToken()))
{
$key = sprintf('token_%s', $this->getPaymentToken());
$return[] = $key;
}
return $return;
}
}
167 changes: 167 additions & 0 deletions src/src/crawler/events/resp/paSendRT.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,167 @@
<?php

namespace pagopa\crawler\events\resp;

use pagopa\crawler\events\AbstractEvent;
use pagopa\crawler\MapEvents;
use pagopa\crawler\methods\MethodInterface;
use pagopa\database\sherlock\Transaction;
use pagopa\database\sherlock\TransactionDetails;
use pagopa\database\sherlock\Workflow;
use pagopa\crawler\methods\resp\paSendRT as Payload;

class paSendRT extends AbstractEvent
{

protected Payload $method;

public function __construct(array $eventData)
{
parent::__construct($eventData);
$this->method = new Payload($this->data['payload']);
}
/**
* @inheritDoc
*/
public function getIuvs(): array|null
{
$value = $this->getIuv();
return (is_null($value)) ? null : array($value);

}

/**
* @inheritDoc
*/
public function getPaEmittenti(): array|null
{
$value = $this->getPaEmittente();
return (is_null($value)) ? null : array($value);

}

/**
* @inheritDoc
*/
public function getCcps(): array|null
{
$value = $this->getCcp();
return (is_null($value)) ? null : array($value);
}

/**
* @inheritDoc
*/
public function transaction(int $index = 0): Transaction|null
{
return null;
}

public function transactionDetails(int $transfer, int $index = 0): TransactionDetails|null
{
return null;
}

public function workflowEvent(int $index = 0): Workflow|null
{
$workflow = new Workflow($this->getInsertedTimestamp());
$workflow->setNewColumnValue('date_event', $this->getInsertedTimestamp()->format('Y-m-d'));
$workflow->setEventTimestamp($this->getInsertedTimestamp());
$workflow->setEventId($this->getUniqueId());
$workflow->setFkTipoEvento(MapEvents::getMethodId($this->getTipoEvento(), $this->getSottoTipoEvento()));


$id_psp = $this->getPsp();
$stazione = $this->getStazione();
$canale = $this->getCanale();

if (!is_null($id_psp))
{
$workflow->setPsp($id_psp);
}
if (!is_null($stazione))
{
$workflow->setStazione($stazione);
}
if (!is_null($canale))
{
$workflow->setCanale($canale);
}

if ($this->getMethodInterface()->isFaultEvent())
{
$workflow->setFaultCode($this->getMethodInterface()->getFaultCode());
}
if (!is_null($this->getMethodInterface()->outcome()))
{
$workflow->setOutcomeEvent($this->getMethodInterface()->outcome());
}
return $workflow;
}

/**
* @inheritDoc
*/
public function getMethodInterface(): Payload
{
return $this->method;
}

/**
* @inheritDoc
*/
public function getPaymentsCount(): int|null
{
return 1;
}

/**
* @inheritDoc
*/
public function getTransferCount(int $index = 0): int|null
{
return null;
}

/**
* @inheritDoc
*/
public function getCacheKeyPayment(int $index = 0): string|null
{
$iuv = $this->getIuv();
$pa_emittente = $this->getPaEmittente();

return sprintf('payment_%s_%s', $iuv, $pa_emittente);
}

/**
* @inheritDoc
*/
public function getCacheKeyAttempt(int $index = 0): string|null
{
$iuv = $this->getIuv();
$pa_emittente = $this->getPaEmittente();
$token = $this->getPaymentToken();

return sprintf('attempt_%s_%s_%s', $iuv, $pa_emittente, $token);
}

/**
* @inheritDoc
*/
public function getCacheKeyList(): array
{
$return = array();
if (!is_null($this->getSessionId()))
{
$key = sprintf('session_id_%s_%s_%s', $this->getSessionId(), $this->getTipoEvento(), $this->getSottoTipoEvento());
$return[] = $key;
}
if (!is_null($this->getPaymentToken()))
{
$key = sprintf('token_%s', $this->getPaymentToken());
$return[] = $key;
}
return $return;
}
}
37 changes: 37 additions & 0 deletions src/src/crawler/methods/req/paSendRT.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
<?php

namespace pagopa\crawler\methods\req;

use pagopa\crawler\methods\AbstractXmlPayload;

class paSendRT extends AbstractXmlPayload
{


protected $prefix_xpath = 'paSendRTReq';

const XPATH_IUV = '/receipt/creditorReferenceId';

const XPATH_PA_EMITTENTE = '/receipt/fiscalCode';

const XPATH_TOKEN_CCP = '/receipt/receiptId';
const XPATH_NOTICE_NUMBER = '/receipt/noticeNumber';

const XPATH_SINGLE_PAYMENT_IMPORT = '/receipt/paymentAmount';

const XPATH_TOTAL_CART_AMOUNT = '/receipt/paymentAmount';

const XPATH_BROKER_PA = '/idBrokerPA';
const XPATH_STATION = '/idStation';

const XPATH_PSP = '/receipt/idPSP';

const XPATH_CHANNEL = '/receipt/idChannel';

const XPATH_BROKER_PSP = '/receipt/pspFiscalCode';

public function getPaymentsCount(): int|null
{
return 1;
}
}
Loading

0 comments on commit e99bfb0

Please sign in to comment.