mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-11-02 04:04:43 +08:00
feat(events): Add audit events payment confirm (#4763)
Co-authored-by: hyperswitch-bot[bot] <148525504+hyperswitch-bot[bot]@users.noreply.github.com> Co-authored-by: Sampras Lopes <Sampras.lopes@juspay.in>
This commit is contained in:
@ -29,6 +29,7 @@ use crate::{
|
||||
utils as core_utils,
|
||||
},
|
||||
db::StorageInterface,
|
||||
events::audit_events::{AuditEvent, AuditEventType},
|
||||
routes::{app::ReqState, SessionState},
|
||||
services,
|
||||
types::{
|
||||
@ -935,7 +936,7 @@ impl<F: Clone> UpdateTracker<F, PaymentData<F>, api::PaymentsRequest> for Paymen
|
||||
async fn update_trackers<'b>(
|
||||
&'b self,
|
||||
state: &'b SessionState,
|
||||
_req_state: ReqState,
|
||||
req_state: ReqState,
|
||||
mut payment_data: PaymentData<F>,
|
||||
customer: Option<domain::Customer>,
|
||||
storage_scheme: storage_enums::MerchantStorageScheme,
|
||||
@ -1294,6 +1295,19 @@ impl<F: Clone> UpdateTracker<F, PaymentData<F>, api::PaymentsRequest> for Paymen
|
||||
payment_data.payment_intent = payment_intent;
|
||||
payment_data.payment_attempt = payment_attempt;
|
||||
|
||||
let client_src = payment_data.payment_attempt.client_source.clone();
|
||||
let client_ver = payment_data.payment_attempt.client_version.clone();
|
||||
|
||||
let frm_message = payment_data.frm_message.clone();
|
||||
req_state
|
||||
.event_context
|
||||
.event(AuditEvent::new(AuditEventType::PaymentConfirm {
|
||||
client_src,
|
||||
client_ver,
|
||||
frm_message,
|
||||
}))
|
||||
.with(payment_data.to_event())
|
||||
.emit();
|
||||
Ok((Box::new(self), payment_data))
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,18 +1,27 @@
|
||||
use diesel_models::fraud_check::FraudCheck;
|
||||
use events::{Event, EventInfo};
|
||||
use serde::Serialize;
|
||||
use time::PrimitiveDateTime;
|
||||
|
||||
#[derive(Debug, Clone, Serialize)]
|
||||
#[serde(tag = "event_type")]
|
||||
pub enum AuditEventType {
|
||||
Error { error_message: String },
|
||||
Error {
|
||||
error_message: String,
|
||||
},
|
||||
PaymentCreated,
|
||||
ConnectorDecided,
|
||||
ConnectorCalled,
|
||||
RefundCreated,
|
||||
RefundSuccess,
|
||||
RefundFail,
|
||||
PaymentCancelled { cancellation_reason: Option<String> },
|
||||
PaymentConfirm {
|
||||
client_src: Option<String>,
|
||||
client_ver: Option<String>,
|
||||
frm_message: Option<FraudCheck>,
|
||||
},
|
||||
PaymentCancelled {
|
||||
cancellation_reason: Option<String>,
|
||||
},
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize)]
|
||||
@ -43,6 +52,7 @@ impl Event for AuditEvent {
|
||||
let event_type = match &self.event_type {
|
||||
AuditEventType::Error { .. } => "error",
|
||||
AuditEventType::PaymentCreated => "payment_created",
|
||||
AuditEventType::PaymentConfirm { .. } => "payment_confirm",
|
||||
AuditEventType::ConnectorDecided => "connector_decided",
|
||||
AuditEventType::ConnectorCalled => "connector_called",
|
||||
AuditEventType::RefundCreated => "refund_created",
|
||||
|
||||
Reference in New Issue
Block a user