mirror of
https://github.com/valmojr/armatak.git
synced 2026-06-13 16:03:31 +00:00
added error handling to extract_auth_token workflow
This commit is contained in:
@@ -4,9 +4,9 @@ private _atak_server_instance_password = missionNamespace getVariable "_atak_ser
|
|||||||
|
|
||||||
private _authentication = [_atak_server_instance, _atak_server_instance_username, _atak_server_instance_password];
|
private _authentication = [_atak_server_instance, _atak_server_instance_username, _atak_server_instance_password];
|
||||||
|
|
||||||
_atak_server_instance_token = ("armatak" callExtension ["get_auth_token", _authentication]) select 0;
|
_atak_server_instance_token = ("armatak" callExtension ["get_auth_token", [_authentication]]) select 0;
|
||||||
|
|
||||||
if ((_atak_server_instance_token != "") and !(["error", _atak_server_instance_token, false] call BIS_fnc_inString)) then {
|
if ((_atak_server_instance_token != "") and !(["ERROR", _atak_server_instance_token, false] call BIS_fnc_inString)) then {
|
||||||
missionNamespace setVariable ["_atak_server_instance_token", _atak_server_instance_token];
|
missionNamespace setVariable ["_atak_server_instance_token", _atak_server_instance_token];
|
||||||
|
|
||||||
private _warning = format ["<t color='#2B7319'>ARMATAK</t><br/> %1", "Authorized"];
|
private _warning = format ["<t color='#2B7319'>ARMATAK</t><br/> %1", "Authorized"];
|
||||||
|
|||||||
@@ -19,16 +19,17 @@ if (isServer && _activated) exitWith {
|
|||||||
missionNamespace setVariable ["_atak_server_instance_username", _atak_ots_api_username];
|
missionNamespace setVariable ["_atak_server_instance_username", _atak_ots_api_username];
|
||||||
missionNamespace setVariable ["_atak_server_instance_password", _atak_ots_api_password];
|
missionNamespace setVariable ["_atak_server_instance_password", _atak_ots_api_password];
|
||||||
|
|
||||||
/*
|
_atak_server_instance_token = call armatak_fnc_extract_auth_token;
|
||||||
_atak_server_instance_token = call armatak_fnc_extract_auth_token;
|
|
||||||
|
|
||||||
if (_atak_server_instance_token == "") then {
|
if (_atak_server_instance_token == "") then {
|
||||||
private _warning = format ["<t color='#FF0000'>ARMATAK</t><br/> %1", "Connection Failed"];
|
private _warning = format ["<t color='#FF0000'>ARMATAK</t><br/> %1", "Connection Failed"];
|
||||||
[[_warning, 2]] call CBA_fnc_notify;
|
[[_warning, 2]] call CBA_fnc_notify;
|
||||||
} else {
|
} else {
|
||||||
private _warning = format ["<t color='#2B7319'>ARMATAK</t><br/> %1", "Connected"];
|
private _warning = format ["<t color='#2B7319'>ARMATAK</t><br/> %1", "Connected"];
|
||||||
[[_warning, 2]] call CBA_fnc_notify;
|
[[_warning, 2]] call CBA_fnc_notify;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
|
||||||
if (isMultiplayer) then {
|
if (isMultiplayer) then {
|
||||||
[{
|
[{
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
use crate::structs::{LoginInfo, LoginPayload};
|
use crate::structs::{LoginInfo, LoginPayload};
|
||||||
|
use log::error;
|
||||||
use reqwest;
|
use reqwest;
|
||||||
use serde_json;
|
use serde_json;
|
||||||
|
|
||||||
@@ -15,20 +16,48 @@ pub fn get_auth_token(payload: LoginPayload) -> String {
|
|||||||
.post(&parsed_address)
|
.post(&parsed_address)
|
||||||
.body(request_body)
|
.body(request_body)
|
||||||
.header("Content-Type", "application/json")
|
.header("Content-Type", "application/json")
|
||||||
.send()
|
.send();
|
||||||
.unwrap();
|
|
||||||
|
|
||||||
let response_body: serde_json::Value = serde_json::from_str(&response.text().unwrap()).unwrap();
|
match response {
|
||||||
|
Ok(result) => {
|
||||||
|
let response_body: Result<serde_json::Value, _> =
|
||||||
|
serde_json::from_str(&result.text().unwrap());
|
||||||
|
|
||||||
let csrf_token = response_body["response"]["csrf_token"].as_str().unwrap();
|
match response_body {
|
||||||
|
Ok(result) => {
|
||||||
|
let csrf_token = result["response"]["csrf_token"].as_str();
|
||||||
|
|
||||||
return csrf_token.to_string()
|
match csrf_token {
|
||||||
|
Some(result) => {
|
||||||
|
return result.to_string();
|
||||||
|
}
|
||||||
|
None => {
|
||||||
|
let message = "ERROR: Provided JSON doesnt match a valid CSRF Token";
|
||||||
|
error!("{}", message);
|
||||||
|
|
||||||
|
return message.to_string();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Err(error) => {
|
||||||
|
error!("{}", error);
|
||||||
|
|
||||||
|
return "ERROR: failed to parse the response body to a valid JSON".to_string();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Err(error) => {
|
||||||
|
error!("{}", error);
|
||||||
|
|
||||||
|
return "ERROR: failed to fetch the OTS API".to_string();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub(crate) mod markers {
|
pub(crate) mod markers {
|
||||||
use log::info;
|
use log::info;
|
||||||
|
|
||||||
use crate::structs::Marker;
|
use crate::{structs::Marker, util::post_marker};
|
||||||
|
|
||||||
pub fn get(placeholder: String) -> &'static str {
|
pub fn get(placeholder: String) -> &'static str {
|
||||||
info!("{}", placeholder);
|
info!("{}", placeholder);
|
||||||
@@ -38,7 +67,7 @@ pub(crate) mod markers {
|
|||||||
|
|
||||||
pub fn post(data: Vec<Marker>) -> &'static str {
|
pub fn post(data: Vec<Marker>) -> &'static str {
|
||||||
for item in data {
|
for item in data {
|
||||||
info!("{} - {}", item.uid, item.name)
|
post_marker(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
return "not implemented yet";
|
return "not implemented yet";
|
||||||
|
|||||||
14
src/util.rs
14
src/util.rs
@@ -1,5 +1,17 @@
|
|||||||
|
use log::info;
|
||||||
|
|
||||||
|
use crate::structs::Marker;
|
||||||
|
|
||||||
pub fn get_uuid() -> String {
|
pub fn get_uuid() -> String {
|
||||||
use uuid::Uuid;
|
use uuid::Uuid;
|
||||||
|
|
||||||
Uuid::new_v4().to_string()
|
Uuid::new_v4().to_string()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub async fn post_marker(marker: Marker) -> String {
|
||||||
|
let placeholder = format!("{} - {}", marker.uid, marker.name);
|
||||||
|
|
||||||
|
info!("{}", placeholder);
|
||||||
|
|
||||||
|
return placeholder
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user