deps(api_models): put the errors module behind a feature flag (#815)

This commit is contained in:
ItsMeShashank
2023-03-30 15:13:34 +05:30
committed by GitHub
parent 324df4de8c
commit f14f87a106
8 changed files with 23 additions and 18 deletions

View File

@ -4,14 +4,19 @@ version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[features]
errors = [
"dep:actix-web",
"dep:reqwest",
]
[dependencies]
actix-web = "4.3.1"
actix-web = { version = "4.3.1", optional = true }
error-stack = "0.3.1"
frunk = "0.4.1"
frunk_core = "0.4.1"
mime = "0.3.16"
reqwest = "0.11.14"
reqwest = { version = "0.11.14", optional = true }
serde = { version = "1.0.155", features = ["derive"] }
serde_json = "1.0.94"
strum = { version = "0.24.1", features = ["derive"] }

View File

@ -6,6 +6,7 @@ pub mod cards_info;
pub mod customers;
pub mod disputes;
pub mod enums;
#[cfg(feature = "errors")]
pub mod errors;
pub mod files;
pub mod mandates;

View File

@ -50,14 +50,6 @@ impl From<IncomingWebhookEvent> for WebhookFlow {
}
}
pub struct IncomingWebhookRequestDetails<'a> {
pub method: actix_web::http::Method,
pub headers: &'a actix_web::http::header::HeaderMap,
pub body: &'a [u8],
pub query_params: String,
pub query_params_json: &'a [u8],
}
pub type MerchantWebhookConfig = std::collections::HashSet<IncomingWebhookEvent>;
pub enum RefundIdType {

View File

@ -79,7 +79,7 @@ utoipa-swagger-ui = { version = "3.1.0", features = ["actix-web"] }
uuid = { version = "1.3.0", features = ["serde", "v4"] }
# First party crates
api_models = { version = "0.1.0", path = "../api_models" }
api_models = { version = "0.1.0", path = "../api_models", features = ["errors"] }
common_utils = { version = "0.1.0", path = "../common_utils" }
external_services = { version = "0.1.0", path = "../external_services" }
masking = { version = "0.1.0", path = "../masking" }

View File

@ -783,7 +783,7 @@ impl api::IncomingWebhook for Adyen {
fn get_dispute_details(
&self,
request: &api_models::webhooks::IncomingWebhookRequestDetails<'_>,
request: &api::IncomingWebhookRequestDetails<'_>,
) -> CustomResult<api::disputes::DisputePayload, errors::ConnectorError> {
let notif = get_webhook_object_from_body(request.body)
.change_context(errors::ConnectorError::WebhookBodyDecodingFailed)?;

View File

@ -722,7 +722,7 @@ impl api::IncomingWebhook for Trustpay {
fn get_dispute_details(
&self,
request: &api_models::webhooks::IncomingWebhookRequestDetails<'_>,
request: &api::IncomingWebhookRequestDetails<'_>,
) -> CustomResult<api::disputes::DisputePayload, errors::ConnectorError> {
let trustpay_response: trustpay::TrustpayWebhookResponse = request
.body

View File

@ -301,7 +301,7 @@ async fn disputes_incoming_webhook_flow<W: api::OutgoingWebhookType>(
webhook_details: api::IncomingWebhookDetails,
source_verified: bool,
connector: &(dyn api::Connector + Sync),
request_details: &api_models::webhooks::IncomingWebhookRequestDetails<'_>,
request_details: &api::IncomingWebhookRequestDetails<'_>,
event_type: api_models::webhooks::IncomingWebhookEvent,
) -> CustomResult<(), errors::WebhooksFlowError> {
metrics::INCOMING_DISPUTE_WEBHOOK_METRIC.add(&metrics::CONTEXT, 1, &[]);
@ -497,7 +497,7 @@ pub async fn webhooks_core<W: api::OutgoingWebhookType>(
.change_context(errors::ApiErrorResponse::InternalServerError)
.attach_printable("There was an error in parsing the query params")?;
let mut request_details = api_models::webhooks::IncomingWebhookRequestDetails {
let mut request_details = api::IncomingWebhookRequestDetails {
method: req.method().clone(),
headers: req.headers(),
query_params: req.query_string().to_string(),

View File

@ -1,7 +1,6 @@
pub use api_models::webhooks::{
IncomingWebhookDetails, IncomingWebhookEvent, IncomingWebhookRequestDetails,
MerchantWebhookConfig, ObjectReferenceId, OutgoingWebhook, OutgoingWebhookContent,
OutgoingWebhookType, WebhookFlow,
IncomingWebhookDetails, IncomingWebhookEvent, MerchantWebhookConfig, ObjectReferenceId,
OutgoingWebhook, OutgoingWebhookContent, OutgoingWebhookType, WebhookFlow,
};
use error_stack::ResultExt;
@ -13,6 +12,14 @@ use crate::{
utils::crypto,
};
pub struct IncomingWebhookRequestDetails<'a> {
pub method: actix_web::http::Method,
pub headers: &'a actix_web::http::header::HeaderMap,
pub body: &'a [u8],
pub query_params: String,
pub query_params_json: &'a [u8],
}
#[async_trait::async_trait]
pub trait IncomingWebhook: ConnectorCommon + Sync {
fn get_webhook_body_decoding_algorithm(