use std::time::Duration;
use zkteco::{User, Zk, USER_DEFAULT};
fn main() -> zkteco::ZkResult<()> {
let mut args = std::env::args().skip(1);
let ip = args.next().expect("usage: set_delete_user <ip> [port]");
let port: u16 = args.next().and_then(|p| p.parse().ok()).unwrap_or(4370);
let mut zk = Zk::builder(ip)
.port(port)
.timeout(Duration::from_secs(10))
.omit_ping(true)
.build();
zk.connect()?;
zk.disable_device()?;
let _ = zk.get_users()?;
let user = User::new(0, "Test User", USER_DEFAULT, "1234", "", "", 0);
zk.set_user(&user)?;
println!("created a user; uid counter now {}", zk.next_uid());
let created = zk.get_users()?;
if let Some(last) = created.iter().max_by_key(|u| u.uid) {
println!("deleting uid={} id={}", last.uid, last.user_id);
zk.delete_user(last.uid, &last.user_id)?;
}
zk.enable_device()?;
zk.disconnect()?;
Ok(())
}