funpay_client/client/
urls.rs

1pub const DEFAULT_BASE_URL: &str = "https://funpay.com";
2
3pub struct UrlBuilder {
4    base_url: String,
5}
6
7impl Default for UrlBuilder {
8    fn default() -> Self {
9        Self {
10            base_url: DEFAULT_BASE_URL.to_string(),
11        }
12    }
13}
14
15impl UrlBuilder {
16    pub fn new(base_url: impl Into<String>) -> Self {
17        Self {
18            base_url: base_url.into(),
19        }
20    }
21
22    pub fn base_url(&self) -> &str {
23        &self.base_url
24    }
25
26    pub fn home(&self) -> String {
27        format!("{}/", self.base_url)
28    }
29
30    pub fn runner(&self) -> String {
31        format!("{}/runner/", self.base_url)
32    }
33
34    pub fn orders_trade(&self) -> String {
35        format!("{}/orders/trade", self.base_url)
36    }
37
38    pub fn order_page(&self, order_id: &str) -> String {
39        format!("{}/orders/{order_id}/", self.base_url)
40    }
41
42    pub fn chat_page(&self, chat_id: &str) -> String {
43        format!("{}/chat/?node={chat_id}", self.base_url)
44    }
45
46    pub fn offer_edit(&self, node_id: i64, offer_id: i64) -> String {
47        format!(
48            "{}/lots/offerEdit?node={node_id}&offer={offer_id}",
49            self.base_url
50        )
51    }
52
53    pub fn offer_save(&self) -> String {
54        format!("{}/lots/offerSave", self.base_url)
55    }
56
57    pub fn lots_trade(&self, node_id: i64) -> String {
58        format!("{}/lots/{node_id}/trade", self.base_url)
59    }
60
61    pub fn lots_page(&self, node_id: i64) -> String {
62        format!("{}/lots/{node_id}/", self.base_url)
63    }
64}