use std::io::{self, BufRead, Write};
fn main() {
eprintln!("⚙ Starting execution...");
let stdin = io::stdin();
let mut input_raw = String::new();
for line in stdin.lock().lines() {
match line {
Ok(l) => {
input_raw.push_str(&l);
input_raw.push('\n');
}
Err(_) => break,
}
}
if input_raw.is_empty() {
eprintln!("✗ No input received on Stdin!");
std::process::exit(1);
}
if input_raw.ends_with('\n') {
input_raw.pop();
}
eprintln!("⚙ Received Input: {}", input_raw);
let auth_token = input_raw
.split("\"auth_token\":\"")
.nth(1)
.and_then(|s| s.split('"').next())
.unwrap_or("");
let (branch, store) = if auth_token == "secret123" {
eprintln!("✓ Auth success!");
("success", r#"{"user_role":"admin","verified":"true"}"#)
} else {
eprintln!("✗ Auth failed. Token was: {}", auth_token);
("failure", r#"{"error_reason":"invalid_token"}"#)
};
print!("{{\"branch\":\"{}\",\"store\":{}}}", branch, store);
io::stdout().flush().unwrap();
}