nil_client/client/
city.rs1use 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}