use pethost::types::{DeployProjectRequest, FileChange, FileChangeChange, GetMachineRequest};
use pethost::{Client, Error};
#[tokio::main]
async fn main() -> Result<(), Error> {
let token = std::env::var("PETHOST_TOKEN").expect("PETHOST_TOKEN is not set");
let pethost = Client::new(&token);
let response = pethost.get_machine(GetMachineRequest::default()).await?;
if let Some(machine) = &response.machine {
println!("{}", machine.hostname);
}
for project in &response.projects {
println!("{}", project.project_id);
}
let request = DeployProjectRequest {
project_id: "notes".into(),
files: vec![FileChange {
path: "/hello.txt".into(),
change: Some(FileChangeChange::Text("Hello from the Pethost SDK\n".into())),
..Default::default()
}],
..Default::default()
};
let response = pethost.deploy_project(request).await?;
for violation in &response.violations {
println!("{}: {}", violation.location, violation.violation_message);
}
if let Some(operation) = &response.operation {
println!("{:?}", operation.status);
}
if let Some(project) = &response.project {
println!("{}", project.url);
}
Ok(())
}