ralertsinua-models 0.5.0

Data Transfer Object for alerts.in.ua
docs.rs failed to build ralertsinua-models-0.5.0
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build: ralertsinua-models-0.5.2

Quality Gate Status Coverage Status Crates.io Version Crates.io License docs.rs

ralertsinua

screencast

Introduction

The Alerts.in.ua API Client is a Rust library that simplifies access to the alerts.in.ua API service. It provides real-time information about air raid alerts and other potential threats.

Installation

To install the Alerts.in.ua API Client, run the following command in your terminal:

cargo add ralertsinua

Usage

⚠️ Before you can use this library, you need to obtain an API token by submitting an API request form.

Here's an basic example of how to use the library to get a list of active alerts:

Async:

use ralertsinua_http::{AlertsInUaClient, API_BASE_URL}

#[tokio::main]
async fn main() -> Result<()> {
    # Initialize the client with your token
    alerts_client = AlertsInUaClient(API_BASE_URL, "your_token");

    # Get the active alerts
    active_alerts = await alerts_client.get_active_alerts();

    print!("active_alerts: {}", active_alerts.into());
}

Alerts

Alerts class is a collection of alerts and provides various methods to filter and access these alerts.

When user call client.get_active_alerts() it returns Alerts class.

Methods

filter(*args: str) -> Vec

This method filters the alerts based on the given parameters.

filtered_alerts = active_alerts.filter('location_oblast', 'Донецька область','alert_type','air_raid')

In this example, filtered_alerts will contain all the air raid alerts that have the location oblast as 'Донецька область'.

get_alerts_by_location_title(location_title: str) -> Vec

This method returns all the alerts from specified location.

kyiv_alerts = active_alerts.get_alerts_by_location_title(. Київ')

get_air_raid_alerts() -> Vec

This method returns all the alerts that are of alert type 'air_raid'.

air_raid_alerts = active_alerts.get_air_raid_alerts()

get_oblast_alerts() -> Vec

This method returns all the alerts that are of location type 'oblast'.

oblast_alerts = active_alerts.get_oblast_alerts()

get_raion_alerts() -> Vec

This method returns all the alerts that are of location type 'raion'.

raion_alerts = active_alerts.get_raion_alerts()

get_hromada_alerts() -> Vec

This method returns all the alerts that are of location type 'hromada'.

hromada_alerts = active_alerts.get_hromada_alerts()

get_city_alerts() -> Vec

This method returns all the alerts that are of location type 'city'.

city_alerts = active_alerts.get_city_alerts()

get_alerts_by_alert_type(alert_type: str) -> Vec

This method returns all the alerts that are of the given alert type.

artillery_shelling_alerts = active_alerts.get_alerts_by_alert_type('artillery_shelling')

get_alerts_by_location_type(location_type: str) -> Vec

This method returns all the alerts that are of the given location type.

urban_location_alerts = active_alerts.get_alerts_by_location_type('raion')

get_alerts_by_oblast(oblast_title: str) -> Vec

This method returns all the alerts that are of the given oblast title.

donetsk_oblast_alerts = active_alerts.get_alerts_by_oblast('Донецька область')

get_alerts_by_location_uid(location_uid: str) -> Vec

This method returns all the alerts that have the given location uid.

location_uid_alerts = active_alerts.get_alerts_by_location_uid('123456')

get_artillery_shelling_alerts() -> Vec

This method returns all the alerts that are of alert type 'artillery_shelling'.

artillery_shelling_alerts = active_alerts.get_artillery_shelling_alerts()

get_urban_fights_alerts() -> Vec

This method returns all the alerts that are of alert type 'urban_fights'.

urban_fights_alerts = active_alerts.get_urban_fights_alerts()

get_nuclear_alerts() -> Vec

This method returns all the alerts that are of alert type 'nuclear'.

nuclear_alerts = active_alerts.get_nuclear_alerts()

get_chemical_alerts() -> Vec

This method returns all the alerts that are of alert type 'chemical'.

chemical_alerts = active_alerts.get_chemical_alerts()

get_all_alerts() -> Vec

This method returns all alerts.

all_alerts = active_alerts.get_all_alerts()

or you can use shortcut:

for alert in active_alerts:
    print!(alert)

get_last_updated_at() -> datetime.datetime

This method returns the datetime object representing the time when the alert information was last updated (Kyiv timezone).

last_updated_at = alerts.get_last_updated_at()

get_disclaimer() -> str

This method returns the disclaimer associated with the alert information.

disclaimer = alerts.get_disclaimer()

License

MIT 2024

*[TUI]: Terminal User Interface