ergonomic_api/
ergonomic_api.rs1use faceit::HttpClient;
2
3#[tokio::main]
4async fn main() -> Result<(), faceit::error::Error> {
5 let client = HttpClient::new();
6
7 println!("=== Player API ===");
9 let player = faceit::http::ergonomic::Player::new("player-id-here", &client);
10
11 match player.get().await {
13 Ok(player_data) => {
14 println!("Player: {}", player_data.nickname);
15 if let Some(country) = player_data.country {
16 println!("Country: {}", country);
17 }
18 }
19 Err(e) => eprintln!("Error: {}", e),
20 }
21
22 match player.stats("cs2").await {
24 Ok(stats) => {
25 println!("Stats retrieved for game: {}", stats.game_id);
26 }
27 Err(e) => eprintln!("Error: {}", e),
28 }
29
30 match player.history("cs2", None, None, Some(0), Some(20)).await {
32 Ok(history) => {
33 println!("Found {} matches", history.items.len());
34 }
35 Err(e) => eprintln!("Error: {}", e),
36 }
37
38 match player.hubs(Some(0), Some(50)).await {
40 Ok(hubs) => {
41 println!("Found {} hubs", hubs.items.len());
42 }
43 Err(e) => eprintln!("Error: {}", e),
44 }
45
46 println!("\n=== Match API ===");
48 let match_obj = faceit::http::ergonomic::Match::new("match-id-here", &client);
49
50 match match_obj.get().await {
51 Ok(match_data) => {
52 println!("Match ID: {}", match_data.match_id);
53 println!("Status: {}", match_data.status);
54 }
55 Err(e) => eprintln!("Error: {}", e),
56 }
57
58 match match_obj.stats().await {
59 Ok(stats) => {
60 println!("Rounds: {}", stats.rounds.len());
61 }
62 Err(e) => eprintln!("Error: {}", e),
63 }
64
65 println!("\n=== Game API ===");
67 let game = faceit::http::ergonomic::Game::new("cs2", &client);
68
69 match game.get().await {
70 Ok(game_data) => {
71 println!("Game: {}", game_data.long_label);
72 }
73 Err(e) => eprintln!("Error: {}", e),
74 }
75
76 match game.matchmakings(Some("EU"), Some(0), Some(20)).await {
77 Ok(matchmakings) => {
78 println!("Found {} matchmakings", matchmakings.items.len());
79 }
80 Err(e) => eprintln!("Error: {}", e),
81 }
82
83 println!("\n=== Hub API ===");
85 let hub = faceit::http::ergonomic::Hub::new("hub-id-here", &client);
86
87 match hub.get(None).await {
88 Ok(hub_data) => {
89 println!("Hub: {}", hub_data.name);
90 }
91 Err(e) => eprintln!("Error: {}", e),
92 }
93
94 match hub.matches(Some("all"), Some(0), Some(20)).await {
95 Ok(matches) => {
96 println!("Found {} matches", matches.items.len());
97 }
98 Err(e) => eprintln!("Error: {}", e),
99 }
100
101 match hub.members(Some(0), Some(50)).await {
102 Ok(members) => {
103 println!("Found {} members", members.items.len());
104 }
105 Err(e) => eprintln!("Error: {}", e),
106 }
107
108 println!("\n=== Championship API ===");
110 let championship = faceit::http::ergonomic::Championship::new("championship-id-here", &client);
111
112 match championship.get(None).await {
113 Ok(championship_data) => {
114 println!("Championship: {}", championship_data.name);
115 }
116 Err(e) => eprintln!("Error: {}", e),
117 }
118
119 match championship.matches(Some("all"), Some(0), Some(20)).await {
120 Ok(matches) => {
121 println!("Found {} matches", matches.items.len());
122 }
123 Err(e) => eprintln!("Error: {}", e),
124 }
125
126 println!("\n=== Direct Instantiation ===");
128 use faceit::http::ergonomic::{Championship, Game, Hub, Match, Player};
129
130 let _player2 = Player::new("player-id-here", &client);
131 let _match_obj2 = Match::new("match-id-here", &client);
132 let _game2 = Game::new("cs2", &client);
133 let _hub2 = Hub::new("hub-id-here", &client);
134 let _championship2 = Championship::new("championship-id-here", &client);
135
136 println!("Created ergonomic API instances directly");
137
138 Ok(())
139}