Skip to content

Commit

Permalink
Merge branch 'main' into fix-get-card-token-data
Browse files Browse the repository at this point in the history
  • Loading branch information
Chethan-rao authored Nov 28, 2023
2 parents eabdeb7 + cdbb385 commit 82eb6d8
Show file tree
Hide file tree
Showing 9 changed files with 273 additions and 7 deletions.
1 change: 1 addition & 0 deletions config/development.toml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ port = 5432
dbname = "hyperswitch_db"
pool_size = 5
connection_timeout = 10
min_idle = 2

[replica_database]
username = "db_user"
Expand Down
2 changes: 2 additions & 0 deletions crates/router/src/configs/defaults.rs
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ impl Default for super::settings::Database {
pool_size: 5,
connection_timeout: 10,
queue_strategy: Default::default(),
min_idle: None,
max_lifetime: None,
}
}
}
Expand Down
2 changes: 2 additions & 0 deletions crates/router/src/configs/kms.rs
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,8 @@ impl KmsDecrypt for settings::Database {
pool_size: self.pool_size,
connection_timeout: self.connection_timeout,
queue_strategy: self.queue_strategy.into(),
min_idle: self.min_idle,
max_lifetime: self.max_lifetime,
})
}
}
4 changes: 4 additions & 0 deletions crates/router/src/configs/settings.rs
Original file line number Diff line number Diff line change
Expand Up @@ -517,6 +517,8 @@ pub struct Database {
pub pool_size: u32,
pub connection_timeout: u64,
pub queue_strategy: QueueStrategy,
pub min_idle: Option<u32>,
pub max_lifetime: Option<u64>,
}

