mirror of
https://github.com/aljazceru/cdk.git
synced 2026-02-23 14:06:56 +01:00
refactor: join_url accepts slice
This commit is contained in:
@@ -21,7 +21,7 @@ pub struct HttpClient {}
|
||||
impl Client for HttpClient {
|
||||
/// Get Mint Keys [NUT-01]
|
||||
async fn get_mint_keys(&self, mint_url: Url) -> Result<Keys, Error> {
|
||||
let url = join_url(mint_url, "keys")?;
|
||||
let url = join_url(mint_url, &["v1", "keys"])?;
|
||||
let keys = Request::get(url.as_str())
|
||||
.send()
|
||||
.await
|
||||
@@ -36,7 +36,7 @@ impl Client for HttpClient {
|
||||
|
||||
/// Get Keysets [NUT-02]
|
||||
async fn get_mint_keysets(&self, mint_url: Url) -> Result<KeysetResponse, Error> {
|
||||
let url = join_url(mint_url, "keysets")?;
|
||||
let url = join_url(mint_url, &["v1", "keysets"])?;
|
||||
let res = Request::get(url.as_str())
|
||||
.send()
|
||||
.await
|
||||
@@ -61,7 +61,7 @@ impl Client for HttpClient {
|
||||
quote: &str,
|
||||
premint_secrets: PreMintSecrets,
|
||||
) -> Result<MintBolt11Response, Error> {
|
||||
let url = join_url(mint_url, "mint")?;
|
||||
let url = join_url(mint_url, &["mint"])?;
|
||||
|
||||
let request = MintBolt11Request {
|
||||
quote: quote.to_string(),
|
||||
@@ -96,7 +96,7 @@ impl Client for HttpClient {
|
||||
inputs: Vec<Proof>,
|
||||
outputs: Option<Vec<BlindedMessage>>,
|
||||
) -> Result<MeltBolt11Response, Error> {
|
||||
let url = join_url(mint_url, "melt")?;
|
||||
let url = join_url(mint_url, &["melt"])?;
|
||||
|
||||
let request = MeltBolt11Request {
|
||||
quote,
|
||||
@@ -129,7 +129,7 @@ impl Client for HttpClient {
|
||||
mint_url: Url,
|
||||
split_request: SwapRequest,
|
||||
) -> Result<SwapResponse, Error> {
|
||||
let url = join_url(mint_url, "split")?;
|
||||
let url = join_url(mint_url, &["v1", "split"])?;
|
||||
|
||||
let res = Request::post(url.as_str())
|
||||
.json(&split_request)
|
||||
@@ -156,7 +156,7 @@ impl Client for HttpClient {
|
||||
mint_url: Url,
|
||||
proofs: Vec<nut00::mint::Proof>,
|
||||
) -> Result<CheckSpendableResponse, Error> {
|
||||
let url = join_url(mint_url, "check")?;
|
||||
let url = join_url(mint_url, &["v1", "check"])?;
|
||||
let request = CheckSpendableRequest {
|
||||
proofs: proofs.to_owned(),
|
||||
};
|
||||
@@ -182,7 +182,7 @@ impl Client for HttpClient {
|
||||
|
||||
/// Get Mint Info [NUT-09]
|
||||
async fn get_mint_info(&self, mint_url: Url) -> Result<MintInfo, Error> {
|
||||
let url = join_url(mint_url, "info")?;
|
||||
let url = join_url(mint_url, &["v1", "info"])?;
|
||||
let res = Request::get(url.as_str())
|
||||
.send()
|
||||
.await
|
||||
|
||||
@@ -22,7 +22,7 @@ pub struct HttpClient {}
|
||||
impl Client for HttpClient {
|
||||
/// Get Mint Keys [NUT-01]
|
||||
async fn get_mint_keys(&self, mint_url: Url) -> Result<Keys, Error> {
|
||||
let url = join_url(mint_url, "keys")?;
|
||||
let url = join_url(mint_url, &["v1", "keys"])?;
|
||||
let keys = minreq::get(url).send()?.json::<Value>()?;
|
||||
|
||||
let keys: Keys = serde_json::from_str(&keys.to_string())?;
|
||||
@@ -31,7 +31,7 @@ impl Client for HttpClient {
|
||||
|
||||
/// Get Keysets [NUT-02]
|
||||
async fn get_mint_keysets(&self, mint_url: Url) -> Result<KeysetResponse, Error> {
|
||||
let url = join_url(mint_url, "keysets")?;
|
||||
let url = join_url(mint_url, &["v1", "keysets"])?;
|
||||
let res = minreq::get(url).send()?.json::<Value>()?;
|
||||
|
||||
let response: Result<KeysetResponse, serde_json::Error> =
|
||||
@@ -50,7 +50,7 @@ impl Client for HttpClient {
|
||||
quote: &str,
|
||||
premint_secrets: PreMintSecrets,
|
||||
) -> Result<MintBolt11Response, Error> {
|
||||
let url = join_url(mint_url, "mint")?;
|
||||
let url = join_url(mint_url, &["v1", "mint"])?;
|
||||
|
||||
let request = MintBolt11Request {
|
||||
quote: quote.to_string(),
|
||||
@@ -80,7 +80,7 @@ impl Client for HttpClient {
|
||||
inputs: Vec<Proof>,
|
||||
outputs: Option<Vec<BlindedMessage>>,
|
||||
) -> Result<MeltBolt11Response, Error> {
|
||||
let url = join_url(mint_url, "melt")?;
|
||||
let url = join_url(mint_url, &["v1", "melt"])?;
|
||||
|
||||
let request = MeltBolt11Request {
|
||||
quote,
|
||||
@@ -109,7 +109,7 @@ impl Client for HttpClient {
|
||||
split_request: SwapRequest,
|
||||
) -> Result<SwapResponse, Error> {
|
||||
// TODO: Add to endpoint
|
||||
let url = join_url(mint_url, "swap")?;
|
||||
let url = join_url(mint_url, &["v1", "swap"])?;
|
||||
|
||||
let res = minreq::post(url).with_json(&split_request)?.send()?;
|
||||
|
||||
@@ -128,7 +128,7 @@ impl Client for HttpClient {
|
||||
mint_url: Url,
|
||||
proofs: Vec<nut00::mint::Proof>,
|
||||
) -> Result<CheckSpendableResponse, Error> {
|
||||
let url = join_url(mint_url, "check")?;
|
||||
let url = join_url(mint_url, &["v1", "check"])?;
|
||||
let request = CheckSpendableRequest { proofs };
|
||||
|
||||
let res = minreq::post(url)
|
||||
@@ -147,8 +147,7 @@ impl Client for HttpClient {
|
||||
|
||||
/// Get Mint Info [NUT-09]
|
||||
async fn get_mint_info(&self, mint_url: Url) -> Result<MintInfo, Error> {
|
||||
let url = join_url(mint_url, "v1")?;
|
||||
let url = join_url(url, "info")?;
|
||||
let url = join_url(mint_url, &["v1", "info"])?;
|
||||
|
||||
println!("{}", url);
|
||||
|
||||
|
||||
@@ -123,17 +123,19 @@ pub trait Client {
|
||||
}
|
||||
|
||||
#[cfg(any(not(target_arch = "wasm32"), feature = "gloo"))]
|
||||
fn join_url(url: Url, path: &str) -> Result<Url, Error> {
|
||||
fn join_url(url: Url, paths: &[&str]) -> Result<Url, Error> {
|
||||
let mut url = url;
|
||||
if !url.path().ends_with('/') {
|
||||
url.path_segments_mut()
|
||||
.map_err(|_| Error::Custom("Url Path Segmants".to_string()))?
|
||||
.push(path);
|
||||
} else {
|
||||
url.path_segments_mut()
|
||||
.map_err(|_| Error::Custom("Url Path Segmants".to_string()))?
|
||||
.pop()
|
||||
.push(path);
|
||||
for path in paths {
|
||||
if !url.path().ends_with('/') {
|
||||
url.path_segments_mut()
|
||||
.map_err(|_| Error::Custom("Url Path Segmants".to_string()))?
|
||||
.push(path);
|
||||
} else {
|
||||
url.path_segments_mut()
|
||||
.map_err(|_| Error::Custom("Url Path Segmants".to_string()))?
|
||||
.pop()
|
||||
.push(path);
|
||||
}
|
||||
}
|
||||
|
||||
Ok(url)
|
||||
|
||||
Reference in New Issue
Block a user