From 7a1317d0d0e69f45504030a47c022c91bc6734ff Mon Sep 17 00:00:00 2001 From: Graham McIntire Date: Wed, 4 Feb 2026 16:03:20 -0600 Subject: [PATCH] API: Default organization_id to authenticated org when empty When creating devices via API, organization_id is now properly defaulted to the authenticated organization's ID even when an empty string is sent. This fixes Terraform provider compatibility where organization_id may be sent as "" instead of omitted entirely. Before: Only checked if key was missing (Map.has_key?) After: Also handles nil and empty string values --- .../controllers/api/v1/devices_controller.ex | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/towerops_web/controllers/api/v1/devices_controller.ex b/lib/towerops_web/controllers/api/v1/devices_controller.ex index 76938727..6b456e86 100644 --- a/lib/towerops_web/controllers/api/v1/devices_controller.ex +++ b/lib/towerops_web/controllers/api/v1/devices_controller.ex @@ -88,12 +88,12 @@ defmodule ToweropsWeb.Api.V1.DevicesController do organization_id = conn.assigns.current_organization_id current_user = conn.assigns[:current_user] - # Add organization_id to params if not provided + # Default organization_id to authenticated org if not provided or empty device_params = - if Map.has_key?(device_params, "organization_id") do - device_params - else - Map.put(device_params, "organization_id", organization_id) + case Map.get(device_params, "organization_id") do + nil -> Map.put(device_params, "organization_id", organization_id) + "" -> Map.put(device_params, "organization_id", organization_id) + _provided_id -> device_params end # Verify site belongs to organization if site_id is provided