Files
crosslangextras/Tesses.CrossLang.Shell/src/token.tcross
2026-05-08 01:40:51 -05:00

47 lines
1.4 KiB
Plaintext

func Tesses.CrossLang.Shell.Token(dd)
{
Console.Write("Name (empty for CrossLang Shell): ");
var name = Console.ReadLine() ?? "";
if(name == "") name = "CrossLang Shell";
Console.Write("Host: ");
var host = Console.ReadLine();
Console.Write("Email: ");
var email = Console.ReadLine();
Console.Write("Password: ");
var echo = Console.Echo;
Console.Echo = false;
var password = Console.ReadLine();
Console.Echo = echo;
Console.WriteLine();
var accountRequest = {
name,
email,
password
};
var req = {
Method="POST",
Body = Net.Http.TextHttpRequestBody(accountRequest.ToString(),"application/json")
};
var http = Net.Http.MakeRequest($"{host.TrimEnd('/')}/api/v1/login",req);
if(http.StatusCode == 401 && http.ResponseHeaders.TryGetFirst("Content-Type") == "application/json")
{
var json = Json.Decode(http.ReadAsString());
Console.WriteLined($"Failed to login, reason={json.reason}");
return 1;
}
else if(http.ResponseHeaders.TryGetFirst("Content-Type") == "application/json")
{
var json = Json.Decode(http.ReadAsString());
Console.WriteLine("This will only be shown once");
Console.WriteLine($"Here you go: {json.token}");
}
}