mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-10-31 01:57:45 +08:00
refactor(openapi_v2): add merchant account v2 openapi (#5588)
Co-authored-by: hyperswitch-bot[bot] <148525504+hyperswitch-bot[bot]@users.noreply.github.com>
This commit is contained in:
@ -1,2 +1 @@
|
||||
mod openapi;
|
||||
pub mod routes;
|
||||
|
||||
@ -10,9 +10,12 @@ fn main() {
|
||||
let relative_file_path = "api-reference/openapi_spec.json";
|
||||
|
||||
#[cfg(feature = "v2")]
|
||||
let relative_file_path = "api-reference/openapi_spec_v2.json";
|
||||
let relative_file_path = "api-reference-v2/openapi_spec.json";
|
||||
|
||||
#[cfg(any(feature = "v1", feature = "v2"))]
|
||||
let mut file_path = router_env::workspace_path();
|
||||
|
||||
#[cfg(any(feature = "v1", feature = "v2"))]
|
||||
file_path.push(relative_file_path);
|
||||
|
||||
#[cfg(feature = "v1")]
|
||||
@ -21,6 +24,7 @@ fn main() {
|
||||
let openapi = <openapi_v2::ApiDoc as utoipa::OpenApi>::openapi();
|
||||
|
||||
#[allow(clippy::expect_used)]
|
||||
#[cfg(any(feature = "v1", feature = "v2"))]
|
||||
std::fs::write(
|
||||
file_path,
|
||||
openapi
|
||||
@ -28,5 +32,10 @@ fn main() {
|
||||
.expect("Failed to serialize OpenAPI specification as JSON"),
|
||||
)
|
||||
.expect("Failed to write OpenAPI specification to file");
|
||||
|
||||
#[cfg(any(feature = "v1", feature = "v2"))]
|
||||
println!("Successfully saved OpenAPI specification file at '{relative_file_path}'");
|
||||
|
||||
#[cfg(not(any(feature = "v1", feature = "v2")))]
|
||||
println!("No feature enabled to generate OpenAPI specification, please enable either 'v1' or 'v2' feature");
|
||||
}
|
||||
|
||||
@ -74,6 +74,11 @@ Never share your secret api keys. Keep them guarded and secure.
|
||||
routes::merchant_connector_account::connector_retrieve,
|
||||
routes::merchant_connector_account::connector_update,
|
||||
routes::merchant_connector_account::connector_delete,
|
||||
|
||||
// Routes for merchant account
|
||||
routes::merchant_account::merchant_account_create,
|
||||
routes::merchant_account::merchant_account_retrieve,
|
||||
routes::merchant_account::merchant_account_update,
|
||||
),
|
||||
components(schemas(
|
||||
common_utils::types::MinorUnit,
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
#[cfg(feature = "v1")]
|
||||
/// Merchant Account - Create
|
||||
///
|
||||
/// Create a new account for a *merchant* and the *merchant* could be a seller or retailer or client who likes to receive and send payments.
|
||||
@ -41,6 +42,65 @@
|
||||
)]
|
||||
pub async fn merchant_account_create() {}
|
||||
|
||||
#[cfg(feature = "v2")]
|
||||
/// Merchant Account - Create
|
||||
///
|
||||
/// Create a new account for a *merchant* and the *merchant* could be a seller or retailer or client who likes to receive and send payments.
|
||||
///
|
||||
/// Before creating the merchant account, it is mandatory to create an organization.
|
||||
#[utoipa::path(
|
||||
post,
|
||||
path = "/v2/accounts",
|
||||
request_body(
|
||||
content = MerchantAccountCreate,
|
||||
examples(
|
||||
(
|
||||
"Create a merchant account with minimal fields" = (
|
||||
value = json!({
|
||||
"merchant_name": "Cloth Store",
|
||||
"organization_id": "org_abcdefghijklmnop"
|
||||
})
|
||||
)
|
||||
),
|
||||
(
|
||||
"Create a merchant account with merchant details" = (
|
||||
value = json!({
|
||||
"merchant_name": "Cloth Store",
|
||||
"organization_id": "org_abcdefghijklmnop",
|
||||
"merchant_details": {
|
||||
"primary_contact_person": "John Doe",
|
||||
"primary_email": "example@company.com"
|
||||
}
|
||||
})
|
||||
)
|
||||
),
|
||||
(
|
||||
"Create a merchant account with metadata" = (
|
||||
value = json!({
|
||||
"merchant_name": "Cloth Store",
|
||||
"organization_id": "org_abcdefghijklmnop",
|
||||
"metadata": {
|
||||
"key_1": "John Doe",
|
||||
"key_2": "Trends"
|
||||
}
|
||||
})
|
||||
)
|
||||
),
|
||||
|
||||
)
|
||||
|
||||
),
|
||||
responses(
|
||||
(status = 200, description = "Merchant Account Created", body = MerchantAccountResponse),
|
||||
(status = 400, description = "Invalid data")
|
||||
),
|
||||
tag = "Merchant Account",
|
||||
operation_id = "Create a Merchant Account",
|
||||
security(("admin_api_key" = []))
|
||||
)]
|
||||
pub async fn merchant_account_create() {}
|
||||
|
||||
#[cfg(feature = "v1")]
|
||||
/// Merchant Account - Retrieve
|
||||
///
|
||||
/// Retrieve a *merchant* account details.
|
||||
@ -58,6 +118,25 @@ pub async fn merchant_account_create() {}
|
||||
)]
|
||||
pub async fn retrieve_merchant_account() {}
|
||||
|
||||
#[cfg(feature = "v2")]
|
||||
/// Merchant Account - Retrieve
|
||||
///
|
||||
/// Retrieve a *merchant* account details.
|
||||
#[utoipa::path(
|
||||
get,
|
||||
path = "/v2/accounts/{id}",
|
||||
params (("id" = String, Path, description = "The unique identifier for the merchant account")),
|
||||
responses(
|
||||
(status = 200, description = "Merchant Account Retrieved", body = MerchantAccountResponse),
|
||||
(status = 404, description = "Merchant account not found")
|
||||
),
|
||||
tag = "Merchant Account",
|
||||
operation_id = "Retrieve a Merchant Account",
|
||||
security(("admin_api_key" = []))
|
||||
)]
|
||||
pub async fn merchant_account_retrieve() {}
|
||||
|
||||
#[cfg(feature = "v1")]
|
||||
/// Merchant Account - Update
|
||||
///
|
||||
/// Updates details of an existing merchant account. Helpful in updating merchant details such as email, contact details, or other configuration details like webhook, routing algorithm etc
|
||||
@ -75,12 +154,6 @@ pub async fn retrieve_merchant_account() {}
|
||||
})
|
||||
)
|
||||
),
|
||||
("Update merchant name" = (
|
||||
value = json!({
|
||||
"merchant_id": "merchant_abc",
|
||||
"merchant_name": "merchant_name"
|
||||
})
|
||||
)),
|
||||
("Update webhook url" = (
|
||||
value = json!({
|
||||
"merchant_id": "merchant_abc",
|
||||
@ -107,6 +180,46 @@ pub async fn retrieve_merchant_account() {}
|
||||
)]
|
||||
pub async fn update_merchant_account() {}
|
||||
|
||||
#[cfg(feature = "v2")]
|
||||
/// Merchant Account - Update
|
||||
///
|
||||
/// Updates details of an existing merchant account. Helpful in updating merchant details such as email, contact details, or other configuration details like webhook, routing algorithm etc
|
||||
#[utoipa::path(
|
||||
post,
|
||||
path = "/v2/accounts/{id}",
|
||||
request_body (
|
||||
content = MerchantAccountUpdate,
|
||||
examples(
|
||||
(
|
||||
"Update merchant name" = (
|
||||
value = json!({
|
||||
"merchant_id": "merchant_abc",
|
||||
"merchant_name": "merchant_name"
|
||||
})
|
||||
)
|
||||
),
|
||||
("Update Merchant Details" = (
|
||||
value = json!({
|
||||
"merchant_details": {
|
||||
"primary_contact_person": "John Doe",
|
||||
"primary_email": "example@company.com"
|
||||
}
|
||||
})
|
||||
)
|
||||
),
|
||||
)),
|
||||
params (("account_id" = String, Path, description = "The unique identifier for the merchant account")),
|
||||
responses(
|
||||
(status = 200, description = "Merchant Account Updated", body = MerchantAccountResponse),
|
||||
(status = 404, description = "Merchant account not found")
|
||||
),
|
||||
tag = "Merchant Account",
|
||||
operation_id = "Update a Merchant Account",
|
||||
security(("admin_api_key" = []))
|
||||
)]
|
||||
pub async fn merchant_account_update() {}
|
||||
|
||||
#[cfg(feature = "v1")]
|
||||
/// Merchant Account - Delete
|
||||
///
|
||||
/// Delete a *merchant* account
|
||||
@ -124,6 +237,7 @@ pub async fn update_merchant_account() {}
|
||||
)]
|
||||
pub async fn delete_merchant_account() {}
|
||||
|
||||
#[cfg(feature = "v1")]
|
||||
/// Merchant Account - KV Status
|
||||
///
|
||||
/// Toggle KV mode for the Merchant Account
|
||||
|
||||
Reference in New Issue
Block a user