discogs_api/endpoints/
master.rs

1use super::Endpoint;
2use crate::Error;
3use reqwest::Url;
4
5pub struct Master;
6
7impl<'de> Endpoint<'de> for Master {
8    type Parameters = isize;
9    type ReturnType = crate::data_types::Master;
10
11    fn build_url(base: &Url, params: Self::Parameters) -> Result<Url, Error> {
12        base.join(&format!("/masters/{params}"))
13            .map_err(|_| Error::UrlError)
14    }
15}
16
17#[cfg(test)]
18mod tests {
19    use crate::{Auth, Client};
20
21    use super::Master;
22
23    #[test]
24    fn basic() {
25        let id = 3166419;
26        let _data = Client::builder()
27            .build()
28            .unwrap()
29            .get::<Master>(id)
30            .unwrap();
31    }
32
33    #[test]
34    fn with_auth() {
35        let id = 3166419;
36        let pat = std::env::var("discogs-pat")
37            .expect("expected personal access token in env var `discogs-pat`");
38        let _data = Client::builder()
39            .auth(Auth::Token(pat))
40            .build()
41            .unwrap()
42            .get::<Master>(id)
43            .unwrap();
44    }
45}