add code 2
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
pub const ID: &str = "code2";
|
||||
pub const CODE: &str = "Qj4eAn";
|
||||
pub const NEXT_STEP_TEXT: &str = "TODO: replace this with the next step.";
|
||||
|
||||
const SELF_NOTIFICATION: &str = "Code 2 has been submitted.";
|
||||
|
||||
pub(super) async fn on_submit(live: bool) -> Result<(), String> {
|
||||
if !live {
|
||||
leptos::logging::log!("Code 2 SMS (not sent; server is offline): {SELF_NOTIFICATION}");
|
||||
return Ok(());
|
||||
}
|
||||
|
||||
let secrets = crate::secrets::runtime();
|
||||
|
||||
let mut payload = serde_json::json!({
|
||||
"message": SELF_NOTIFICATION,
|
||||
"recipients": [&secrets.recipient_self],
|
||||
});
|
||||
if let Some(device_id) = &secrets.textbee_device_id {
|
||||
payload["deviceId"] = serde_json::Value::String(device_id.clone());
|
||||
}
|
||||
|
||||
let response = reqwest::Client::new()
|
||||
.post("https://api.textbee.dev/api/v1/gateway/send-sms")
|
||||
.header("x-api-key", &secrets.textbee_api_key)
|
||||
.json(&payload)
|
||||
.send()
|
||||
.await
|
||||
.map_err(|error| format!("TextBee request failed: {error}"))?;
|
||||
|
||||
let status = response.status();
|
||||
if !status.is_success() {
|
||||
let response_body = response.text().await.map_err(|error| {
|
||||
format!("TextBee returned HTTP {status}; unable to read error: {error}")
|
||||
})?;
|
||||
return Err(format!("TextBee returned HTTP {status}: {response_body}"));
|
||||
}
|
||||
|
||||
Ok(())
|
||||
}
|
||||
Reference in New Issue
Block a user