aprs.me/lib/aprsme
Graham McIntire ee02769d38
refactor: pattern-match in HealthCheck, EncodingUtils, and StatusLive helpers
- HealthCheck.check_health(:readiness): collapse the 3-branch cond into
  readiness_status/2 dispatched on (health_status, shutting_down?).
- HealthCheck.shutting_down?: the whereis + alive? + try/catch nest
  becomes a small pipeline of function heads (ask_shutting_down?/1 +
  ask_if_alive/2), with the catch isolated to the single place it fires.
- EncodingUtils.sanitize_string_fields and sanitize_nested_map shared a
  three-branch atom-or-string key lookup. Extract update_existing_key/3
  + first_present_key/3 + nil_aware/1 helpers; the original functions
  become two-liners.
- StatusLive.Index.format_uptime: splits the cond into
  format_uptime_parts/4 clauses with numeric guards.
- StatusLive.Index.calculate_health_score: struct-shape pattern match
  on %{connected: false} / %{uptime_seconds: s} guards replaces the cond.
- StatusLive.Index.format_time_ago: pipe the diff through
  format_seconds_ago/1 with four clauses.

Adds tests for the four public StatusLive.Index helpers
(format_uptime, format_time_ago, get_health_description, format_number).
Coverage 67.29 → 67.43%.
2026-04-23 14:02:50 -05:00
..
accounts chore: update dependencies and fix pre-existing issues 2026-04-15 14:07:29 -05:00
cluster refactor: collapse nested if/case into pattern-matched helpers 2026-04-23 13:55:11 -05:00
is refactor: promote hot-path GenServer state maps to structs 2026-04-21 10:26:20 -05:00
packets fix: stop silent packet loss, timer leak, and seq-scans 2026-04-21 09:29:06 -05:00
performance refactor: pattern-match over conditionals in Navigation and InsertOptimizer 2026-04-23 13:38:24 -05:00
telemetry refactor: pattern-match in DeviceCache and DatabaseMetrics + add tests 2026-04-23 13:46:00 -05:00
workers Partition packets table by day and simplify cleanup 2026-02-20 11:25:16 -06:00
accounts.ex Fix callsign registration to be case-insensitive 2026-02-19 13:20:07 -06:00
application.ex chore(dialyzer): enable stricter flags and fix 97 resulting findings 2026-04-21 10:07:01 -05:00
bad_packet.ex refactor to use external parser 2025-06-24 14:22:09 -05:00
broadcast_task_supervisor.ex perf: optimize slow tests - 40% reduction in top 10 slowest tests 2026-03-03 10:47:40 -06:00
cache.ex fix: address security vulnerabilities and concurrency issues 2026-03-23 16:59:09 -05:00
callsign.ex Fix code review findings: security, correctness, performance, dead code 2026-02-19 18:49:27 -06:00
circuit_breaker.ex refactor: promote hot-path GenServer state maps to structs 2026-04-21 10:26:20 -05:00
cleanup_scheduler.ex chore(dialyzer): enable stricter flags and fix 97 resulting findings 2026-04-21 10:07:01 -05:00
connection_monitor.ex types: add @type t to last two untyped GenServer structs 2026-04-21 10:18:26 -05:00
convert.ex more i18n 2025-07-06 10:28:27 -05:00
data_extended.ex update deps 2025-07-16 08:20:20 -05:00
db_optimizer.ex chore(dialyzer): enable stricter flags and fix 97 resulting findings 2026-04-21 10:07:01 -05:00
deployment_notifier.ex chore(dialyzer): enable stricter flags and fix 97 resulting findings 2026-04-21 10:07:01 -05:00
device_cache.ex refactor: pattern-match in DeviceCache and DatabaseMetrics + add tests 2026-04-23 13:46:00 -05:00
device_identification.ex fix(devices): make upsert_devices/1 work with Repo.insert_all 2026-04-23 13:31:49 -05:00
device_parser.ex refactor 2025-10-12 10:56:49 -05:00
devices.ex refactor to use external parser 2025-06-24 14:22:09 -05:00
devices_seeder.ex Fix potential crashes and unsafe operations throughout the app 2025-07-28 08:35:12 -05:00
dynamic_supervisor.ex Add distributed Erlang clustering for single APRS-IS connection 2025-07-25 10:30:29 -05:00
encoding.ex Fix APRS object display and comment encoding issues 2026-02-20 18:06:32 -06:00
encoding_utils.ex refactor: pattern-match in HealthCheck, EncodingUtils, and StatusLive helpers 2026-04-23 14:02:50 -05:00
error_handler.ex clean up warnings 2025-07-16 08:55:46 -05:00
error_notifier.ex chore(dialyzer): enable stricter flags and fix 97 resulting findings 2026-04-21 10:07:01 -05:00
geo_utils.ex Increase GPS drift threshold from 15m to 50m 2025-07-21 11:23:37 -05:00
log_sanitizer.ex more tests 2026-02-09 17:21:16 -06:00
maidenhead.ex Partition packets table by day and simplify cleanup 2026-02-20 11:25:16 -06:00
mailer.ex refactor to use external parser 2025-06-24 14:22:09 -05:00
migration_lock.ex format 2025-07-27 11:16:16 -05:00
packet.ex perf: reduce per-packet allocations in ingest pipeline 2026-04-19 13:33:16 -05:00
packet_consumer.ex refactor: promote hot-path GenServer state maps to structs 2026-04-21 10:26:20 -05:00
packet_consumer_pool.ex Fix packet buffer overflow with parallel consumer pool 2025-07-19 14:49:52 -05:00
packet_counter.ex performance improvements 2025-07-14 16:35:58 -05:00
packet_field_whitelist.ex Consolidate 24 packet columns into JSONB data field 2026-02-20 13:02:47 -06:00
packet_pipeline_supervisor.ex Fix multiple TODO bugs: drain handler, callsign dedup, packet pipeline 2026-02-19 18:27:25 -06:00
packet_producer.ex Add TCP backpressure to packet pipeline 2026-02-19 15:31:51 -06:00
packet_replay.ex chore(dialyzer): enable stricter flags and fix 97 resulting findings 2026-04-21 10:07:01 -05:00
packet_replay_behaviour.ex refactor to use external parser 2025-06-24 14:22:09 -05:00
packet_sanitizer.ex perf: reduce per-packet allocations in ingest pipeline 2026-04-19 13:33:16 -05:00
packets.ex perf(packets): keyset-based pagination for recent-packet queries 2026-04-21 10:15:04 -05:00
packets_behaviour.ex refactor: Remove CachedQueries and rename optimized functions 2025-07-30 13:17:56 -05:00
partition_manager.ex chore(dialyzer): enable stricter flags and fix 97 resulting findings 2026-04-21 10:07:01 -05:00
postgres_notifier.ex chore(dialyzer): enable stricter flags and fix 97 resulting findings 2026-04-21 10:07:01 -05:00
postgres_types.ex refactor to use external parser 2025-06-24 14:22:09 -05:00
rate_limiter.ex update deps 2025-07-16 08:20:20 -05:00
regex_cache.ex chore(dialyzer): enable stricter flags and fix 97 resulting findings 2026-04-21 10:07:01 -05:00
release.ex chore(dialyzer): enable stricter flags and fix 97 resulting findings 2026-04-21 10:07:01 -05:00
repo.ex refactor to use external parser 2025-06-24 14:22:09 -05:00
schema.ex refactor to use external parser 2025-06-24 14:22:09 -05:00
shutdown_handler.ex chore(dialyzer): enable stricter flags and fix 97 resulting findings 2026-04-21 10:07:01 -05:00
signal_handler.ex fix: address security vulnerabilities and concurrency issues 2026-03-23 16:59:09 -05:00
spatial_pubsub.ex chore(dialyzer): enable stricter flags and fix 97 resulting findings 2026-04-21 10:07:01 -05:00
streaming_packets_pubsub.ex chore(dialyzer): enable stricter flags and fix 97 resulting findings 2026-04-21 10:07:01 -05:00