chore: add api reference for blocklist (#3336)

Co-authored-by: hyperswitch-bot[bot] <148525504+hyperswitch-bot[bot]@users.noreply.github.com>
This commit is contained in:
Prajjwal Kumar
2024-01-12 18:28:57 +05:30
committed by GitHub
parent 57f2cff75e
commit f381d86b7c
7 changed files with 319 additions and 32 deletions

View File

@ -163,41 +163,49 @@ impl BlocklistInterface for KafkaStore {
#[instrument(skip_all)]
async fn insert_blocklist_entry(
&self,
_pm_blocklist: storage::BlocklistNew,
pm_blocklist: storage::BlocklistNew,
) -> CustomResult<storage::Blocklist, errors::StorageError> {
Err(errors::StorageError::KafkaError)?
self.diesel_store.insert_blocklist_entry(pm_blocklist).await
}
async fn find_blocklist_entry_by_merchant_id_fingerprint_id(
&self,
_merchant_id: &str,
_fingerprint_id: &str,
merchant_id: &str,
fingerprint: &str,
) -> CustomResult<storage::Blocklist, errors::StorageError> {
Err(errors::StorageError::KafkaError)?
self.diesel_store
.find_blocklist_entry_by_merchant_id_fingerprint_id(merchant_id, fingerprint)
.await
}
async fn delete_blocklist_entry_by_merchant_id_fingerprint_id(
&self,
_merchant_id: &str,
_fingerprint_id: &str,
merchant_id: &str,
fingerprint: &str,
) -> CustomResult<storage::Blocklist, errors::StorageError> {
Err(errors::StorageError::KafkaError)?
self.diesel_store
.delete_blocklist_entry_by_merchant_id_fingerprint_id(merchant_id, fingerprint)
.await
}
async fn list_blocklist_entries_by_merchant_id_data_kind(
&self,
_merchant_id: &str,
_data_kind: common_enums::BlocklistDataKind,
_limit: i64,
_offset: i64,
merchant_id: &str,
data_kind: common_enums::BlocklistDataKind,
limit: i64,
offset: i64,
) -> CustomResult<Vec<storage::Blocklist>, errors::StorageError> {
Err(errors::StorageError::KafkaError)?
self.diesel_store
.list_blocklist_entries_by_merchant_id_data_kind(merchant_id, data_kind, limit, offset)
.await
}
async fn list_blocklist_entries_by_merchant_id(
&self,
_merchant_id: &str,
merchant_id: &str,
) -> CustomResult<Vec<storage::Blocklist>, errors::StorageError> {
Err(errors::StorageError::KafkaError)?
self.diesel_store
.list_blocklist_entries_by_merchant_id(merchant_id)
.await
}
}

View File

@ -80,16 +80,20 @@ impl BlocklistFingerprintInterface for KafkaStore {
#[instrument(skip_all)]
async fn insert_blocklist_fingerprint_entry(
&self,
_pm_fingerprint_new: storage::BlocklistFingerprintNew,
pm_fingerprint_new: storage::BlocklistFingerprintNew,
) -> CustomResult<storage::BlocklistFingerprint, errors::StorageError> {
Err(errors::StorageError::KafkaError)?
self.diesel_store
.insert_blocklist_fingerprint_entry(pm_fingerprint_new)
.await
}
async fn find_blocklist_fingerprint_by_merchant_id_fingerprint_id(
&self,
_merchant_id: &str,
_fingerprint_id: &str,
merchant_id: &str,
fingerprint: &str,
) -> CustomResult<storage::BlocklistFingerprint, errors::StorageError> {
Err(errors::StorageError::KafkaError)?
self.diesel_store
.find_blocklist_fingerprint_by_merchant_id_fingerprint_id(merchant_id, fingerprint)
.await
}
}

View File

@ -102,24 +102,30 @@ impl BlocklistLookupInterface for KafkaStore {
#[instrument(skip_all)]
async fn insert_blocklist_lookup_entry(
&self,
_blocklist_lookup_entry: storage::BlocklistLookupNew,
blocklist_lookup_entry: storage::BlocklistLookupNew,
) -> CustomResult<storage::BlocklistLookup, errors::StorageError> {
Err(errors::StorageError::KafkaError)?
self.diesel_store
.insert_blocklist_lookup_entry(blocklist_lookup_entry)
.await
}
async fn find_blocklist_lookup_entry_by_merchant_id_fingerprint(
&self,
_merchant_id: &str,
_fingerprint: &str,
merchant_id: &str,
fingerprint: &str,
) -> CustomResult<storage::BlocklistLookup, errors::StorageError> {
Err(errors::StorageError::KafkaError)?
self.diesel_store
.find_blocklist_lookup_entry_by_merchant_id_fingerprint(merchant_id, fingerprint)
.await
}
async fn delete_blocklist_lookup_entry_by_merchant_id_fingerprint(
&self,
_merchant_id: &str,
_fingerprint: &str,
merchant_id: &str,
fingerprint: &str,
) -> CustomResult<storage::BlocklistLookup, errors::StorageError> {
Err(errors::StorageError::KafkaError)?
self.diesel_store
.delete_blocklist_lookup_entry_by_merchant_id_fingerprint(merchant_id, fingerprint)
.await
}
}

View File

@ -119,6 +119,9 @@ Never share your secret api keys. Keep them guarded and secure.
crate::routes::gsm::get_gsm_rule,
crate::routes::gsm::update_gsm_rule,
crate::routes::gsm::delete_gsm_rule,
crate::routes::blocklist::add_entry_to_blocklist,
crate::routes::blocklist::list_blocked_payment_methods,
crate::routes::blocklist::remove_entry_from_blocklist
),
components(schemas(
crate::types::api::refunds::RefundRequest,
@ -370,7 +373,11 @@ Never share your secret api keys. Keep them guarded and secure.
api_models::payments::PaymentLinkResponse,
api_models::payments::RetrievePaymentLinkResponse,
api_models::payments::PaymentLinkInitiateRequest,
api_models::payments::PaymentLinkStatus
api_models::payments::PaymentLinkStatus,
api_models::blocklist::BlocklistRequest,
api_models::blocklist::BlocklistResponse,
api_models::blocklist::ListBlocklistQuery,
common_enums::enums::BlocklistDataKind
)),
modifiers(&SecurityAddon)
)]

