some_random_api/
client.rs1use crate::{
2 AnimalEndpoint, AnimuEndpoint, CanvasEndpoint, CanvasFilterEndpoint, CanvasMiscEndpoint,
3 CanvasOverlayEndpoint, ChatBotEndpoint, FactEndpoint, ImageEndpoint, OthersEndpoint,
4 PokemonEndpoint, PremiumEndpoint, Requester, WelcomeEndpoint,
5};
6
7pub struct Client {
9 pub animal: AnimalEndpoint,
10 pub animu: AnimuEndpoint,
11 pub canvas: CanvasEndpoint,
12 pub chatbot: ChatBotEndpoint,
13 pub fact: FactEndpoint,
14 pub image: ImageEndpoint,
15 pub others: OthersEndpoint,
16 pub pokemon: PokemonEndpoint,
17 pub premium: PremiumEndpoint,
18 pub welcome: WelcomeEndpoint,
19}
20
21impl Client {
22 pub fn new<T: ToString>(api_key: Option<T>) -> Self {
36 let requester = Requester::new(api_key);
37
38 Self {
39 animal: AnimalEndpoint(requester.clone()),
40 animu: AnimuEndpoint(requester.clone()),
41 canvas: CanvasEndpoint {
42 filter: CanvasFilterEndpoint(requester.clone()),
43 misc: CanvasMiscEndpoint(requester.clone()),
44 overlay: CanvasOverlayEndpoint(requester.clone()),
45 },
46 chatbot: ChatBotEndpoint(requester.clone()),
47 fact: FactEndpoint(requester.clone()),
48 image: ImageEndpoint(requester.clone()),
49 others: OthersEndpoint(requester.clone()),
50 pokemon: PokemonEndpoint(requester.clone()),
51 premium: PremiumEndpoint(requester.clone()),
52 welcome: WelcomeEndpoint(requester),
53 }
54 }
55}