mirror of
				https://github.com/juspay/hyperswitch.git
				synced 2025-11-01 02:57:02 +08:00 
			
		
		
		
	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:
		| @ -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 | ||||
|     } | ||||
| } | ||||
|  | ||||
| @ -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 | ||||
|     } | ||||
| } | ||||
|  | ||||
| @ -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 | ||||
|     } | ||||
| } | ||||
|  | ||||
| @ -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) | ||||
| )] | ||||
|  | ||||
| @ -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, | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 Prajjwal Kumar
					Prajjwal Kumar