You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
28 lines
574 B
28 lines
574 B
# frozen_string_literal: true
|
|
|
|
class Form::Migration
|
|
include ActiveModel::Validations
|
|
|
|
attr_accessor :acct, :account
|
|
|
|
validates :acct, presence: true
|
|
|
|
def initialize(attrs = {})
|
|
@account = attrs[:account]
|
|
@acct = attrs[:account].acct unless @account.nil?
|
|
@acct = attrs[:acct].gsub(/\A@/, '').strip unless attrs[:acct].nil?
|
|
end
|
|
|
|
def valid?
|
|
return false unless super
|
|
set_account
|
|
errors.empty?
|
|
end
|
|
|
|
private
|
|
|
|
def set_account
|
|
self.account = ResolveRemoteAccountService.new.call(acct) if account.nil? && acct.present?
|
|
end
|
|
end
|