From fadea151637b8a49db96d3471347270385343492 Mon Sep 17 00:00:00 2001 From: Phillip Davis Date: Wed, 4 Mar 2026 13:33:27 -0500 Subject: [PATCH] fix: remove processing_status from ports now it's inferred from actual_foc_date (originally forgot to include new schemas commit hash) --- lib/db_port.rb | 15 +++++++++++---- lib/validators.rb | 7 ------- schemas | 2 +- test/test_port_repo.rb | 6 ++++-- 4 files changed, 16 insertions(+), 14 deletions(-) diff --git a/lib/db_port.rb b/lib/db_port.rb index 26cceb28e662d0a9e5f958f55eb8c7ea3ee093d7..c680a7de2d8ba3f07c147e41dfa08169f2caae82 100644 --- a/lib/db_port.rb +++ b/lib/db_port.rb @@ -1,18 +1,17 @@ # frozen_string_literal: true +require "date_core" require "value_semantics/monkey_patched" require_relative "./validators" class DbPort module Status - SUBMITTED = "submitted" - COMPLETE = "complete" - FOC = "foc" + SUBMITTED = "SUBMITTED" + COMPLETE = "COMPLETE" end value_semantics do id String - processing_status PortProcessingStatus actual_foc_date Either(DateTime, nil), default: nil, coerce: true updated_at DateTime, coerce: true tel ValidTelString @@ -20,6 +19,14 @@ class DbPort backend_sgx String end + def processing_status + if actual_foc_date&.< DateTime.now + Status::COMPLETE + else + Status::SUBMITTED + end + end + def self.coerce_actual_foc_date(time) time&.to_datetime end diff --git a/lib/validators.rb b/lib/validators.rb index 2bb9e62388d124e014c693c8658bb5563bbe50de..e6692544b4d4a07e9021bbd7b6868062603b12f9 100644 --- a/lib/validators.rb +++ b/lib/validators.rb @@ -5,10 +5,3 @@ module ValidTelString value.is_a?(String) && value =~ /\A\+1(\d{3})(\d{3})(\d+)\Z/ end end - -module PortProcessingStatus - def self.===(value) - value.is_a?(String) && - ["complete", "submitted", "foc"].include?(value.downcase) - end -end diff --git a/schemas b/schemas index d1c2a6e6fe23408f6f38513f4040518d95fe565c..e6f4d5c62df63b96e14c412624869411bcbbc76a 160000 --- a/schemas +++ b/schemas @@ -1 +1 @@ -Subproject commit d1c2a6e6fe23408f6f38513f4040518d95fe565c +Subproject commit e6f4d5c62df63b96e14c412624869411bcbbc76a diff --git a/test/test_port_repo.rb b/test/test_port_repo.rb index d4cbd6ed888dcf8fd4eb34126c629e523061c5e5..b357e9f2d7e219126e72f93795c0bb4bfcdfb360 100644 --- a/test/test_port_repo.rb +++ b/test/test_port_repo.rb @@ -25,7 +25,6 @@ class PortRepoDbTest < Minitest::Test rows = [ { "id" => "port1", - "processing_status" => "complete", "actual_foc_date" => DateTime.now, "updated_at" => DateTime.now, "tel" => "+12225551234", @@ -33,6 +32,9 @@ class PortRepoDbTest < Minitest::Test "backend_sgx" => "sgx" } ] + # Make sure that `processing_status` + # resolves to "complete" + sleep 1 db = FakeDbForPorts.new(rows) repo = PortRepo::Db.new(@output, db: db) @@ -41,7 +43,7 @@ class PortRepoDbTest < Minitest::Test assert_equal 1, ports.length assert_kind_of DbPort, ports[0] assert_equal "port1", ports[0].id - assert_equal "complete", ports[0].processing_status + assert_equal DbPort::Status::COMPLETE, ports[0].processing_status end em :test_list_returns_db_ports