discogs_api/endpoints/
master.rs1use 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}