rust_okx/api/status/api.rs
1use crate::client::OkxClient;
2use crate::error::Error;
3use crate::transport::Transport;
4
5use super::endpoints::*;
6use super::requests::*;
7use super::responses::*;
8
9/// Accessor for the public system-status endpoints.
10///
11/// Obtain one via [`OkxClient::status`](crate::OkxClient::status).
12pub struct Status<'a, T> {
13 client: &'a OkxClient<T>,
14}
15
16impl<'a, T: Transport> Status<'a, T> {
17 pub(crate) fn new(client: &'a OkxClient<T>) -> Self {
18 Self { client }
19 }
20
21 /// Retrieve system maintenance status.
22 ///
23 /// `GET /api/v5/system/status`. Public (unauthenticated). Pass
24 /// `state` to filter by a specific maintenance state; omit it to receive
25 /// `scheduled`, `ongoing`, and `pre_open` events by default.
26 ///
27 /// # Errors
28 ///
29 /// Returns [`RestError::Okx`](crate::RestError::Okx) on a non-zero OKX code, or
30 /// [`RestError::Transport`](crate::RestError::Transport)/[`RestError::Decode`](crate::RestError::Decode) on transport/parsing failure.
31 pub async fn get_status(&self, request: &StatusRequest<'_>) -> Result<Vec<StatusItem>, Error> {
32 self.client.get(STATUS, request, false).await
33 }
34}