#[derive(Debug, Deserialize, Clone, Default)]
Expand Down Expand Up @@ -548,6 +550,8 @@ impl From<Database> for storage_impl::config::Database {
pool_size: val.pool_size,
connection_timeout: val.connection_timeout,
queue_strategy: val.queue_strategy.into(),
min_idle: val.min_idle,
max_lifetime: val.max_lifetime,
}
}
}
Expand Down
10 changes: 5 additions & 5 deletions crates/router/src/openapi.rs
Original file line number Diff line number Diff line change
Expand Up @@ -73,11 +73,11 @@ Never share your secret api keys. Keep them guarded and secure.
// crate::routes::admin::retrieve_merchant_account,
// crate::routes::admin::update_merchant_account,
// crate::routes::admin::delete_merchant_account,
// crate::routes::admin::payment_connector_create,
// crate::routes::admin::payment_connector_retrieve,
// crate::routes::admin::payment_connector_list,
// crate::routes::admin::payment_connector_update,
// crate::routes::admin::payment_connector_delete,
crate::routes::admin::payment_connector_create,
crate::routes::admin::payment_connector_retrieve,
crate::routes::admin::payment_connector_list,
crate::routes::admin::payment_connector_update,
crate::routes::admin::payment_connector_delete,
crate::routes::mandates::get_mandate,
crate::routes::mandates::revoke_mandate,
crate::routes::payments::payments_create,
Expand Down
2 changes: 1 addition & 1 deletion crates/router/src/routes/admin.rs
Original file line number Diff line number Diff line change
Expand Up @@ -190,7 +190,7 @@ pub async fn delete_merchant_account(
)
.await
}
/// PaymentsConnectors - Create
/// Merchant Connector - Create
///
/// Create a new Merchant Connector for the merchant account. The connector could be a payment processor / facilitator / acquirer or specialized services like Fraud / Accounting etc."
#[utoipa::path(
Expand Down
2 changes: 2 additions & 0 deletions crates/storage_impl/src/config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,6 @@ pub struct Database {
pub pool_size: u32,
pub connection_timeout: u64,
pub queue_strategy: bb8::QueueStrategy,
pub min_idle: Option<u32>,
pub max_lifetime: Option<u64>,
}
4 changes: 3 additions & 1 deletion crates/storage_impl/src/database/store.rs
Original file line number Diff line number Diff line change
Expand Up @@ -88,8 +88,10 @@ pub async fn diesel_make_pg_pool(
let manager = async_bb8_diesel::ConnectionManager::<PgConnection>::new(database_url);
let mut pool = bb8::Pool::builder()
.max_size(database.pool_size)
.min_idle(database.min_idle)
.queue_strategy(database.queue_strategy)
.connection_timeout(std::time::Duration::from_secs(database.connection_timeout));
.connection_timeout(std::time::Duration::from_secs(database.connection_timeout))
.max_lifetime(database.max_lifetime.map(std::time::Duration::from_secs));

if test_transaction {
pool = pool.connection_customizer(Box::new(TestTransaction));
Expand Down
253 changes: 253 additions & 0 deletions openapi/openapi_spec.json
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,259 @@
]
}
},
"/accounts/{account_id}/connectors": {
"get": {
"tags": [
"Merchant Connector Account"
],
"summary": "Merchant Connector - List",
"description": "Merchant Connector - List\n\nList Merchant Connector Details for the merchant",
"operationId": "List all Merchant Connectors",
"parameters": [
{
"name": "account_id",
"in": "path",
"description": "The unique identifier for the merchant account",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Merchant Connector list retrieved successfully",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/MerchantConnectorResponse"
}
}
}
}
},
"401": {
"description": "Unauthorized request"
},
"404": {
"description": "Merchant Connector does not exist in records"
}
},
"security": [
{
"admin_api_key": []
}
]
},
"post": {
"tags": [
"Merchant Connector Account"
],
"summary": "Merchant Connector - Create",
"description": "Merchant Connector - Create\n\nCreate a new Merchant Connector for the merchant account. The connector could be a payment processor / facilitator / acquirer or specialized services like Fraud / Accounting etc.\"",
"operationId": "Create a Merchant Connector",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MerchantConnectorCreate"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Merchant Connector Created",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MerchantConnectorResponse"
}
}
}
},
"400": {
"description": "Missing Mandatory fields"
}
},
"security": [
{
"admin_api_key": []
}
]
}
},
"/accounts/{account_id}/connectors/{connector_id}": {
"get": {
"tags": [
"Merchant Connector Account"
],
"summary": "Merchant Connector - Retrieve",
"description": "Merchant Connector - Retrieve\n\nRetrieve Merchant Connector Details",
"operationId": "Retrieve a Merchant Connector",
"parameters": [
{
"name": "account_id",
"in": "path",
"description": "The unique identifier for the merchant account",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "connector_id",
"in": "path",
"description": "The unique identifier for the Merchant Connector",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"responses": {
"200": {
"description": "Merchant Connector retrieved successfully",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MerchantConnectorResponse"
}
}
}
},
"401": {
"description": "Unauthorized request"
},
"404": {
"description": "Merchant Connector does not exist in records"
}
},
"security": [
{
"admin_api_key": []
}
]
},
"post": {
"tags": [
"Merchant Connector Account"
],
"summary": "Merchant Connector - Update",
"description": "Merchant Connector - Update\n\nTo update an existing Merchant Connector. Helpful in enabling / disabling different payment methods and other settings for the connector etc.",
"operationId": "Update a Merchant Connector",
"parameters": [
{
"name": "account_id",
"in": "path",
"description": "The unique identifier for the merchant account",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "connector_id",
"in": "path",
"description": "The unique identifier for the Merchant Connector",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MerchantConnectorUpdate"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Merchant Connector Updated",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MerchantConnectorResponse"
}
}
}
},
"401": {
"description": "Unauthorized request"
},
"404": {
"description": "Merchant Connector does not exist in records"
}
},
"security": [
{
"admin_api_key": []
}
]
},
"delete": {
"tags": [
"Merchant Connector Account"
],
"summary": "Merchant Connector - Delete",
"description": "Merchant Connector - Delete\n\nDelete or Detach a Merchant Connector from Merchant Account",
"operationId": "Delete a Merchant Connector",
"parameters": [
{
"name": "account_id",
"in": "path",
"description": "The unique identifier for the merchant account",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "connector_id",
"in": "path",
"description": "The unique identifier for the Merchant Connector",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"responses": {
"200": {
"description": "Merchant Connector Deleted",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MerchantConnectorDeleteResponse"
}
}
}
},
"401": {
"description": "Unauthorized request"
},
"404": {
"description": "Merchant Connector does not exist in records"
}
},
"security": [
{
"admin_api_key": []
}
]
}
},
"/customers": {
"post": {
"tags": [
Expand Down

0 comments on commit 82eb6d8

Please sign in to comment.