From c59744f3521cf6120593ac7de8c668215930000a Mon Sep 17 00:00:00 2001 From: Graham McIntire Date: Mon, 28 Jul 2025 12:27:19 -0500 Subject: [PATCH] Fix ArgumentError for unknown field :phg in schema MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The :phg field was being added as a map to packet attributes, but it's not a database field. PHG data should be split into individual fields (phg_power, phg_height, phg_gain, phg_directivity) which are actual database columns. Removed the :phg map from being added to attributes. The put_phg_fields function already handles extracting individual PHG components. Updated tests to check for individual PHG fields instead of the map. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- lib/aprsme/packet.ex | 2 +- test/aprsme/packet_parsing_test.exs | 11 +++++------ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/lib/aprsme/packet.ex b/lib/aprsme/packet.ex index fda40fa..7683d53 100644 --- a/lib/aprsme/packet.ex +++ b/lib/aprsme/packet.ex @@ -381,7 +381,7 @@ defmodule Aprsme.Packet do |> maybe_put(:course, data_extended[:course] || data_extended["course"]) |> maybe_put(:speed, data_extended[:speed] || data_extended["speed"]) |> maybe_put(:altitude, altitude) - |> maybe_put(:phg, phg) + # Don't add :phg to the map - it will be split into individual fields by put_phg_fields |> put_phg_fields(data_extended) end diff --git a/test/aprsme/packet_parsing_test.exs b/test/aprsme/packet_parsing_test.exs index c1b2e9d..a9ed492 100644 --- a/test/aprsme/packet_parsing_test.exs +++ b/test/aprsme/packet_parsing_test.exs @@ -22,16 +22,15 @@ defmodule Aprsme.PacketParsingTest do # Verify altitude was extracted assert extracted_attrs[:altitude] == 680.0 - # Verify PHG data was extracted - assert is_map(extracted_attrs[:phg]) + # Verify PHG data was extracted into individual fields # PHG5 = 25W (5^2) - assert extracted_attrs[:phg][:power] == 25 + assert extracted_attrs[:phg_power] == 25 # PHG x5x = 320 ft - assert extracted_attrs[:phg][:height] == 320 + assert extracted_attrs[:phg_height] == 320 # PHG xx3 = 3 dBi - assert extracted_attrs[:phg][:gain] == 3 + assert extracted_attrs[:phg_gain] == 3 # PHG xxx0 = 0 degrees (not 360 for omni in our implementation) - assert extracted_attrs[:phg][:directivity] == 0 + assert extracted_attrs[:phg_directivity] == 0 # Verify comment has altitude and PHG removed assert extracted_attrs[:comment] == "Collin Cty Wide Digi"