1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
use crate::client::CharacterClient;
use crate::model::character::Character;
use crate::request_builder::RequestBuilder;

impl CharacterClient {
    ///Retrieves the characters for a given game id
    ///
    /// # Examples
    /// ```
    /// use igdb_rs::client::IGDBClient;
    ///
    /// let igdb_client = IGDBClient::new("api-key");
    /// let characters_client = igdb_client.characters();
    /// ///Retrieve 8 first characters for The Witcher 3 game
    /// let characters = characters_client.get_by_game_id(1942, 8);
    /// ```
    pub async fn get_by_game_id(
        &self,
        game_id: usize,
        limit: usize,
    ) -> Result<Vec<Character>, surf::Exception> {
        let mut request = RequestBuilder::new();
        request
            .all_fields()
            .add_where_in("games".to_owned(), vec![game_id.to_string()])
            .limit(limit);

        self.get(request).await
    }
}