towerops/lib/towerops/accounts
Graham McIntire efaf5558ff refactor: convert 6 Gleam modules to idiomatic Elixir with TDD (#196)
Phase 1: Foundation Types (100% complete)
- query_helpers: SQL LIKE sanitization with pipe operators
- numeric: Integer parsing with pattern matching guards
- result: Pure Elixir Result monad (map, and_then, unwrap_or)

Phase 2: Ecto Domain Types (100% complete)
- ip_address: IPv4/IPv6 validation using :inet directly
- mac_address: Multi-format MAC parsing (colon/hyphen/dot/compact)
- snmp_oid: OID parsing/manipulation with recursive pattern matching

All 198 tests passing across converted modules.
API changed from Gleam-style {:some/:none to idiomatic {:ok/:error.
Refactored parse_numeric_oid to use with statement, reducing nesting depth.

Reviewed-on: graham/towerops-web#196
2026-03-28 09:52:07 -05:00
..
browser_session.ex add 100% test coverage for Towerops.Accounts 2026-03-11 10:37:03 -05:00
hibp.ex Add GeoIP import HTTP tests 2026-03-10 16:02:49 -05:00
login_attempt.ex purge more passkey and gettext updates 2026-02-02 10:20:59 -06:00
policy_version.ex gdpr consent tracking 2026-01-29 11:12:35 -06:00
scope.ex feat: add 12/24-hour time format setting with consistent timezone display 2026-02-13 15:16:29 -06:00
user.ex feat: auto-grant superuser to owner email addresses 2026-03-09 15:45:23 -05:00
user_agent_parser.ex refactor: convert 6 Gleam modules to idiomatic Elixir with TDD (#196) 2026-03-28 09:52:07 -05:00
user_consent.ex more tests 2026-02-03 12:03:54 -06:00
user_notifier.ex gdpr (#86) 2026-03-19 14:28:31 -05:00
user_recovery_code.ex fix: comprehensive security audit fixes (#108) 2026-03-22 10:10:27 -05:00
user_token.ex feat: require email verification before first login 2026-02-14 11:28:57 -06:00
user_totp_device.ex fix TOTP enrollment with recovery codes 2026-01-31 14:54:44 -06:00