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_payload::request::city::*;
8use nil_payload::response::city::*;
9
10impl Client {
11  pub async fn get_cities(&self, req: GetCitiesRequest) -> Result<GetCitiesResponse> {
12    http::json_put("get-cities")
13      .body(req)
14      .server(self.server)
15      .maybe_authorization(self.authorization.as_ref())
16      .circuit_breaker(self.circuit_breaker())
17      .retry(&self.retry)
18      .user_agent(&self.user_agent)
19      .send()
20      .await
21  }
22
23  pub async fn get_city(&self, req: GetCityRequest) -> Result<GetCityResponse> {
24    http::json_put("get-city")
25      .body(req)
26      .server(self.server)
27      .maybe_authorization(self.authorization.as_ref())
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_city_score(&self, req: GetCityScoreRequest) -> Result<GetCityScoreResponse> {
36    http::json_put("get-city-score")
37      .body(req)
38      .server(self.server)
39      .circuit_breaker(self.circuit_breaker())
40      .retry(&self.retry)
41      .user_agent(&self.user_agent)
42      .send()
43      .await
44  }
45
46  pub async fn get_public_cities(
47    &self,
48    req: GetPublicCitiesRequest,
49  ) -> Result<GetPublicCitiesResponse> {
50    http::json_put("get-public-cities")
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 get_public_city(&self, req: GetPublicCityRequest) -> Result<GetPublicCityResponse> {
61    http::json_put("get-public-city")
62      .body(req)
63      .server(self.server)
64      .circuit_breaker(self.circuit_breaker())
65      .retry(&self.retry)
66      .user_agent(&self.user_agent)
67      .send()
68      .await
69  }
70
71  pub async fn rename_city(&self, req: RenameCityRequest) -> Result<()> {
72    http::post("rename-city")
73      .body(req)
74      .server(self.server)
75      .maybe_authorization(self.authorization.as_ref())
76      .circuit_breaker(self.circuit_breaker())
77      .user_agent(&self.user_agent)
78      .send()
79      .await
80  }
81
82  pub async fn search_city(&self, req: SearchCityRequest) -> Result<SearchCityResponse> {
83    http::json_put("search-city")
84      .body(req)
85      .server(self.server)
86      .maybe_authorization(self.authorization.as_ref())
87      .circuit_breaker(self.circuit_breaker())
88      .retry(&self.retry)
89      .user_agent(&self.user_agent)
90      .send()
91      .await
92  }
93
94  pub async fn search_public_city(
95    &self,
96    req: SearchPublicCityRequest,
97  ) -> Result<SearchPublicCityResponse> {
98    http::json_put("search-public-city")
99      .body(req)
100      .server(self.server)
101      .circuit_breaker(self.circuit_breaker())
102      .retry(&self.retry)
103      .user_agent(&self.user_agent)
104      .send()
105      .await
106  }
107}