diff --git a/Assets/Rivet/Editor/Types.cs b/Assets/Rivet/Editor/Types.cs index 6305435..feb6d1c 100644 --- a/Assets/Rivet/Editor/Types.cs +++ b/Assets/Rivet/Editor/Types.cs @@ -8,21 +8,25 @@ public struct BootstrapData [JsonProperty("token")] public string Token; [JsonProperty("api_endpoint")] public string ApiEndpoint; [JsonProperty("game_id")] public string GameId; - [JsonProperty("backend_project")] public BackendProject BackendProject; - [JsonProperty("backend_environments")] public List BackendEnvironments; + [JsonProperty("envs")] public List Environments; + [JsonProperty("backends")] public Dictionary Backends; } - public struct BackendProject + public struct EnvironmentBackend { - [JsonProperty("project_id")] public string ProjectId; + [JsonProperty("created_at")] public string CreatedAt; + [JsonProperty("endpoint")] public string Endpoint; + [JsonProperty("id")] public string Id; + [JsonProperty("slug")] public string Slug; + [JsonProperty("tier")] public string Tier; } - public struct BackendEnvironment + public struct RivetEnvironment { - [JsonProperty("display_name")] public string DisplayName; - [JsonProperty("endpoint")] public string Endpoint; - [JsonProperty("environment_id")] public string EnvironmentId; - [JsonProperty("name_id")] public string NameId; + [JsonProperty("id")] public string Id; + [JsonProperty("created_at")] public string CreatedAt; + [JsonProperty("slug")] public string Slug; + [JsonProperty("name")] public string Name; } } \ No newline at end of file diff --git a/Assets/Rivet/Editor/UI/Screens/MainController.cs b/Assets/Rivet/Editor/UI/Screens/MainController.cs index 8af87b0..c8e760b 100644 --- a/Assets/Rivet/Editor/UI/Screens/MainController.cs +++ b/Assets/Rivet/Editor/UI/Screens/MainController.cs @@ -1,3 +1,4 @@ +using System; using System.Linq; using System.Threading.Tasks; using Newtonsoft.Json.Linq; @@ -59,11 +60,11 @@ public class MainController // MARK: Environment public EnvironmentType EnvironmentType = EnvironmentType.Local; public string? RemoteEnvironmentId; - public BackendEnvironment? RemoteEnvironment + public RivetEnvironment? RemoteEnvironment { get { - return BootstrapData?.BackendEnvironments[RemoteEnvironmentIndex]; + return BootstrapData?.Environments[RemoteEnvironmentIndex]; } } public int RemoteEnvironmentIndex @@ -72,7 +73,7 @@ public int RemoteEnvironmentIndex { if (BootstrapData is { } data) { - var idx = data.BackendEnvironments.FindIndex(x => x.EnvironmentId == RemoteEnvironmentId); + var idx = data.Environments.FindIndex(x => x.Id == RemoteEnvironmentId); return idx >= 0 ? idx : -1; } else @@ -82,9 +83,9 @@ public int RemoteEnvironmentIndex } set { - if (value >= 0 && value < BootstrapData?.BackendEnvironments.Count) + if (value >= 0 && value < BootstrapData?.Environments.Count) { - RemoteEnvironmentId = BootstrapData?.BackendEnvironments[value].EnvironmentId; + RemoteEnvironmentId = BootstrapData?.Environments[value].Id; } } } @@ -215,14 +216,30 @@ void SetTab(MainTab tab) private async Task GetBootstrapData() { var result = await new RivetTask("get_bootstrap_data", new JObject()).RunAsync(); - if (result is ResultErr) return; + if (result is ResultErr err) + { + return; + } - var data = result.Data.ToObject(); ; - BootstrapData = data; - ExtensionData.ApiEndpoint = data.ApiEndpoint; + if (result.Data == null) + { + return; + } - _developController.OnBootstrap(data); - _deployController.OnBootstrap(data); + try + { + var data = result.Data.ToObject(); + BootstrapData = data; + ExtensionData.ApiEndpoint = data.ApiEndpoint; + + _developController.OnBootstrap(data); + _deployController.OnBootstrap(data); + } + catch (Exception ex) + { + RivetLogger.Error($"Exception in GetBootstrapData: {ex.Message}"); + RivetLogger.Error($"Stack trace: {ex.StackTrace}"); + } } /// diff --git a/Assets/Rivet/Editor/UI/Tabs/DeployController.cs b/Assets/Rivet/Editor/UI/Tabs/DeployController.cs index b41ac1b..2517068 100644 --- a/Assets/Rivet/Editor/UI/Tabs/DeployController.cs +++ b/Assets/Rivet/Editor/UI/Tabs/DeployController.cs @@ -48,13 +48,19 @@ public void OnBootstrap(BootstrapData data) { // Add environments List environments = new(); - foreach (var env in data.BackendEnvironments) + foreach (var env in data.Environments) { - environments.Add(env.DisplayName); + environments.Add(env.Name); } environments.Add("+ New Environment"); _environmentDropdown.choices = environments; + if (environments.Count > 0) + { + _environmentDropdown.index = 0; + _mainController.RemoteEnvironmentIndex = 0; + } + OnSelectedEnvironmentChange(); } diff --git a/Assets/Rivet/Editor/UI/Tabs/DevelopController.cs b/Assets/Rivet/Editor/UI/Tabs/DevelopController.cs index 067fd38..8aa6bf8 100644 --- a/Assets/Rivet/Editor/UI/Tabs/DevelopController.cs +++ b/Assets/Rivet/Editor/UI/Tabs/DevelopController.cs @@ -100,9 +100,9 @@ public void OnBootstrap(BootstrapData data) { // Add environments List environments = new(); - foreach (var env in data.BackendEnvironments) + foreach (var env in data.Environments) { - environments.Add(env.DisplayName); + environments.Add(env.Name); } environments.Add("+ New Environment"); _remoteEnvironmentDropdown.choices = environments;