Closed italopessoa closed 3 months ago
The changes introduce MercadoPago integration into the ByteMeBurger project. This includes new projects for the MercadoPago gateway and its tests, updates to configuration files to handle new environment variables, and modifications to the API to manage webhook events from MercadoPago. Additionally, dependency injection and authorization filters have been updated to support the new functionality, ensuring secure and efficient processing of MercadoPago webhook events.
File(s) | Change Summary |
---|---|
.env.template , docker-compose.yml , kubernetes/configmap-api.yaml , appsettings.Development.json |
Added new environment variable MercadoPago_WebhookSecret to various configuration files. |
FIAP.TechChallenge.ByteMeBurger.sln |
Added new projects for MercadoPago gateway and its tests. |
src/FIAP.TechChallenge.ByteMeBurger.Api/FIAP.TechChallenge.ByteMeBurger.Api.csproj |
Updated project references and added a new folder reference for the API project. |
src/FIAP.TechChallenge.ByteMeBurger.Api/Program.cs , src/FIAP.TechChallenge.ByteMeBurger.Api/ServiceCollectionExtensions.cs |
Modified dependency injection setup to include MercadoPago configurations. |
src/FIAP.TechChallenge.ByteMeBurger.Api/Webhook/MercadoPagoController.cs |
Added a new controller for handling MercadoPago webhook events. |
src/FIAP.TechChallenge.ByteMeBurger.MercadoPago.Gateway/Auth/MercadoPagoMessageAuthorizationFilter.cs |
Introduced an authorization filter for validating MercadoPago webhook messages. |
src/FIAP.TechChallenge.ByteMeBurger.MercadoPago.Gateway/Configuration/MercadoPagoOptions.cs |
Defined configuration options for MercadoPago integration. |
src/FIAP.TechChallenge.ByteMeBurger.MercadoPago.Gateway/FIAP.TechChallenge.ByteMeBurger.MercadoPago.Gateway.csproj |
Updated project to target .NET 8.0 and added necessary package references. |
src/FIAP.TechChallenge.ByteMeBurger.MercadoPago.Gateway/Model/MercadoPagoWebhookEvent.cs |
Defined models for handling MercadoPago webhook events. |
src/FIAP.TechChallenge.ByteMeBurger.MercadoPago.Gateway/ServiceCollectionsExtensions.cs |
Added extension methods for configuring MercadoPago gateway services. |
tests/FIAP.TechChallenge.ByteMeBurger.MercadoPago.Gateway.Test/Auth/MercadoPagoMessageAuthorizationFilterTest.cs |
Introduced test cases for the MercadoPago message authorization filter. |
tests/FIAP.TechChallenge.ByteMeBurger.MercadoPago.Gateway.Test/FIAP.TechChallenge.ByteMeBurger.MercadoPago.Gateway.Test.csproj |
Updated test project to target .NET 8.0 and added necessary package references for testing. |
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?
@coderabbitai create a mermaid graph with the execution flow of the changes on this pull request
[!TIP] For best results, initiate chat on the files or code changes.
@italopessoa Here's the Mermaid graph depicting the execution flow of the changes introduced in this pull request. This graph focuses on the integration of the MercadoPago functionalities and the interactions between the new and modified components:
graph TD;
A[Start] -->|Read config| B[Load Environment Variables]
B --> C{MercadoPago Gateway Configured?}
C -->|Yes| D[Initialize MercadoPago Gateway]
C -->|No| E[Log Configuration Error]
D --> F[MercadoPago Message Authorization Filter]
F -->|Validate Signature| G[Try Validate Signature]
G -->|Success| H[Post Webhook Event to Controller]
G -->|Fail| I[Return Unauthorized]
H --> J[Handle Webhook Event]
J --> K[End]
I --> K
E --> K
This graph illustrates the flow from configuration loading to handling webhook events, including error handling for configuration issues and signature validation failures. Let me know if you need any adjustments or further details!
@coderabbitai create a mermaid sequenceDiagram for the changes on this pull request
[!TIP] For best results, initiate chat on the files or code changes.
@italopessoa Below is the Mermaid sequence diagram illustrating the interactions and sequence of operations for the changes introduced in this pull request, focusing on the MercadoPago integration:
sequenceDiagram
participant Config as Environment Config Loader
participant Gateway as MercadoPago Gateway
participant AuthFilter as MercadoPago Message Authorization Filter
participant Controller as MercadoPago Controller
participant Logger as Logger
Config->>Gateway: Load Environment Variables
Gateway->>Gateway: Configure Gateway
Gateway->>AuthFilter: Initialize
AuthFilter->>AuthFilter: Validate Signature
alt Signature Valid
AuthFilter->>Controller: Forward Request
Controller->>Controller: Handle Webhook Event
Controller->>Gateway: Response Processed
else Signature Invalid
AuthFilter->>Logger: Log Error
AuthFilter->>Gateway: Return Unauthorized
end
This diagram shows the sequence from configuration loading to handling webhook events, including the decision-making process based on the validity of the signature. If you need any adjustments or additional details, please let me know!
74
77
73