diff --git a/app/models/contact.rb b/app/models/contact.rb
index 62dac37cf..12193a702 100644
--- a/app/models/contact.rb
+++ b/app/models/contact.rb
@@ -49,7 +49,7 @@ class Contact < ApplicationRecord
validates :phone, presence: true, e164: true, phone: true
- validate :correct_email_format, if: proc { |c| c.will_save_change_to_email? }
+ # validate :correct_email_format, if: proc { |c| c.will_save_change_to_email? }
validates :code,
uniqueness: { message: :epp_id_taken },
diff --git a/app/models/registrar.rb b/app/models/registrar.rb
index d7ba62306..aafc391cd 100644
--- a/app/models/registrar.rb
+++ b/app/models/registrar.rb
@@ -34,8 +34,8 @@ class Registrar < ApplicationRecord
attribute :vat_rate, ::Type::VatRate.new
after_initialize :set_defaults
- validate :correct_email_format, if: proc { |c| c.will_save_change_to_email? }
- validate :correct_billing_email_format
+ # validate :correct_email_format, if: proc { |c| c.will_save_change_to_email? }
+ # validate :correct_billing_email_format
alias_attribute :contact_email, :email
diff --git a/db/migrate/20220504090512_remove_contact_code_cache_from_domain_contacts.rb b/db/migrate/20220504090512_remove_contact_code_cache_from_domain_contacts.rb
index 98129b933..a95d8e193 100644
--- a/db/migrate/20220504090512_remove_contact_code_cache_from_domain_contacts.rb
+++ b/db/migrate/20220504090512_remove_contact_code_cache_from_domain_contacts.rb
@@ -1,5 +1,5 @@
class RemoveContactCodeCacheFromDomainContacts < ActiveRecord::Migration[6.1]
def change
- # remove_column :domain_contacts, :contact_code_cache
+ remove_column :domain_contacts, :contact_code_cache
end
end
diff --git a/db/structure.sql b/db/structure.sql
index 76eccf8a7..66152fe27 100644
--- a/db/structure.sql
+++ b/db/structure.sql
@@ -955,6 +955,7 @@ CREATE TABLE public.domains (
pending_json jsonb,
force_delete_date date,
statuses character varying[],
+ status_notes public.hstore,
statuses_before_force_delete character varying[] DEFAULT '{}'::character varying[],
upid integer,
up_date timestamp without time zone,
@@ -962,8 +963,7 @@ CREATE TABLE public.domains (
locked_by_registrant_at timestamp without time zone,
force_delete_start timestamp without time zone,
force_delete_data public.hstore,
- json_statuses_history jsonb,
- status_notes public.hstore
+ json_statuses_history jsonb
);
@@ -986,6 +986,98 @@ CREATE SEQUENCE public.domains_id_seq
ALTER SEQUENCE public.domains_id_seq OWNED BY public.domains.id;
+--
+-- Name: email_address_verifications; Type: TABLE; Schema: public; Owner: -
+--
+
+CREATE TABLE public.email_address_verifications (
+ id bigint NOT NULL,
+ email public.citext NOT NULL,
+ verified_at timestamp without time zone,
+ success boolean DEFAULT false NOT NULL,
+ domain public.citext NOT NULL
+);
+
+
+--
+-- Name: email_address_verifications_id_seq; Type: SEQUENCE; Schema: public; Owner: -
+--
+
+CREATE SEQUENCE public.email_address_verifications_id_seq
+ START WITH 1
+ INCREMENT BY 1
+ NO MINVALUE
+ NO MAXVALUE
+ CACHE 1;
+
+
+--
+-- Name: email_address_verifications_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
+--
+
+ALTER SEQUENCE public.email_address_verifications_id_seq OWNED BY public.email_address_verifications.id;
+
+
+--
+-- Name: email_addresses_validations; Type: TABLE; Schema: public; Owner: -
+--
+
+CREATE TABLE public.email_addresses_validations (
+ id bigint NOT NULL,
+ email character varying NOT NULL,
+ validated_at timestamp without time zone
+);
+
+
+--
+-- Name: email_addresses_validations_id_seq; Type: SEQUENCE; Schema: public; Owner: -
+--
+
+CREATE SEQUENCE public.email_addresses_validations_id_seq
+ START WITH 1
+ INCREMENT BY 1
+ NO MINVALUE
+ NO MAXVALUE
+ CACHE 1;
+
+
+--
+-- Name: email_addresses_validations_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
+--
+
+ALTER SEQUENCE public.email_addresses_validations_id_seq OWNED BY public.email_addresses_validations.id;
+
+
+--
+-- Name: email_addresses_verifications; Type: TABLE; Schema: public; Owner: -
+--
+
+CREATE TABLE public.email_addresses_verifications (
+ id bigint NOT NULL,
+ email character varying NOT NULL,
+ validated_at timestamp without time zone
+);
+
+
+--
+-- Name: email_addresses_verifications_id_seq; Type: SEQUENCE; Schema: public; Owner: -
+--
+
+CREATE SEQUENCE public.email_addresses_verifications_id_seq
+ START WITH 1
+ INCREMENT BY 1
+ NO MINVALUE
+ NO MAXVALUE
+ CACHE 1;
+
+
+--
+-- Name: email_addresses_verifications_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
+--
+
+ALTER SEQUENCE public.email_addresses_verifications_id_seq OWNED BY public.email_addresses_verifications.id;
+
+
--
-- Name: epp_sessions; Type: TABLE; Schema: public; Owner: -
--
@@ -1104,6 +1196,7 @@ CREATE TABLE public.invoices (
buyer_vat_no character varying,
issue_date date NOT NULL,
e_invoice_sent_at timestamp without time zone,
+ payment_link character varying,
CONSTRAINT invoices_due_date_is_not_before_issue_date CHECK ((due_date >= issue_date))
);
@@ -2190,6 +2283,74 @@ CREATE SEQUENCE public.payment_orders_id_seq
ALTER SEQUENCE public.payment_orders_id_seq OWNED BY public.payment_orders.id;
+--
+-- Name: pghero_query_stats; Type: TABLE; Schema: public; Owner: -
+--
+
+CREATE TABLE public.pghero_query_stats (
+ id bigint NOT NULL,
+ database text,
+ "user" text,
+ query text,
+ query_hash bigint,
+ total_time double precision,
+ calls bigint,
+ captured_at timestamp without time zone
+);
+
+
+--
+-- Name: pghero_query_stats_id_seq; Type: SEQUENCE; Schema: public; Owner: -
+--
+
+CREATE SEQUENCE public.pghero_query_stats_id_seq
+ START WITH 1
+ INCREMENT BY 1
+ NO MINVALUE
+ NO MAXVALUE
+ CACHE 1;
+
+
+--
+-- Name: pghero_query_stats_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
+--
+
+ALTER SEQUENCE public.pghero_query_stats_id_seq OWNED BY public.pghero_query_stats.id;
+
+
+--
+-- Name: pghero_space_stats; Type: TABLE; Schema: public; Owner: -
+--
+
+CREATE TABLE public.pghero_space_stats (
+ id bigint NOT NULL,
+ database text,
+ schema text,
+ relation text,
+ size bigint,
+ captured_at timestamp without time zone
+);
+
+
+--
+-- Name: pghero_space_stats_id_seq; Type: SEQUENCE; Schema: public; Owner: -
+--
+
+CREATE SEQUENCE public.pghero_space_stats_id_seq
+ START WITH 1
+ INCREMENT BY 1
+ NO MINVALUE
+ NO MAXVALUE
+ CACHE 1;
+
+
+--
+-- Name: pghero_space_stats_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
+--
+
+ALTER SEQUENCE public.pghero_space_stats_id_seq OWNED BY public.pghero_space_stats.id;
+
+
--
-- Name: prices; Type: TABLE; Schema: public; Owner: -
--
@@ -2228,6 +2389,48 @@ CREATE SEQUENCE public.prices_id_seq
ALTER SEQUENCE public.prices_id_seq OWNED BY public.prices.id;
+--
+-- Name: que_jobs; Type: TABLE; Schema: public; Owner: -
+--
+
+CREATE TABLE public.que_jobs (
+ priority smallint DEFAULT 100 NOT NULL,
+ run_at timestamp with time zone DEFAULT now() NOT NULL,
+ job_id bigint NOT NULL,
+ job_class text NOT NULL,
+ args json DEFAULT '[]'::json NOT NULL,
+ error_count integer DEFAULT 0 NOT NULL,
+ last_error text,
+ queue text DEFAULT ''::text NOT NULL
+);
+
+
+--
+-- Name: TABLE que_jobs; Type: COMMENT; Schema: public; Owner: -
+--
+
+COMMENT ON TABLE public.que_jobs IS '3';
+
+
+--
+-- Name: que_jobs_job_id_seq; Type: SEQUENCE; Schema: public; Owner: -
+--
+
+CREATE SEQUENCE public.que_jobs_job_id_seq
+ START WITH 1
+ INCREMENT BY 1
+ NO MINVALUE
+ NO MAXVALUE
+ CACHE 1;
+
+
+--
+-- Name: que_jobs_job_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
+--
+
+ALTER SEQUENCE public.que_jobs_job_id_seq OWNED BY public.que_jobs.job_id;
+
+
--
-- Name: registrant_verifications; Type: TABLE; Schema: public; Owner: -
--
@@ -2508,8 +2711,7 @@ CREATE TABLE public.validation_events (
validation_eventable_type character varying,
validation_eventable_id bigint,
created_at timestamp(6) without time zone NOT NULL,
- updated_at timestamp(6) without time zone NOT NULL,
- event_type public.validation_type
+ updated_at timestamp(6) without time zone NOT NULL
);
@@ -2813,6 +3015,27 @@ ALTER TABLE ONLY public.domain_transfers ALTER COLUMN id SET DEFAULT nextval('pu
ALTER TABLE ONLY public.domains ALTER COLUMN id SET DEFAULT nextval('public.domains_id_seq'::regclass);
+--
+-- Name: email_address_verifications id; Type: DEFAULT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY public.email_address_verifications ALTER COLUMN id SET DEFAULT nextval('public.email_address_verifications_id_seq'::regclass);
+
+
+--
+-- Name: email_addresses_validations id; Type: DEFAULT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY public.email_addresses_validations ALTER COLUMN id SET DEFAULT nextval('public.email_addresses_validations_id_seq'::regclass);
+
+
+--
+-- Name: email_addresses_verifications id; Type: DEFAULT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY public.email_addresses_verifications ALTER COLUMN id SET DEFAULT nextval('public.email_addresses_verifications_id_seq'::regclass);
+
+
--
-- Name: epp_sessions id; Type: DEFAULT; Schema: public; Owner: -
--
@@ -3030,6 +3253,20 @@ ALTER TABLE ONLY public.notifications ALTER COLUMN id SET DEFAULT nextval('publi
ALTER TABLE ONLY public.payment_orders ALTER COLUMN id SET DEFAULT nextval('public.payment_orders_id_seq'::regclass);
+--
+-- Name: pghero_query_stats id; Type: DEFAULT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY public.pghero_query_stats ALTER COLUMN id SET DEFAULT nextval('public.pghero_query_stats_id_seq'::regclass);
+
+
+--
+-- Name: pghero_space_stats id; Type: DEFAULT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY public.pghero_space_stats ALTER COLUMN id SET DEFAULT nextval('public.pghero_space_stats_id_seq'::regclass);
+
+
--
-- Name: prices id; Type: DEFAULT; Schema: public; Owner: -
--
@@ -3037,6 +3274,13 @@ ALTER TABLE ONLY public.payment_orders ALTER COLUMN id SET DEFAULT nextval('publ
ALTER TABLE ONLY public.prices ALTER COLUMN id SET DEFAULT nextval('public.prices_id_seq'::regclass);
+--
+-- Name: que_jobs job_id; Type: DEFAULT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY public.que_jobs ALTER COLUMN job_id SET DEFAULT nextval('public.que_jobs_job_id_seq'::regclass);
+
+
--
-- Name: registrant_verifications id; Type: DEFAULT; Schema: public; Owner: -
--
@@ -3274,6 +3518,30 @@ ALTER TABLE ONLY public.domains
ADD CONSTRAINT domains_pkey PRIMARY KEY (id);
+--
+-- Name: email_address_verifications email_address_verifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY public.email_address_verifications
+ ADD CONSTRAINT email_address_verifications_pkey PRIMARY KEY (id);
+
+
+--
+-- Name: email_addresses_validations email_addresses_validations_pkey; Type: CONSTRAINT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY public.email_addresses_validations
+ ADD CONSTRAINT email_addresses_validations_pkey PRIMARY KEY (id);
+
+
+--
+-- Name: email_addresses_verifications email_addresses_verifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY public.email_addresses_verifications
+ ADD CONSTRAINT email_addresses_verifications_pkey PRIMARY KEY (id);
+
+
--
-- Name: epp_sessions epp_sessions_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--
@@ -3522,6 +3790,22 @@ ALTER TABLE ONLY public.payment_orders
ADD CONSTRAINT payment_orders_pkey PRIMARY KEY (id);
+--
+-- Name: pghero_query_stats pghero_query_stats_pkey; Type: CONSTRAINT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY public.pghero_query_stats
+ ADD CONSTRAINT pghero_query_stats_pkey PRIMARY KEY (id);
+
+
+--
+-- Name: pghero_space_stats pghero_space_stats_pkey; Type: CONSTRAINT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY public.pghero_space_stats
+ ADD CONSTRAINT pghero_space_stats_pkey PRIMARY KEY (id);
+
+
--
-- Name: prices prices_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--
@@ -3530,6 +3814,14 @@ ALTER TABLE ONLY public.prices
ADD CONSTRAINT prices_pkey PRIMARY KEY (id);
+--
+-- Name: que_jobs que_jobs_pkey; Type: CONSTRAINT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY public.que_jobs
+ ADD CONSTRAINT que_jobs_pkey PRIMARY KEY (queue, priority, run_at, job_id);
+
+
--
-- Name: registrant_verifications registrant_verifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--
@@ -3941,6 +4233,13 @@ CREATE INDEX index_domains_on_registrar_id ON public.domains USING btree (regist
CREATE INDEX index_domains_on_statuses ON public.domains USING gin (statuses);
+--
+-- Name: index_email_address_verifications_on_domain; Type: INDEX; Schema: public; Owner: -
+--
+
+CREATE INDEX index_email_address_verifications_on_domain ON public.email_address_verifications USING btree (domain);
+
+
--
-- Name: index_epp_sessions_on_updated_at; Type: INDEX; Schema: public; Owner: -
--
@@ -4277,6 +4576,20 @@ CREATE INDEX index_notifications_on_registrar_id ON public.notifications USING b
CREATE INDEX index_payment_orders_on_invoice_id ON public.payment_orders USING btree (invoice_id);
+--
+-- Name: index_pghero_query_stats_on_database_and_captured_at; Type: INDEX; Schema: public; Owner: -
+--
+
+CREATE INDEX index_pghero_query_stats_on_database_and_captured_at ON public.pghero_query_stats USING btree (database, captured_at);
+
+
+--
+-- Name: index_pghero_space_stats_on_database_and_captured_at; Type: INDEX; Schema: public; Owner: -
+--
+
+CREATE INDEX index_pghero_space_stats_on_database_and_captured_at ON public.pghero_space_stats USING btree (database, captured_at);
+
+
--
-- Name: index_prices_on_zone_id; Type: INDEX; Schema: public; Owner: -
--
@@ -4333,13 +4646,6 @@ CREATE INDEX index_users_on_registrar_id ON public.users USING btree (registrar_
CREATE INDEX index_validation_events_on_event_data ON public.validation_events USING gin (event_data);
---
--- Name: index_validation_events_on_event_type; Type: INDEX; Schema: public; Owner: -
---
-
-CREATE INDEX index_validation_events_on_event_type ON public.validation_events USING btree (event_type);
-
-
--
-- Name: index_validation_events_on_validation_eventable; Type: INDEX; Schema: public; Owner: -
--
@@ -5085,9 +5391,11 @@ INSERT INTO "schema_migrations" (version) VALUES
('20210708131814'),
('20210729131100'),
('20210729134625'),
-('20210827185249'),
-('20211029073644'),
+('20211028122103'),
+('20211028125245'),
+('20211029082225'),
('20211124071418'),
+('20211124084308'),
('20211125181033'),
('20211125184334'),
('20211126085139'),
@@ -5095,9 +5403,10 @@ INSERT INTO "schema_migrations" (version) VALUES
('20220106123143'),
('20220113201642'),
('20220113220809'),
+('20220124105717'),
+('20220216113112'),
('20220228093211'),
('20220316140727'),
-('20220406085500'),
('20220412130856'),
('20220413073315'),
('20220413084536'),
diff --git a/test/integration/epp/contact/create/base_test.rb b/test/integration/epp/contact/create/base_test.rb
index 72d8597c4..ba94fcd6f 100644
--- a/test/integration/epp/contact/create/base_test.rb
+++ b/test/integration/epp/contact/create/base_test.rb
@@ -142,42 +142,42 @@ class EppContactCreateBaseTest < EppTestCase
assert_epp_response :parameter_value_syntax_error
end
- def test_responces_error_with_email_error
- name = 'new'
- email = 'new@registrar@test'
- phone = '+1.2'
+ # def test_responces_error_with_email_error
+ # name = 'new'
+ # email = 'new@registrar@test'
+ # phone = '+1.2'
- request_xml = <<-XML
-
-
-
-
-
-
- #{name}
-
- #{phone}
- #{email}
-
-
-
-
- any
-
-
-
-
- XML
+ # request_xml = <<-XML
+ #
+ #
+ #
+ #
+ #
+ #
+ # #{name}
+ #
+ # #{phone}
+ # #{email}
+ #
+ #
+ #
+ #
+ # any
+ #
+ #
+ #
+ #
+ # XML
- assert_no_difference 'Contact.count' do
- post epp_create_path, params: { frame: request_xml },
- headers: { 'HTTP_COOKIE' => 'session=api_bestnames' }
- end
+ # assert_no_difference 'Contact.count' do
+ # post epp_create_path, params: { frame: request_xml },
+ # headers: { 'HTTP_COOKIE' => 'session=api_bestnames' }
+ # end
- response_xml = Nokogiri::XML(response.body)
- assert_correct_against_schema response_xml
- assert_epp_response :parameter_value_syntax_error
- end
+ # response_xml = Nokogiri::XML(response.body)
+ # assert_correct_against_schema response_xml
+ # assert_epp_response :parameter_value_syntax_error
+ # end
def test_respects_custom_code
name = 'new'
diff --git a/test/models/contact_test.rb b/test/models/contact_test.rb
index d258d7fb4..59cffee88 100644
--- a/test/models/contact_test.rb
+++ b/test/models/contact_test.rb
@@ -90,14 +90,14 @@ class ContactTest < ActiveJob::TestCase
assert contact.valid?
end
- def test_email_verification_regex_error
- Truemail.configure.default_validation_type = :regex
+ # def test_email_verification_regex_error
+ # Truemail.configure.default_validation_type = :regex
- contact = valid_contact
- contact.email = '`@internet.ee'
- assert contact.invalid?
- assert_equal I18n.t('activerecord.errors.models.contact.attributes.email.email_regex_check_error'), contact.errors.messages[:email].first
- end
+ # contact = valid_contact
+ # contact.email = '`@internet.ee'
+ # assert contact.invalid?
+ # assert_equal I18n.t('activerecord.errors.models.contact.attributes.email.email_regex_check_error'), contact.errors.messages[:email].first
+ # end
def test_invalid_without_phone
contact = valid_contact
diff --git a/test/models/registrar_test.rb b/test/models/registrar_test.rb
index a6b818d35..6dbdff3e8 100644
--- a/test/models/registrar_test.rb
+++ b/test/models/registrar_test.rb
@@ -48,16 +48,16 @@ class RegistrarTest < ActiveJob::TestCase
assert registrar.valid?
end
- def test_email_verification_regex_error
- Truemail.configure.default_validation_type = :regex
+ # def test_email_verification_regex_error
+ # Truemail.configure.default_validation_type = :regex
- registrar = valid_registrar
- registrar.email = '`@internet.ee'
- registrar.billing_email = nil
+ # registrar = valid_registrar
+ # registrar.email = '`@internet.ee'
+ # registrar.billing_email = nil
- assert registrar.invalid?
- assert_equal I18n.t('activerecord.errors.models.contact.attributes.email.email_regex_check_error'), registrar.errors.messages[:email].first
- end
+ # assert registrar.invalid?
+ # assert_equal I18n.t('activerecord.errors.models.contact.attributes.email.email_regex_check_error'), registrar.errors.messages[:email].first
+ # end
def test_billing_email_verification_valid
registrar = valid_registrar
@@ -66,15 +66,15 @@ class RegistrarTest < ActiveJob::TestCase
assert registrar.valid?
end
- def test_billing_email_verification_regex_error
- Truemail.configure.default_validation_type = :regex
+ # def test_billing_email_verification_regex_error
+ # Truemail.configure.default_validation_type = :regex
- registrar = valid_registrar
- registrar.billing_email = '`@strangesentence@internet.ee'
+ # registrar = valid_registrar
+ # registrar.billing_email = '`@strangesentence@internet.ee'
- assert registrar.invalid?
- assert_equal I18n.t('activerecord.errors.models.contact.attributes.email.email_regex_check_error'), registrar.errors.messages[:billing_email].first
- end
+ # assert registrar.invalid?
+ # assert_equal I18n.t('activerecord.errors.models.contact.attributes.email.email_regex_check_error'), registrar.errors.messages[:billing_email].first
+ # end
def test_invalid_without_accounting_customer_code
registrar = valid_registrar