thiago-costa-barros / DireitoFavoravelProject

https://direito-favoravel-project.vercel.app
0 stars 0 forks source link

Ajuste de ExternalWebhookReceiverEventName para um tipo int #9

Closed thiago-costa-barros closed 19 hours ago

thiago-costa-barros commented 2 days ago

Na requisição do webhook, é passado um event com tipo string. Se faz necessário adaptação no banco de dados para a coluna receber um valor int a partir do enum.

thiago-costa-barros commented 1 day ago

Alterações no banco realizadas script utilizado



update externalschema."ExternalWebhookReceiver" 
set "EventName" = case 
     when  "EventName" = 'PURCHASE_CANCELED'                then 0
     when  "EventName" = 'PURCHASE_COMPLETE'                then 1
     when  "EventName" = 'PURCHASE_BILLET_PRINTED'          then 2
     when  "EventName" = 'PURCHASE_APPROVED'                then 3
     when  "EventName" = 'PURCHASE_PROTEST'                 then 4
     when  "EventName" = 'PURCHASE_REFUNDED'                then 5
     when  "EventName" = 'PURCHASE_CHARGEBACK'              then 6
     when  "EventName" = 'PURCHASE_EXPIRED'                 then 7
     when  "EventName" = 'PURCHASE_DELAYED'                 then 8
     when  "EventName" = 'PURCHASE_OUT_OF_SHOPPING_CART'    then 9
     when  "EventName" = 'SWITCH_PLAN'                      then 10
     when  "EventName" = 'SUBSCRIPTION_CANCELLATION'        then 11
     when  "EventName" = 'UPDATE_SUBSCRIPTION_CHARGE_DATE'  then 12
     else null 
end

alter table externalschema."ExternalWebhookReceiver" 
alter column "EventName" type int4  
using "EventName"::int4

ALTER TABLE externalschema."ExternalWebhookReceiver" 
RENAME COLUMN "EventName" TO "EventType";

commit;```

![image](https://github.com/user-attachments/assets/eb1f71e1-ba67-4d6a-8190-ae32adb325eb)
thiago-costa-barros commented 1 day ago

Procedure externalschema.ExecuteInsertExternalWebhookReceiver alterada


CREATE OR REPLACE PROCEDURE externalschema.executeinsertexternalwebhookreceiver(IN requestid text, IN eventdate timestamp without time zone, IN eventtype integer, IN status integer, IN type integer, IN version text, IN payload jsonb)
 LANGUAGE plpgsql
AS $procedure$
BEGIN
    -- Inserir os dados na tabela ExternalWebhookReceiver
    INSERT INTO externalschema."ExternalWebhookReceiver" (
        "RequestId",
        "EventDate",
        "EventType",
        "Status",
        "Type",
        "Version",
        "Payload",
        "CreationDate",
        "UpdateDate"
    )
    VALUES (
        RequestId,
        EventDate,
        EventType,
        Status,
        Type,
        Version,
        Payload,
        now(), -- Define a data de criação como a data atual
        now() -- Define a data de atualização como a data atual
    )
    ON CONFLICT ("RequestId") DO NOTHING; -- Evitar duplicações no caso de IDs únicos já existentes
END;
$procedure$
;
thiago-costa-barros commented 21 hours ago

Realizado migration change_eventName_to_eventType_in_externalwebhookreceiver e backUp adicionado ao banco

thiago-costa-barros commented 20 hours ago

Testes em localhost realizados e comit realizado