View File

@ -8,6 +8,18 @@ use crate::{
services::{api, authentication as auth, authorization::permissions::Permission},
};
#[utoipa::path(
post,
path = "/blocklist",
request_body = BlocklistRequest,
responses(
(status = 200, description = "Fingerprint Blocked", body = BlocklistResponse),
(status = 400, description = "Invalid Data")
),
tag = "Blocklist",
operation_id = "Block a Fingerprint",
security(("api_key" = []))
)]
pub async fn add_entry_to_blocklist(
state: web::Data<AppState>,
req: HttpRequest,
@ -32,6 +44,18 @@ pub async fn add_entry_to_blocklist(
.await
}
#[utoipa::path(
delete,
path = "/blocklist",
request_body = BlocklistRequest,
responses(
(status = 200, description = "Fingerprint Unblocked", body = BlocklistResponse),
(status = 400, description = "Invalid Data")
),
tag = "Blocklist",
operation_id = "Unblock a Fingerprint",
security(("api_key" = []))
)]
pub async fn remove_entry_from_blocklist(
state: web::Data<AppState>,
req: HttpRequest,
@ -56,6 +80,20 @@ pub async fn remove_entry_from_blocklist(
.await
}
#[utoipa::path(
get,
path = "/blocklist",
params (
("data_kind" = BlocklistDataKind, Query, description = "Kind of the fingerprint list requested"),
),
responses(
(status = 200, description = "Blocked Fingerprints", body = BlocklistResponse),
(status = 400, description = "Invalid Data")
),
tag = "Blocklist",
operation_id = "List Blocked fingerprints of a particular kind",
security(("api_key" = []))
)]
pub async fn list_blocked_payment_methods(
state: web::Data<AppState>,
req: HttpRequest,