diff --git a/lib/aprsme/data_extended.ex b/lib/aprsme/data_extended.ex index 5c5acef..0eac347 100644 --- a/lib/aprsme/data_extended.ex +++ b/lib/aprsme/data_extended.ex @@ -7,7 +7,7 @@ defmodule Aprsme.DataExtended do alias Aprsme.DataExtended embedded_schema do - field :aprsme_messaging, :boolean, default: false + field :aprs_messaging, :boolean, default: false field :comment, :string field :data_type, :string field :latitude, :decimal @@ -23,7 +23,7 @@ defmodule Aprsme.DataExtended do def changeset(%DataExtended{} = data_extended, attrs) do data_extended |> cast(attrs, [ - :aprsme_messaging, + :aprs_messaging, :comment, :data_type, :latitude, @@ -32,7 +32,7 @@ defmodule Aprsme.DataExtended do :symbol_table_id ]) |> validate_required([ - :aprsme_messaging, + :aprs_messaging, :comment, :data_type, :symbol_code, diff --git a/lib/aprsme/packet.ex b/lib/aprsme/packet.ex index 4d18a5f..9464a26 100644 --- a/lib/aprsme/packet.ex +++ b/lib/aprsme/packet.ex @@ -30,7 +30,7 @@ defmodule Aprsme.Packet do # Additional packet data field(:comment, :string) field(:timestamp, :string) - field(:aprsme_messaging, :boolean, default: false) + field(:aprs_messaging, :boolean, default: false) # Weather data field(:temperature, :float) @@ -90,7 +90,7 @@ defmodule Aprsme.Packet do :symbol_table_id, :comment, :timestamp, - :aprsme_messaging, + :aprs_messaging, :temperature, :humidity, :wind_speed, @@ -277,8 +277,8 @@ defmodule Aprsme.Packet do |> maybe_put(:comment, data_extended[:comment] || data_extended["comment"]) |> maybe_put(:timestamp, data_extended[:timestamp] || data_extended["timestamp"]) |> maybe_put( - :aprsme_messaging, - data_extended[:aprsme_messaging?] || data_extended["aprs_messaging?"] + :aprs_messaging, + data_extended[:aprs_messaging?] || data_extended["aprs_messaging?"] ) end diff --git a/lib/aprsme_web/controllers/api/v1/json/callsign_json.ex b/lib/aprsme_web/controllers/api/v1/json/callsign_json.ex index 279e8a0..140613a 100644 --- a/lib/aprsme_web/controllers/api/v1/json/callsign_json.ex +++ b/lib/aprsme_web/controllers/api/v1/json/callsign_json.ex @@ -38,7 +38,7 @@ defmodule AprsmeWeb.Api.V1.CallsignJSON do symbol: symbol_json(packet), comment: packet.comment, timestamp: packet.timestamp, - aprs_messaging: packet.aprsme_messaging, + aprs_messaging: packet.aprs_messaging, weather: weather_json(packet), equipment: equipment_json(packet), message: message_json(packet), diff --git a/lib/aprsme_web/live/api_docs_live.ex b/lib/aprsme_web/live/api_docs_live.ex index ce75a1b..5a19e00 100644 --- a/lib/aprsme_web/live/api_docs_live.ex +++ b/lib/aprsme_web/live/api_docs_live.ex @@ -112,7 +112,7 @@ defmodule AprsmeWeb.ApiDocsLive do "symbol" => format_symbol(packet), "comment" => packet.comment, "timestamp" => packet.timestamp, - "aprsme_messaging" => packet.aprsme_messaging, + "aprs_messaging" => packet.aprs_messaging, "weather" => format_weather(packet), "equipment" => format_equipment(packet), "message" => format_message(packet), @@ -224,7 +224,7 @@ defmodule AprsmeWeb.ApiDocsLive do RESTful JSON API for accessing APRS packet data and station information.

- +
@@ -263,7 +263,7 @@ defmodule AprsmeWeb.ApiDocsLive do
- +
@@ -373,7 +373,7 @@ defmodule AprsmeWeb.ApiDocsLive do }, "comment": "Mobile Station", "timestamp": null, - "aprsme_messaging": false, + "aprs_messaging": false, "weather": null, "equipment": { "manufacturer": "Kenwood", @@ -407,7 +407,7 @@ defmodule AprsmeWeb.ApiDocsLive do
- +
@@ -527,7 +527,7 @@ defmodule AprsmeWeb.ApiDocsLive do
- +
@@ -591,7 +591,7 @@ defmodule AprsmeWeb.ApiDocsLive do
- +
@@ -638,7 +638,7 @@ defmodule AprsmeWeb.ApiDocsLive do
- +
@@ -703,7 +703,7 @@ defmodule AprsmeWeb.ApiDocsLive do
- + <%= if @error do %>
@@ -723,7 +723,7 @@ defmodule AprsmeWeb.ApiDocsLive do
<% end %> - + <%= if @api_result do %>
@@ -750,7 +750,7 @@ defmodule AprsmeWeb.ApiDocsLive do
- +
diff --git a/priv/repo/migrations/20250616024903_add_additional_packet_fields.exs b/priv/repo/migrations/20250616024903_add_additional_packet_fields.exs index 3d892cc..33173e5 100644 --- a/priv/repo/migrations/20250616024903_add_additional_packet_fields.exs +++ b/priv/repo/migrations/20250616024903_add_additional_packet_fields.exs @@ -13,7 +13,7 @@ defmodule Aprsme.Repo.Migrations.AddAdditionalPacketFields do # Additional useful fields that may be in the parsed data add :comment, :text add :timestamp, :string - add :aprsme_messaging, :boolean, default: false + add :aprs_messaging, :boolean, default: false # Weather data fields (for weather packets) add :temperature, :float diff --git a/test/aprsme/data_extended_test.exs b/test/aprsme/data_extended_test.exs index 48d4c55..021df8a 100644 --- a/test/aprsme/data_extended_test.exs +++ b/test/aprsme/data_extended_test.exs @@ -6,7 +6,7 @@ defmodule Aprsme.DataExtendedTest do describe "changeset/2" do test "valid changeset with all required fields" do attrs = %{ - aprsme_messaging: true, + aprs_messaging: true, comment: "Test comment", data_type: "position", symbol_code: "/", @@ -16,7 +16,7 @@ defmodule Aprsme.DataExtendedTest do changeset = DataExtended.changeset(%DataExtended{}, attrs) assert changeset.valid? - assert get_change(changeset, :aprsme_messaging) == true + assert get_change(changeset, :aprs_messaging) == true assert get_change(changeset, :comment) == "Test comment" assert get_change(changeset, :data_type) == "position" assert get_change(changeset, :symbol_code) == "/" @@ -25,7 +25,7 @@ defmodule Aprsme.DataExtendedTest do test "valid changeset with coordinates" do attrs = %{ - aprsme_messaging: false, + aprs_messaging: false, comment: "Position report", data_type: "position", latitude: Decimal.new("40.123456"), @@ -43,7 +43,7 @@ defmodule Aprsme.DataExtendedTest do test "valid changeset with string coordinates gets converted to decimal" do attrs = %{ - aprsme_messaging: false, + aprs_messaging: false, comment: "Position report", data_type: "position", latitude: "40.123456", @@ -61,7 +61,7 @@ defmodule Aprsme.DataExtendedTest do test "valid changeset with only required fields (no coordinates)" do attrs = %{ - aprsme_messaging: false, + aprs_messaging: false, comment: "Status update", data_type: "status", symbol_code: ">", @@ -90,7 +90,7 @@ defmodule Aprsme.DataExtendedTest do test "invalid changeset with empty required fields" do attrs = %{ - aprsme_messaging: nil, + aprs_messaging: nil, comment: "", data_type: "", symbol_code: "", @@ -109,7 +109,7 @@ defmodule Aprsme.DataExtendedTest do test "changeset with only latitude provided (should be invalid)" do attrs = %{ - aprsme_messaging: false, + aprs_messaging: false, comment: "Partial position", data_type: "position", latitude: "40.123456", @@ -128,7 +128,7 @@ defmodule Aprsme.DataExtendedTest do test "changeset with only longitude provided (should be invalid)" do attrs = %{ - aprsme_messaging: false, + aprs_messaging: false, comment: "Partial position", data_type: "position", longitude: "-74.654321", @@ -144,10 +144,10 @@ defmodule Aprsme.DataExtendedTest do refute get_change(changeset, :latitude) end - test "changeset handles boolean aprsme_messaging properly" do + test "changeset handles boolean aprs_messaging properly" do # Test true attrs_true = %{ - aprsme_messaging: true, + aprs_messaging: true, comment: "Message enabled", data_type: "message", symbol_code: ">", @@ -156,11 +156,11 @@ defmodule Aprsme.DataExtendedTest do changeset_true = DataExtended.changeset(%DataExtended{}, attrs_true) assert changeset_true.valid? - assert get_change(changeset_true, :aprsme_messaging) == true + assert get_change(changeset_true, :aprs_messaging) == true # Test false attrs_false = %{ - aprsme_messaging: false, + aprs_messaging: false, comment: "Message disabled", data_type: "status", symbol_code: ">", @@ -169,7 +169,7 @@ defmodule Aprsme.DataExtendedTest do changeset_false = DataExtended.changeset(%DataExtended{}, attrs_false) assert changeset_false.valid? - assert get_change(changeset_false, :aprsme_messaging) == false || changeset_false.data.aprsme_messaging == false + assert get_change(changeset_false, :aprs_messaging) == false || changeset_false.data.aprs_messaging == false end test "changeset with various symbol codes and table IDs" do @@ -182,7 +182,7 @@ defmodule Aprsme.DataExtendedTest do for {symbol_code, symbol_table_id, description} <- test_cases do attrs = %{ - aprsme_messaging: false, + aprs_messaging: false, comment: description, data_type: "position", symbol_code: symbol_code, @@ -202,7 +202,7 @@ defmodule Aprsme.DataExtendedTest do for data_type <- data_types do attrs = %{ - aprsme_messaging: false, + aprs_messaging: false, comment: "Testing #{data_type}", data_type: data_type, symbol_code: ">", @@ -220,7 +220,7 @@ defmodule Aprsme.DataExtendedTest do long_comment = String.duplicate("A", 1000) attrs = %{ - aprsme_messaging: false, + aprs_messaging: false, comment: long_comment, data_type: "status", symbol_code: ">", @@ -235,7 +235,7 @@ defmodule Aprsme.DataExtendedTest do test "changeset preserves existing data when updating" do existing_data = %DataExtended{ - aprsme_messaging: true, + aprs_messaging: true, comment: "Original comment", data_type: "position", latitude: Decimal.new("30.0"), @@ -255,7 +255,7 @@ defmodule Aprsme.DataExtendedTest do assert get_change(changeset, :comment) == "Updated comment" assert get_change(changeset, :latitude) == Decimal.new("31.0") # Other fields should remain unchanged - assert changeset.data.aprsme_messaging == true + assert changeset.data.aprs_messaging == true assert changeset.data.data_type == "position" end end @@ -263,7 +263,7 @@ defmodule Aprsme.DataExtendedTest do describe "validate_required_if_present/2" do test "validates field when it's present in changes" do attrs = %{ - aprsme_messaging: false, + aprs_messaging: false, comment: "Test", data_type: "position", # Explicitly setting to nil should trigger validation @@ -285,7 +285,7 @@ defmodule Aprsme.DataExtendedTest do test "creates struct with default values" do data_extended = %DataExtended{} - assert data_extended.aprsme_messaging == false + assert data_extended.aprs_messaging == false assert is_nil(data_extended.comment) assert is_nil(data_extended.data_type) assert is_nil(data_extended.latitude) @@ -296,7 +296,7 @@ defmodule Aprsme.DataExtendedTest do test "creates struct with explicit values" do data_extended = %DataExtended{ - aprsme_messaging: true, + aprs_messaging: true, comment: "Test comment", data_type: "position", latitude: Decimal.new("40.0"), @@ -305,7 +305,7 @@ defmodule Aprsme.DataExtendedTest do symbol_table_id: "/" } - assert data_extended.aprsme_messaging == true + assert data_extended.aprs_messaging == true assert data_extended.comment == "Test comment" assert data_extended.data_type == "position" assert data_extended.latitude == Decimal.new("40.0")