diff --git a/app/controllers/admin/domains/force_delete_controller.rb b/app/controllers/admin/domains/force_delete_controller.rb index 5d72739d5..155b4fa41 100644 --- a/app/controllers/admin/domains/force_delete_controller.rb +++ b/app/controllers/admin/domains/force_delete_controller.rb @@ -6,7 +6,8 @@ module Admin domain.transaction do domain.schedule_force_delete - domain.registrar.messages.create!(body: t('force_delete_set_on_domain', domain_name: domain.name)) + domain.registrar.notifications.create!(body: t('force_delete_set_on_domain', + domain_name: domain.name)) if notify_by_email? DomainDeleteMailer.forced(domain: domain, diff --git a/app/controllers/epp/polls_controller.rb b/app/controllers/epp/polls_controller.rb index 44f8afdc1..ef41bfaf7 100644 --- a/app/controllers/epp/polls_controller.rb +++ b/app/controllers/epp/polls_controller.rb @@ -9,12 +9,12 @@ class Epp::PollsController < EppController private def req_poll - @message = current_user.queued_messages.last + @notification = current_user.queued_notifications.last - render_epp_response 'epp/poll/poll_no_messages' and return unless @message - if @message.attached_obj_type && @message.attached_obj_id + render_epp_response 'epp/poll/poll_no_messages' and return unless @notification + if @notification.attached_obj_type && @notification.attached_obj_id begin - @object = Object.const_get(@message.attached_obj_type).find(@message.attached_obj_id) + @object = Object.const_get(@notification.attached_obj_type).find(@notification.attached_obj_id) rescue => problem # the data model might be inconsistent; or ... # this could happen if the registrar does not dequeue messages, and then the domain was deleted @@ -28,7 +28,7 @@ class Epp::PollsController < EppController end end - if @message.attached_obj_type == 'Keyrelay' + if @notification.attached_obj_type == 'Keyrelay' render_epp_response 'epp/poll/poll_keyrelay' else render_epp_response 'epp/poll/poll_req' @@ -36,9 +36,9 @@ class Epp::PollsController < EppController end def ack_poll - @message = current_user.queued_messages.find_by(id: params[:parsed_frame].css('poll').first['msgID']) + @notification = current_user.queued_notifications.find_by(id: params[:parsed_frame].css('poll').first['msgID']) - unless @message + unless @notification epp_errors << { code: '2303', msg: I18n.t('message_was_not_found'), @@ -47,7 +47,7 @@ class Epp::PollsController < EppController handle_errors and return end - handle_errors(@message) and return unless @message.dequeue + handle_errors(@notification) and return unless @notification.dequeue render_epp_response 'epp/poll/poll_ack' end @@ -56,6 +56,6 @@ class Epp::PollsController < EppController end def resource - @message + @notification end end diff --git a/app/jobs/domain_delete_confirm_job.rb b/app/jobs/domain_delete_confirm_job.rb index 3cc13bcd3..28a46dbbe 100644 --- a/app/jobs/domain_delete_confirm_job.rb +++ b/app/jobs/domain_delete_confirm_job.rb @@ -7,13 +7,13 @@ class DomainDeleteConfirmJob < Que::Job case action when RegistrantVerification::CONFIRMED - domain.poll_message!(:poll_pending_delete_confirmed_by_registrant) + domain.notify_registrar(:poll_pending_delete_confirmed_by_registrant) domain.apply_pending_delete! raise_errors!(domain) when RegistrantVerification::REJECTED domain.statuses.delete(DomainStatus::PENDING_DELETE_CONFIRMATION) - domain.poll_message!(:poll_pending_delete_rejected_by_registrant) + domain.notify_registrar(:poll_pending_delete_rejected_by_registrant) domain.cancel_pending_delete domain.save(validate: false) diff --git a/app/jobs/domain_delete_job.rb b/app/jobs/domain_delete_job.rb index 7d86e9885..15195b588 100644 --- a/app/jobs/domain_delete_job.rb +++ b/app/jobs/domain_delete_job.rb @@ -8,7 +8,7 @@ class DomainDeleteJob < Que::Job domain.destroy bye_bye = domain.versions.last - domain.registrar.messages.create!( + domain.registrar.notifications.create!( body: "#{I18n.t(:domain_deleted)}: #{domain.name}", attached_obj_id: bye_bye.id, attached_obj_type: bye_bye.class.to_s diff --git a/app/jobs/domain_update_confirm_job.rb b/app/jobs/domain_update_confirm_job.rb index c661c7b6b..376858c42 100644 --- a/app/jobs/domain_update_confirm_job.rb +++ b/app/jobs/domain_update_confirm_job.rb @@ -8,7 +8,7 @@ class DomainUpdateConfirmJob < Que::Job case action when RegistrantVerification::CONFIRMED old_registrant = domain.registrant - domain.poll_message!(:poll_pending_update_confirmed_by_registrant) + domain.notify_registrar(:poll_pending_update_confirmed_by_registrant) raise_errors!(domain) domain.apply_pending_update! @@ -22,7 +22,7 @@ class DomainUpdateConfirmJob < Que::Job registrar: domain.registrar, registrant: domain.registrant).deliver_now - domain.poll_message!(:poll_pending_update_rejected_by_registrant) + domain.notify_registrar(:poll_pending_update_rejected_by_registrant) domain.preclean_pendings domain.clean_pendings! diff --git a/app/models/api_user.rb b/app/models/api_user.rb index ce32c4045..8d5018568 100644 --- a/app/models/api_user.rb +++ b/app/models/api_user.rb @@ -79,8 +79,8 @@ class ApiUser < User username end - def queued_messages - registrar.messages.queued + def queued_notifications + registrar.notifications.queued end def registrar_pki_ok?(crt, cn) diff --git a/app/models/domain.rb b/app/models/domain.rb index 33f8a8f09..d39e86272 100644 --- a/app/models/domain.rb +++ b/app/models/domain.rb @@ -270,8 +270,8 @@ class Domain < ActiveRecord::Base true end - def poll_message!(message_key) - registrar.messages.create!( + def notify_registrar(message_key) + registrar.notifications.create!( body: "#{I18n.t(message_key)}: #{name}", attached_obj_id: id, attached_obj_type: self.class.to_s diff --git a/app/models/domain_transfer.rb b/app/models/domain_transfer.rb index 6982f36b6..2ac35a0db 100644 --- a/app/models/domain_transfer.rb +++ b/app/models/domain_transfer.rb @@ -73,8 +73,8 @@ class DomainTransfer < ActiveRecord::Base old_contacts_codes = domain.contacts.pluck(:code).sort.uniq.join(', ') old_registrant_code = domain.registrant.code - old_registrar.messages.create!( - body: I18n.t('messages.texts.domain_transfer', + old_registrar.notifications.create!( + body: I18n.t('notifications.texts.domain_transfer', domain_name: domain.name, old_contacts_codes: old_contacts_codes, old_registrant_code: old_registrant_code), diff --git a/app/models/epp/domain.rb b/app/models/epp/domain.rb index 749f5310c..2bfd10215 100644 --- a/app/models/epp/domain.rb +++ b/app/models/epp/domain.rb @@ -625,7 +625,7 @@ class Epp::Domain < Domain ) if dt.pending? - registrar.messages.create!( + registrar.notifications.create!( body: I18n.t('transfer_requested'), attached_obj_id: dt.id, attached_obj_type: dt.class.to_s @@ -727,7 +727,7 @@ class Epp::Domain < Domain return false unless valid? - registrar.messages.create!( + registrar.notifications.create!( body: 'Key Relay action completed successfully.', attached_obj_type: kr.class.to_s, attached_obj_id: kr.id diff --git a/app/models/message.rb b/app/models/notification.rb similarity index 72% rename from app/models/message.rb rename to app/models/notification.rb index 1f01842c8..09f9377da 100644 --- a/app/models/message.rb +++ b/app/models/notification.rb @@ -1,5 +1,5 @@ -class Message < ActiveRecord::Base - include Versions # version/message_version.rb +class Notification < ActiveRecord::Base + include Versions # version/notification_version.rb belongs_to :registrar, required: true before_create -> { self.queued = true } diff --git a/app/models/registrar.rb b/app/models/registrar.rb index de02d42a7..611dfc562 100644 --- a/app/models/registrar.rb +++ b/app/models/registrar.rb @@ -4,7 +4,7 @@ class Registrar < ActiveRecord::Base has_many :domains, dependent: :restrict_with_error has_many :contacts, dependent: :restrict_with_error has_many :api_users, dependent: :restrict_with_error - has_many :messages + has_many :notifications has_many :invoices, foreign_key: 'buyer_id' has_many :accounts, dependent: :destroy has_many :nameservers, through: :domains diff --git a/app/models/version/message_version.rb b/app/models/version/message_version.rb deleted file mode 100644 index 548c11dd6..000000000 --- a/app/models/version/message_version.rb +++ /dev/null @@ -1,5 +0,0 @@ -class MessageVersion < PaperTrail::Version - include VersionSession - self.table_name = :log_messages - self.sequence_name = :log_messages_id_seq -end diff --git a/app/models/version/notification_version.rb b/app/models/version/notification_version.rb new file mode 100644 index 000000000..0b66aabe5 --- /dev/null +++ b/app/models/version/notification_version.rb @@ -0,0 +1,5 @@ +class NotificationVersion < PaperTrail::Version + include VersionSession + self.table_name = :log_notifications + self.sequence_name = :log_notifications_id_seq +end diff --git a/app/views/epp/poll/poll_ack.xml.builder b/app/views/epp/poll/poll_ack.xml.builder index 05ea8b8d0..1ee6fa315 100644 --- a/app/views/epp/poll/poll_ack.xml.builder +++ b/app/views/epp/poll/poll_ack.xml.builder @@ -4,7 +4,7 @@ xml.epp_head do xml.msg 'Command completed successfully' end - xml.tag!('msgQ', 'count' => current_user.queued_messages.count, 'id' => @message.id) + xml.tag!('msgQ', 'count' => current_user.queued_notifications.count, 'id' => @notification.id) render('epp/shared/trID', builder: xml) end diff --git a/app/views/epp/poll/poll_keyrelay.xml.builder b/app/views/epp/poll/poll_keyrelay.xml.builder index 7c2ca6c5a..c79b2a574 100644 --- a/app/views/epp/poll/poll_keyrelay.xml.builder +++ b/app/views/epp/poll/poll_keyrelay.xml.builder @@ -10,9 +10,9 @@ xml.epp( xml.msg 'Command completed successfully; ack to dequeue' end - xml.tag!('msgQ', 'count' => current_user.queued_messages.count, 'id' => @message.id) do - xml.qDate @message.created_at.try(:iso8601) - xml.msg @message.body + xml.tag!('msgQ', 'count' => current_user.queued_notifications.count, 'id' => @notification.id) do + xml.qDate @notification.created_at.try(:iso8601) + xml.msg @notification.body end xml.resData do diff --git a/app/views/epp/poll/poll_req.xml.builder b/app/views/epp/poll/poll_req.xml.builder index d5da707a6..f483e017b 100644 --- a/app/views/epp/poll/poll_req.xml.builder +++ b/app/views/epp/poll/poll_req.xml.builder @@ -4,12 +4,12 @@ xml.epp_head do xml.msg 'Command completed successfully; ack to dequeue' end - xml.tag!('msgQ', 'count' => current_user.queued_messages.count, 'id' => @message.id) do - xml.qDate @message.created_at.try(:iso8601) - xml.msg @message.body + xml.tag!('msgQ', 'count' => current_user.queued_notifications.count, 'id' => @notification.id) do + xml.qDate @notification.created_at.try(:iso8601) + xml.msg @notification.body end - if @message.attached_obj_type == 'DomainTransfer' + if @notification.attached_obj_type == 'DomainTransfer' xml.resData do xml << render('epp/domains/partials/transfer', builder: xml, dt: @object) end if @object diff --git a/config/locales/en.yml b/config/locales/en.yml index 2afbb45a5..dbdfb3f0c 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -486,7 +486,6 @@ en: message: 'Message' message_no: 'Message #%{id}' queue_date: 'Queue date' - messages_in_queue: 'Messages in queue' you_have_no_new_messages: 'You have no new messages' message_id: 'Message ID' trStatus: 'Status' diff --git a/config/locales/messages.en.yml b/config/locales/notifications.en.yml similarity index 92% rename from config/locales/messages.en.yml rename to config/locales/notifications.en.yml index 0c85bb49c..46e03c689 100644 --- a/config/locales/messages.en.yml +++ b/config/locales/notifications.en.yml @@ -1,5 +1,5 @@ en: - messages: + notifications: texts: domain_transfer: >- Transfer of domain %{domain_name} has been approved. diff --git a/db/migrate/20180823161237_rename_messages_to_notifications.rb b/db/migrate/20180823161237_rename_messages_to_notifications.rb new file mode 100644 index 000000000..ecd0e9b1e --- /dev/null +++ b/db/migrate/20180823161237_rename_messages_to_notifications.rb @@ -0,0 +1,5 @@ +class RenameMessagesToNotifications < ActiveRecord::Migration + def change + rename_table :messages, :notifications + end +end diff --git a/db/migrate/20180823163548_rename_log_messages_to_log_notifications.rb b/db/migrate/20180823163548_rename_log_messages_to_log_notifications.rb new file mode 100644 index 000000000..70dcbf50a --- /dev/null +++ b/db/migrate/20180823163548_rename_log_messages_to_log_notifications.rb @@ -0,0 +1,5 @@ +class RenameLogMessagesToLogNotifications < ActiveRecord::Migration + def change + rename_table :log_messages, :log_notifications + end +end diff --git a/db/structure.sql b/db/structure.sql index 3bd6939f6..d1f6adb36 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -1651,44 +1651,6 @@ CREATE SEQUENCE public.log_keyrelays_id_seq ALTER SEQUENCE public.log_keyrelays_id_seq OWNED BY public.log_keyrelays.id; --- --- Name: log_messages; Type: TABLE; Schema: public; Owner: -; Tablespace: --- - -CREATE TABLE public.log_messages ( - id integer NOT NULL, - item_type character varying NOT NULL, - item_id integer NOT NULL, - event character varying NOT NULL, - whodunnit character varying, - object json, - object_changes json, - created_at timestamp without time zone, - session character varying, - children json, - uuid character varying -); - - --- --- Name: log_messages_id_seq; Type: SEQUENCE; Schema: public; Owner: - --- - -CREATE SEQUENCE public.log_messages_id_seq - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - --- --- Name: log_messages_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - --- - -ALTER SEQUENCE public.log_messages_id_seq OWNED BY public.log_messages.id; - - -- -- Name: log_nameservers; Type: TABLE; Schema: public; Owner: -; Tablespace: -- @@ -1727,6 +1689,44 @@ CREATE SEQUENCE public.log_nameservers_id_seq ALTER SEQUENCE public.log_nameservers_id_seq OWNED BY public.log_nameservers.id; +-- +-- Name: log_notifications; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- + +CREATE TABLE public.log_notifications ( + id integer NOT NULL, + item_type character varying NOT NULL, + item_id integer NOT NULL, + event character varying NOT NULL, + whodunnit character varying, + object json, + object_changes json, + created_at timestamp without time zone, + session character varying, + children json, + uuid character varying +); + + +-- +-- Name: log_notifications_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE public.log_notifications_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: log_notifications_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE public.log_notifications_id_seq OWNED BY public.log_notifications.id; + + -- -- Name: log_registrars; Type: TABLE; Schema: public; Owner: -; Tablespace: -- @@ -1954,43 +1954,6 @@ CREATE SEQUENCE public.mail_templates_id_seq ALTER SEQUENCE public.mail_templates_id_seq OWNED BY public.mail_templates.id; --- --- Name: messages; Type: TABLE; Schema: public; Owner: -; Tablespace: --- - -CREATE TABLE public.messages ( - id integer NOT NULL, - registrar_id integer NOT NULL, - body character varying NOT NULL, - attached_obj_type character varying, - attached_obj_id integer, - queued boolean, - created_at timestamp without time zone, - updated_at timestamp without time zone, - creator_str character varying, - updator_str character varying -); - - --- --- Name: messages_id_seq; Type: SEQUENCE; Schema: public; Owner: - --- - -CREATE SEQUENCE public.messages_id_seq - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - --- --- Name: messages_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - --- - -ALTER SEQUENCE public.messages_id_seq OWNED BY public.messages.id; - - -- -- Name: nameservers; Type: TABLE; Schema: public; Owner: -; Tablespace: -- @@ -2029,6 +1992,43 @@ CREATE SEQUENCE public.nameservers_id_seq ALTER SEQUENCE public.nameservers_id_seq OWNED BY public.nameservers.id; +-- +-- Name: notifications; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- + +CREATE TABLE public.notifications ( + id integer NOT NULL, + registrar_id integer NOT NULL, + body character varying NOT NULL, + attached_obj_type character varying, + attached_obj_id integer, + queued boolean, + created_at timestamp without time zone, + updated_at timestamp without time zone, + creator_str character varying, + updator_str character varying +); + + +-- +-- Name: notifications_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE public.notifications_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: notifications_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE public.notifications_id_seq OWNED BY public.notifications.id; + + -- -- Name: prices; Type: TABLE; Schema: public; Owner: -; Tablespace: -- @@ -2714,14 +2714,14 @@ ALTER TABLE ONLY public.log_keyrelays ALTER COLUMN id SET DEFAULT nextval('publi -- Name: id; Type: DEFAULT; Schema: public; Owner: - -- -ALTER TABLE ONLY public.log_messages ALTER COLUMN id SET DEFAULT nextval('public.log_messages_id_seq'::regclass); +ALTER TABLE ONLY public.log_nameservers ALTER COLUMN id SET DEFAULT nextval('public.log_nameservers_id_seq'::regclass); -- -- Name: id; Type: DEFAULT; Schema: public; Owner: - -- -ALTER TABLE ONLY public.log_nameservers ALTER COLUMN id SET DEFAULT nextval('public.log_nameservers_id_seq'::regclass); +ALTER TABLE ONLY public.log_notifications ALTER COLUMN id SET DEFAULT nextval('public.log_notifications_id_seq'::regclass); -- @@ -2770,14 +2770,14 @@ ALTER TABLE ONLY public.mail_templates ALTER COLUMN id SET DEFAULT nextval('publ -- Name: id; Type: DEFAULT; Schema: public; Owner: - -- -ALTER TABLE ONLY public.messages ALTER COLUMN id SET DEFAULT nextval('public.messages_id_seq'::regclass); +ALTER TABLE ONLY public.nameservers ALTER COLUMN id SET DEFAULT nextval('public.nameservers_id_seq'::regclass); -- -- Name: id; Type: DEFAULT; Schema: public; Owner: - -- -ALTER TABLE ONLY public.nameservers ALTER COLUMN id SET DEFAULT nextval('public.nameservers_id_seq'::regclass); +ALTER TABLE ONLY public.notifications ALTER COLUMN id SET DEFAULT nextval('public.notifications_id_seq'::regclass); -- @@ -3129,14 +3129,6 @@ ALTER TABLE ONLY public.log_keyrelays ADD CONSTRAINT log_keyrelays_pkey PRIMARY KEY (id); --- --- Name: log_messages_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: --- - -ALTER TABLE ONLY public.log_messages - ADD CONSTRAINT log_messages_pkey PRIMARY KEY (id); - - -- -- Name: log_nameservers_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- @@ -3145,6 +3137,14 @@ ALTER TABLE ONLY public.log_nameservers ADD CONSTRAINT log_nameservers_pkey PRIMARY KEY (id); +-- +-- Name: log_notifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- + +ALTER TABLE ONLY public.log_notifications + ADD CONSTRAINT log_notifications_pkey PRIMARY KEY (id); + + -- -- Name: log_registrars_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- @@ -3193,14 +3193,6 @@ ALTER TABLE ONLY public.mail_templates ADD CONSTRAINT mail_templates_pkey PRIMARY KEY (id); --- --- Name: messages_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: --- - -ALTER TABLE ONLY public.messages - ADD CONSTRAINT messages_pkey PRIMARY KEY (id); - - -- -- Name: nameservers_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- @@ -3209,6 +3201,14 @@ ALTER TABLE ONLY public.nameservers ADD CONSTRAINT nameservers_pkey PRIMARY KEY (id); +-- +-- Name: notifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- + +ALTER TABLE ONLY public.notifications + ADD CONSTRAINT notifications_pkey PRIMARY KEY (id); + + -- -- Name: prices_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- @@ -3788,20 +3788,6 @@ CREATE INDEX index_log_keyrelays_on_item_type_and_item_id ON public.log_keyrelay CREATE INDEX index_log_keyrelays_on_whodunnit ON public.log_keyrelays USING btree (whodunnit); --- --- Name: index_log_messages_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: --- - -CREATE INDEX index_log_messages_on_item_type_and_item_id ON public.log_messages USING btree (item_type, item_id); - - --- --- Name: index_log_messages_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: --- - -CREATE INDEX index_log_messages_on_whodunnit ON public.log_messages USING btree (whodunnit); - - -- -- Name: index_log_nameservers_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- @@ -3816,6 +3802,20 @@ CREATE INDEX index_log_nameservers_on_item_type_and_item_id ON public.log_namese CREATE INDEX index_log_nameservers_on_whodunnit ON public.log_nameservers USING btree (whodunnit); +-- +-- Name: index_log_notifications_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- + +CREATE INDEX index_log_notifications_on_item_type_and_item_id ON public.log_notifications USING btree (item_type, item_id); + + +-- +-- Name: index_log_notifications_on_whodunnit; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- + +CREATE INDEX index_log_notifications_on_whodunnit ON public.log_notifications USING btree (whodunnit); + + -- -- Name: index_log_registrars_on_item_type_and_item_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- @@ -3872,13 +3872,6 @@ CREATE INDEX index_log_users_on_item_type_and_item_id ON public.log_users USING CREATE INDEX index_log_users_on_whodunnit ON public.log_users USING btree (whodunnit); --- --- Name: index_messages_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: --- - -CREATE INDEX index_messages_on_registrar_id ON public.messages USING btree (registrar_id); - - -- -- Name: index_nameservers_on_domain_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- @@ -3886,6 +3879,13 @@ CREATE INDEX index_messages_on_registrar_id ON public.messages USING btree (regi CREATE INDEX index_nameservers_on_domain_id ON public.nameservers USING btree (domain_id); +-- +-- Name: index_notifications_on_registrar_id; Type: INDEX; Schema: public; Owner: -; Tablespace: +-- + +CREATE INDEX index_notifications_on_registrar_id ON public.notifications USING btree (registrar_id); + + -- -- Name: index_prices_on_zone_id; Type: INDEX; Schema: public; Owner: -; Tablespace: -- @@ -4101,7 +4101,7 @@ ALTER TABLE ONLY public.account_activities -- Name: messages_registrar_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - -- -ALTER TABLE ONLY public.messages +ALTER TABLE ONLY public.notifications ADD CONSTRAINT messages_registrar_id_fk FOREIGN KEY (registrar_id) REFERENCES public.registrars(id); @@ -4759,3 +4759,7 @@ INSERT INTO schema_migrations (version) VALUES ('20180613030330'); INSERT INTO schema_migrations (version) VALUES ('20180613045614'); +INSERT INTO schema_migrations (version) VALUES ('20180823161237'); + +INSERT INTO schema_migrations (version) VALUES ('20180823163548'); + diff --git a/spec/models/domain_spec.rb b/spec/models/domain_spec.rb index 6b282d651..1c00a9a4d 100644 --- a/spec/models/domain_spec.rb +++ b/spec/models/domain_spec.rb @@ -251,10 +251,10 @@ RSpec.describe Domain do @domain.statuses = DomainStatus::OK # restore end - it 'should add poll message to registrar' do + it 'should notify registrar' do domain = create(:domain, name: 'testpollmessage123.ee') - domain.poll_message!(:poll_pending_update_confirmed_by_registrant) - domain.registrar.messages.first.body.should == 'Registrant confirmed domain update: testpollmessage123.ee' + domain.notify_registrar(:poll_pending_update_confirmed_by_registrant) + domain.registrar.notifications.first.body.should == 'Registrant confirmed domain update: testpollmessage123.ee' end context 'about registrant update confirm' do diff --git a/test/fixtures/messages.yml b/test/fixtures/notifications.yml similarity index 100% rename from test/fixtures/messages.yml rename to test/fixtures/notifications.yml diff --git a/test/integration/api/domain_transfers_test.rb b/test/integration/api/domain_transfers_test.rb index d439a64e5..12c8351f6 100644 --- a/test/integration/api/domain_transfers_test.rb +++ b/test/integration/api/domain_transfers_test.rb @@ -47,7 +47,7 @@ class APIDomainTransfersTest < ApplicationIntegrationTest def test_notifies_old_registrar @old_registrar = @domain.registrar - assert_difference -> { @old_registrar.messages.count } do + assert_difference -> { @old_registrar.notifications.count } do post '/repp/v1/domain_transfers', request_params, { 'HTTP_AUTHORIZATION' => http_auth_key } end end diff --git a/test/integration/epp/domain/transfer/request_test.rb b/test/integration/epp/domain/transfer/request_test.rb index 6335fb27e..d399b6753 100644 --- a/test/integration/epp/domain/transfer/request_test.rb +++ b/test/integration/epp/domain/transfer/request_test.rb @@ -43,7 +43,7 @@ class EppDomainTransferRequestTest < ApplicationIntegrationTest def test_notifies_old_registrar @old_registrar = @domain.registrar - assert_difference -> { @old_registrar.messages.count } do + assert_difference -> { @old_registrar.notifications.count } do post '/epp/command/transfer', { frame: request_xml }, { 'HTTP_COOKIE' => 'session=api_goodnames' } end end diff --git a/test/integration/epp/poll_test.rb b/test/integration/epp/poll_test.rb index 2cf5c4254..71d74d622 100644 --- a/test/integration/epp/poll_test.rb +++ b/test/integration/epp/poll_test.rb @@ -2,8 +2,8 @@ require 'test_helper' class EppPollTest < ApplicationIntegrationTest # Deliberately does not conform to RFC5730, which requires the first message to be returned - def test_return_latest_message_when_queue_is_not_empty - message = messages(:domain_deleted) + def test_return_latest_notification_when_queue_is_not_empty + notification = notifications(:domain_deleted) request_xml = <<-XML @@ -20,13 +20,13 @@ class EppPollTest < ApplicationIntegrationTest assert_equal 1301.to_s, response_xml.at_css('result')[:code] assert_equal 1, response_xml.css('result').size assert_equal 2.to_s, response_xml.at_css('msgQ')[:count] - assert_equal message.id.to_s, response_xml.at_css('msgQ')[:id] + assert_equal notification.id.to_s, response_xml.at_css('msgQ')[:id] assert_equal Time.zone.parse('2010-07-05').iso8601, response_xml.at_css('msgQ qDate').text assert_equal 'Your domain has been deleted', response_xml.at_css('msgQ msg').text end - def test_no_messages_in_queue - registrars(:bestnames).messages.delete_all(:delete_all) + def test_no_notifications + registrars(:bestnames).notifications.delete_all(:delete_all) request_xml = <<-XML @@ -44,49 +44,49 @@ class EppPollTest < ApplicationIntegrationTest assert_equal 1, response_xml.css('result').size end - def test_dequeue_message - message = messages(:greeting) + def test_dequeue_notification + notification = notifications(:greeting) request_xml = <<-XML - + XML post '/epp/command/poll', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' - message.reload + notification.reload response_xml = Nokogiri::XML(response.body) - assert_not message.queued? + assert_not notification.queued? assert_equal 1000.to_s, response_xml.at_css('result')[:code] assert_equal 1, response_xml.css('result').size assert_equal 1.to_s, response_xml.at_css('msgQ')[:count] - assert_equal message.id.to_s, response_xml.at_css('msgQ')[:id] + assert_equal notification.id.to_s, response_xml.at_css('msgQ')[:id] end - def test_message_of_other_registrars_cannot_be_dequeued - message = messages(:farewell) + def test_notification_of_other_registrars_cannot_be_dequeued + notification = notifications(:farewell) request_xml = <<-XML - + XML post '/epp/command/poll', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' response_xml = Nokogiri::XML(response.body) - message.reload + notification.reload - assert message.queued? + assert notification.queued? assert_equal 2303.to_s, response_xml.at_css('result')[:code] end - def test_message_not_found + def test_notification_not_found request_xml = <<-XML diff --git a/test/jobs/domain_delete_confirm_job_test.rb b/test/jobs/domain_delete_confirm_job_test.rb index 9127ca628..fcd956213 100644 --- a/test/jobs/domain_delete_confirm_job_test.rb +++ b/test/jobs/domain_delete_confirm_job_test.rb @@ -18,19 +18,19 @@ class DomainDeleteConfirmJobTest < ActiveSupport::TestCase super end - def test_rejected_registrant_verification_polls_a_message + def test_rejected_registrant_verification_notifies_registrar DomainDeleteConfirmJob.enqueue(@domain.id, RegistrantVerification::REJECTED) - last_registrar_message = @domain.registrar.messages.last - assert_equal(last_registrar_message.attached_obj_id, @domain.id) - assert_equal(last_registrar_message.body, 'Registrant rejected domain deletion: shop.test') + last_registrar_notification = @domain.registrar.notifications.last + assert_equal(last_registrar_notification.attached_obj_id, @domain.id) + assert_equal(last_registrar_notification.body, 'Registrant rejected domain deletion: shop.test') end - def test_accepted_registrant_verification_polls_a_message + def test_accepted_registrant_verification_notifies_registrar DomainDeleteConfirmJob.enqueue(@domain.id, RegistrantVerification::CONFIRMED) - last_registrar_message = @domain.registrar.messages.last - assert_equal(last_registrar_message.attached_obj_id, @domain.id) - assert_equal(last_registrar_message.body, 'Registrant confirmed domain deletion: shop.test') + last_registrar_notification = @domain.registrar.notifications.last + assert_equal(last_registrar_notification.attached_obj_id, @domain.id) + assert_equal(last_registrar_notification.body, 'Registrant confirmed domain deletion: shop.test') end end diff --git a/test/jobs/domain_update_confirm_job_test.rb b/test/jobs/domain_update_confirm_job_test.rb index c507e2c98..fdbf0feb4 100644 --- a/test/jobs/domain_update_confirm_job_test.rb +++ b/test/jobs/domain_update_confirm_job_test.rb @@ -18,19 +18,19 @@ class DomainUpdateConfirmJobTest < ActiveSupport::TestCase super end - def test_rejected_registrant_verification_polls_a_message + def test_rejected_registrant_verification_notifies_registrar DomainUpdateConfirmJob.enqueue(@domain.id, RegistrantVerification::REJECTED) - last_registrar_message = @domain.registrar.messages.last - assert_equal(last_registrar_message.attached_obj_id, @domain.id) - assert_equal(last_registrar_message.body, 'Registrant rejected domain update: shop.test') + last_registrar_notification = @domain.registrar.notifications.last + assert_equal(last_registrar_notification.attached_obj_id, @domain.id) + assert_equal(last_registrar_notification.body, 'Registrant rejected domain update: shop.test') end - def test_accepted_registrant_verification_polls_a_message + def test_accepted_registrant_verification_notifies_registrar DomainUpdateConfirmJob.enqueue(@domain.id, RegistrantVerification::CONFIRMED) - last_registrar_message = @domain.registrar.messages.last - assert_equal(last_registrar_message.attached_obj_id, @domain.id) - assert_equal(last_registrar_message.body, 'Registrant confirmed domain update: shop.test') + last_registrar_notification = @domain.registrar.notifications.last + assert_equal(last_registrar_notification.attached_obj_id, @domain.id) + assert_equal(last_registrar_notification.body, 'Registrant confirmed domain update: shop.test') end end diff --git a/test/models/domain_transfer_test.rb b/test/models/domain_transfer_test.rb index 8c7494571..16c8fa6d8 100644 --- a/test/models/domain_transfer_test.rb +++ b/test/models/domain_transfer_test.rb @@ -14,7 +14,7 @@ class DomainTransferTest < ActiveSupport::TestCase def test_notifies_old_registrar_on_approval old_registrar = @domain_transfer.old_registrar - assert_difference -> { old_registrar.messages.count } do + assert_difference -> { old_registrar.notifications.count } do @domain_transfer.approve end @@ -24,9 +24,9 @@ class DomainTransferTest < ActiveSupport::TestCase id = @domain_transfer.id class_name = @domain_transfer.class.name - message = old_registrar.messages.last - assert_equal body, message.body - assert_equal id, message.attached_obj_id - assert_equal class_name, message.attached_obj_type + notification = old_registrar.notifications.last + assert_equal body, notification.body + assert_equal id, notification.attached_obj_id + assert_equal class_name, notification.attached_obj_type end end diff --git a/test/models/message_test.rb b/test/models/message_test.rb deleted file mode 100644 index ba2203d8a..000000000 --- a/test/models/message_test.rb +++ /dev/null @@ -1,27 +0,0 @@ -require 'test_helper' - -class MessageTest < ActiveSupport::TestCase - setup do - @message = messages(:greeting) - end - - def test_valid - assert @message.valid? - end - - def test_invalid_without_body - @message.body = nil - assert @message.invalid? - end - - def test_invalid_without_registrar - @message.registrar = nil - assert @message.invalid? - end - - def test_dequeue - @message.dequeue - @message.reload - assert_not @message.queued? - end -end \ No newline at end of file diff --git a/test/models/notification_test.rb b/test/models/notification_test.rb new file mode 100644 index 000000000..cd85532f0 --- /dev/null +++ b/test/models/notification_test.rb @@ -0,0 +1,27 @@ +require 'test_helper' + +class NotificationTest < ActiveSupport::TestCase + setup do + @notification = notifications(:greeting) + end + + def test_valid + assert @notification.valid? + end + + def test_invalid_without_body + @notification.body = nil + assert @notification.invalid? + end + + def test_invalid_without_registrar + @notification.registrar = nil + assert @notification.invalid? + end + + def test_dequeue + @notification.dequeue + @notification.reload + assert_not @notification.queued? + end +end \ No newline at end of file diff --git a/test/system/admin_area/domains/force_delete_test.rb b/test/system/admin_area/domains/force_delete_test.rb index 22bb23d38..525e2de4c 100644 --- a/test/system/admin_area/domains/force_delete_test.rb +++ b/test/system/admin_area/domains/force_delete_test.rb @@ -22,7 +22,7 @@ class AdminAreaDomainForceDeleteTest < ApplicationSystemTestCase end def test_notifies_registrar - assert_difference '@domain.registrar.messages.size' do + assert_difference '@domain.registrar.notifications.size' do visit edit_admin_domain_url(@domain) click_link_or_button 'Force delete domain' end