use crate::client::ClientMode;
use crate::client::SquareClient;
use std::fmt;
#[non_exhaustive]
pub enum SquareEndpoint {
Payments,
}
impl fmt::Display for SquareEndpoint {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
SquareEndpoint::Payments => write!(f, "payments"),
}
}
}
impl SquareClient {
pub fn endpoint(&self, end_point: SquareEndpoint) -> String {
const SQUARE_PRODUCTION_BASE: &str = "https://connect.squareup.com/v2/";
const SQUARE_SANDBOX_BASE: &str = "https://connect.squareupsandbox.com/v2/";
match self.client_mode {
ClientMode::Production => format!("{}{}", SQUARE_PRODUCTION_BASE, end_point),
ClientMode::Sandboxed => format!("{}{}", SQUARE_SANDBOX_BASE, end_point),
}
}
}