//! THESE ARE NOT TESTS.
//!
//! Runs the client endpoints for manual testing with borehole.io.
use std::net::Ipv4Addr;
use boreholeio::{
client::{
authentication::{ApplicationAuthentication, Authentication},
endpoints::{application, logging_run},
BoreholeIoClient, BoreholeIoClientOptions, Result,
},
schema::{Borehole, Device},
};
use chrono::Local;
const JWT: &str = "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IjEifQ.eyJpc3MiOiJsc2wiLCJzdWIiOiI5YWFlMWQxZC1mYTQzLTQ3MDEtOGM5Ny0xMTZkY2FlMDIyODQiLCJqdGkiOiIxMiIsIm5iZiI6MTcwMDcyMjEzMSwiYXVkIjoiYm9yZWhvbGUuaW8iLCJleHAiOjE4MTE5MzkyNjAsImlhdCI6MTcwMDcyMjEzMX0.vpo6EcQuW1F1ziqdaKNmXsnz2tr9sGXrBYwhW6YI_6Xe2DqaPHthCXwXtJER78wU6hVqChQmwTslKb4czJ3d2ZtEPHSCRddDbEx9Ta7qY-U6X4ZurP7CxPuzUJhba4C4h-o14E084J2IM9sS7mNIrv_20XhIp5kC0xn8A9Yix-08YXk6VLo8u5Dpd9D0mlQaNtewnf2NeYaBFQvIZp5V_kp46ybmH5aHdPsyn2Uib8PuGW3FC4TnXIp2mRuPZT8tfJO8VbmBGdfU9oarnGPNE1YPnaP10IDZpQINUdeGGSc6CckQMsXKd585od7a5rkN5n4O8jwd-zgUiQQpZNTxxTHH0ZBMDlGLOH_ut-5e1r85WLdb4lvwPhQZAr7t6NhVA7IJShdfmxzj_F8zJL17Ea0AajxcgAlvFuXFsOVDWRpN5CiI5kKRXAqJEctBFt9M6FtjuqbrHi9ZH-e1ZC0ffgb0bUgJNz3sP26zplX-zYcqsRyQx5Ly8PP9oMQ0AWv1X-bB_gMt6vR3MOAu_jwDlLDpmi4T34LTGUolOZE7aujSCY9KvLEeD1lQ5EyJ6OAFJXmER5_N-pePefWDgWlsmTtl2uZoNjiYgbyo6GsabiV5IlCTBriCEx8hnuEEokLy0iGY2Sctwx2F8dl7bgD_DLaT-AOs0qxDMPoEQMAboQ8";
const PUB_KEY: &str = "-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA4qF3khNfwboi+LOE9QJU\nV26dKJLez1Tn558bwkYqQ9BPIXqoj0diOoL0LBs5FkCezz3NCJGsztZzNcmVILUz\nwJMhzX/VDbyjMUd6rr0YTPyIacQVKn5izCE2jlqcVFkQUVHAaU8XxOFlzuV5nozn\nzBwnrp6Zn3Vrad4cK0rVNlUevmTakBZVARuc1vWgv4BIG6Eee0+r5FQ6nng1lsnQ\nQmy2u1BOr7tLLenhn5Q4uQF4EcFa3frjqoHkVpv7WeEkb+kI5RhuOflGUhciwZ5K\nxfg/J9Hn29+4XIOv+5jGcm/uVnxgC4dl0R7IFCt26c8+7KBRVaTAgjEu55vmwnKH\n5a3DOeE9qx5dJbUfT2WCtH4cw8X0tc9ydaPjbt7Nwp6zfZNWdUWk6jyvVSGSkSvj\nFSJALruG/AOZlTRloOaN5hMAm/aSKzrx7h4SCqg5DwcHNmSvllxgHVRiWGOOYnzH\n/dvskeHYC2mHMCkDhs5IH3GmdjPFISIEvbeK4EJ0xafjT/yhwdjMlt4QHi4w0CMx\nD6zUrXSZSnY/ckcBymH2egdmpxeuNk4epJ0t4cLXjNi9AggTTWhHJ2dIBBlvMWjw\nqLMbhue3bK4mvIjAZ4Eb+HlR3du9tSoCmAkFhLQf416A6gBjL3uo1nPY2QkNUvgO\nM7Nz7EDVJJPr9SMzJzrNShsCAwEAAQ==\n-----END PUBLIC KEY-----";
#[tokio::test]
async fn test_create_logging_run() -> Result<()> {
let client = BoreholeIoClient::new(BoreholeIoClientOptions {
base_url: "http://localhost:8000".into(),
authentication: Authentication::Application(ApplicationAuthentication { jwt: JWT.into() }),
..Default::default()
});
let logging_run = logging_run::create(
&client,
logging_run::CreateParameters {
id: Some("b51196bf-e2cd-4614-8921-d71573137c6c".into()),
device: Some(Device {
hostname: "hostname".into(),
username: "username".into(),
operating_system: None,
domain_name: None,
language: None,
locale: None,
ip_addresses: None,
}),
started_at: Some(Local::now().into()), // Not sure if this is correct
starting_depth: Some(144.),
..Default::default()
},
)
.await
.unwrap();
println!("{:?}", &logging_run);
Ok(())
}
#[tokio::test]
async fn test_get_logging_run() -> Result<()> {
let client = BoreholeIoClient::new(BoreholeIoClientOptions {
base_url: "http://localhost:8000".into(),
authentication: Authentication::Application(ApplicationAuthentication { jwt: JWT.into() }),
..Default::default()
});
let logging_run = logging_run::find(&client, "b51196bf-e2cd-4614-8921-d71573137c6c".into())
.await
.unwrap();
println!("{:?}", &logging_run);
Ok(())
}
#[tokio::test]
async fn test_bulk_update_logging_run() -> Result<()> {
let client = BoreholeIoClient::new(BoreholeIoClientOptions {
base_url: "http://localhost:8000".into(),
authentication: Authentication::Application(ApplicationAuthentication { jwt: JWT.into() }),
..Default::default()
});
let logging_run = logging_run::bulk_update(
&client,
logging_run::BulkUpdateParameters {
ids: Some(vec!["b51196bf-e2cd-4614-8921-d71573137c6c".into()]),
borehole: Some(Borehole {
name: Some("name".into()),
..Default::default()
}),
..Default::default()
},
)
.await
.unwrap();
println!("{:?}", &logging_run);
Ok(())
}
#[tokio::test]
async fn test_application() -> Result<()> {
let client = BoreholeIoClient::new(BoreholeIoClientOptions {
base_url: "http://localhost:8000".into(),
..Default::default()
});
let _response = application::register(
&client,
application::RegisterParams {
id: Some("9aae1d1d-fa43-4701-8c97-116dcae02284".into()),
device: Some(Device {
hostname: "test_hostname".into(),
username: "test_username".into(),
operating_system: Some("windows".into()),
domain_name: Some("domain".into()),
language: Some("english".into()),
locale: Some("en-uk".into()),
ip_addresses: Some(vec![Ipv4Addr::new(127, 0, 0, 1)]),
}),
application_name: Some("test_application".into()),
application_version: Some("v1".into()),
public_key: Some(PUB_KEY.into()),
new_jwt: Some(JWT.into()),
..Default::default()
},
)
.await?;
// println!("{:?}", response);
Ok(())
}