diff --git a/lib/towerops/monitoring/ping.ex b/lib/towerops/monitoring/ping.ex index 2db6edaf..af5bfb3f 100644 --- a/lib/towerops/monitoring/ping.ex +++ b/lib/towerops/monitoring/ping.ex @@ -13,9 +13,10 @@ defmodule Towerops.Monitoring.Ping do @behaviour Towerops.Monitoring.PingBehaviour - require Logger import Bitwise + require Logger + # ICMP protocol number @icmp_proto 1 diff --git a/lib/towerops_web/live/user_settings_live.ex b/lib/towerops_web/live/user_settings_live.ex index a7eb3819..c163e99d 100644 --- a/lib/towerops_web/live/user_settings_live.ex +++ b/lib/towerops_web/live/user_settings_live.ex @@ -143,26 +143,38 @@ defmodule ToweropsWeb.UserSettingsLive do end @impl true - def handle_event("create_api_token", %{"token" => %{"name" => name, "organization_id" => org_id}}, socket) do + def handle_event("create_api_token", params, socket) do user = socket.assigns.current_scope.user - case Towerops.ApiTokens.create_api_token(%{ - name: name, - organization_id: org_id, - user_id: user.id - }) do - {:ok, {_token, raw_token}} -> - socket = - socket - |> assign(:show_add_token_modal, false) - |> assign(:created_token, raw_token) - |> assign(:show_token_modal, true) - |> assign_api_tokens() + # Handle both nested token params and flat params + {name, org_id} = + case params do + %{"token" => %{"name" => n, "organization_id" => o}} -> {n, o} + %{"name" => n, "organization_id" => o} -> {n, o} + _ -> {nil, nil} + end - {:noreply, socket} + if name && org_id do + case Towerops.ApiTokens.create_api_token(%{ + name: name, + organization_id: org_id, + user_id: user.id + }) do + {:ok, {_token, raw_token}} -> + socket = + socket + |> assign(:show_add_token_modal, false) + |> assign(:created_token, raw_token) + |> assign(:show_token_modal, true) + |> assign_api_tokens() - {:error, _changeset} -> - {:noreply, put_flash(socket, :error, "Failed to create API token.")} + {:noreply, socket} + + {:error, _changeset} -> + {:noreply, put_flash(socket, :error, "Failed to create API token.")} + end + else + {:noreply, put_flash(socket, :error, "Name and organization are required.")} end end