aprs.me/lib/aprsme_web/live/shared
Graham McIntire 01ecf3d6bc
refactor: apply functional programming patterns across codebase
- accounts.ex: replace validate_user_password (if-based) with with-chain;
  drop unnecessary try/rescue around Repo.get_by. Extract transaction_unwrap
  helper to eliminate 3 copies of the Multi result-unwrap case block.

- packets.ex: deduplicate store_bad_packet by extracting raw_packet_string,
  extract_error_type, and extract_error_message into composable helpers.
  Normalize find_coordinate_value — collapse 12 clauses into a generic
  deep_get/direct_get that handles atom/string keys and nested maps uniformly.

- data_builder.ex: split build_simple_popup into separate data-construction
  (build_simple_popup_data) and rendering (render_popup) phases, eliminating
  duplicated PopupComponent/Safe/IO pipelines.

- param_utils.ex: unify parse_float_in_range and parse_int_in_range via a
  shared parse_in_range that accepts Float.parse/Integer.parse as a function
  parameter — functions-as-values pattern.
2026-07-01 08:45:19 -05:00
..
bounds_utils.ex clean up warnings 2025-07-16 08:55:46 -05:00
coordinate_utils.ex refactor: dedupe utilities, prefer pattern matching, tighten specs 2026-04-28 14:18:58 -05:00
packet_handler.ex refactor: collapse nested if/case into pattern-matched helpers 2026-04-23 13:55:11 -05:00
packet_utils.ex perf: reduce traversals, optimize packet field lookups, use has_weather boolean 2026-06-01 16:49:28 -05:00
param_utils.ex refactor: apply functional programming patterns across codebase 2026-07-01 08:45:19 -05:00