internetee-registry/app/interactions/actions/contact_delete.rb

38 lines
747 B
Ruby

module Actions
class ContactDelete
attr_reader :contact
attr_reader :new_attributes
attr_reader :legal_document
attr_reader :ident
attr_reader :user
def initialize(contact, legal_document = nil)
@legal_document = legal_document
@contact = contact
end
def call
maybe_attach_legal_doc
if contact.linked?
contact.errors.add(:domains, :exist)
return
end
if contact.delete_prohibited?
contact.errors.add(:statuses, :delete_prohibited)
return
end
commit
end
def maybe_attach_legal_doc
::Actions::BaseAction.maybe_attach_legal_doc(contact, legal_document)
end
def commit
contact.destroy
end
end
end