Skip to main content

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}