Skip to main content

nil_client/client/
city.rs

1// Copyright (C) Call of Nil contributors
2// SPDX-License-Identifier: AGPL-3.0-only
3
4use super::Client;
5use crate::error::Result;
6use crate::http;
7use nil_core::city::{City, PublicCity};
8use nil_core::ranking::score::Score;
9use nil_payload::city::*;
10
11impl Client {
12  pub async fn get_city(&self, req: GetCityRequest) -> Result<City> {
13    http::json_put("get-city")
14      .body(req)
15      .server(self.server)
16      .maybe_authorization(self.authorization.as_ref())
17      .circuit_breaker(self.circuit_breaker())
18      .retry(&self.retry)
19      .user_agent(&self.user_agent)
20      .send()
21      .await
22  }
23
24  pub async fn get_city_score(&self, req: GetCityScoreRequest) -> Result<Score> {
25    http::json_put("get-city-score")
26      .body(req)
27      .server(self.server)
28      .circuit_breaker(self.circuit_breaker())
29      .retry(&self.retry)
30      .user_agent(&self.user_agent)
31      .send()
32      .await
33  }
34
35  pub async fn get_public_cities(
36    &self,
37    req: GetPublicCitiesRequest,
38  ) -> Result<Vec<GetPublicCityResponse>> {
39    http::json_put("get-public-cities")
40      .body(req)
41      .server(self.server)
42      .circuit_breaker(self.circuit_breaker())
43      .retry(&self.retry)
44      .user_agent(&self.user_agent)
45      .send()
46      .await
47  }
48
49  pub async fn get_public_city(&self, req: GetPublicCityRequest) -> Result<GetPublicCityResponse> {
50    http::json_put("get-public-city")
51      .body(req)
52      .server(self.server)
53      .circuit_breaker(self.circuit_breaker())
54      .retry(&self.retry)
55      .user_agent(&self.user_agent)
56      .send()
57      .await
58  }
59
60  pub async fn rename_city(&self, req: RenameCityRequest) -> Result<()> {
61    http::post("rename-city")
62      .body(req)
63      .server(self.server)
64      .maybe_authorization(self.authorization.as_ref())
65      .circuit_breaker(self.circuit_breaker())
66      .user_agent(&self.user_agent)
67      .send()
68      .await
69  }
70
71  pub async fn search_city(&self, req: SearchCityRequest) -> Result<Vec<City>> {
72    http::json_put("search-city")
73      .body(req)
74      .server(self.server)
75      .maybe_authorization(self.authorization.as_ref())
76      .circuit_breaker(self.circuit_breaker())
77      .retry(&self.retry)
78      .user_agent(&self.user_agent)
79      .send()
80      .await
81  }
82
83  pub async fn search_public_city(&self, req: SearchPublicCityRequest) -> Result<Vec<PublicCity>> {
84    http::json_put("search-public-city")
85      .body(req)
86      .server(self.server)
87      .circuit_breaker(self.circuit_breaker())
88      .retry(&self.retry)
89      .user_agent(&self.user_agent)
90      .send()
91      .await
92  }
93}