use std::time::Duration;
use bevy::{log::LogPlugin, prelude::*, time::common_conditions::on_timer};
use bevy_mod_reqwest::*;
use serde::Deserialize;
#[derive(Deserialize, Debug)]
pub struct Bored {
pub activity: String,
pub price: f32,
pub participants: f32,
}
fn send_requests(mut client: BevyReqwest) {
let url = "https://bored-api.appbrewery.com/random";
let reqwest_request = client.get(url).build().unwrap();
client
.send(reqwest_request)
.on_json_response(|trigger: On<JsonResponse<Bored>>| {
let data: &Bored = &trigger.event().data;
bevy::log::info!("data: {data:?}");
})
.on_error(|trigger: On<ReqwestErrorEvent>| {
let e = &trigger.event().error;
bevy::log::info!("error: {e:?}");
});
}
fn main() {
App::new()
.add_plugins(MinimalPlugins)
.add_plugins(LogPlugin::default())
.add_plugins(ReqwestPlugin::default())
.add_systems(
Update,
send_requests.run_if(on_timer(Duration::from_secs(5))),
)
.run();
}