class CongressForms::CwcForm
Attributes
office_code[RW]
Public Class Methods
new(office_code)
click to toggle source
# File lib/congress_forms/cwc_form.rb, line 5 def initialize(office_code) self.office_code = office_code end
Public Instance Methods
fill(values, campaign_tag: nil, organization: nil, browser: nil, validate_only: false)
click to toggle source
# File lib/congress_forms/cwc_form.rb, line 17 def fill(values, campaign_tag: nil, organization: nil, browser: nil, validate_only: false) params = { campaign_id: campaign_tag || SecureRandom.hex(16), recipient: { member_office: office_code }, constituent: { prefix: values["$NAME_PREFIX"], first_name: values["$NAME_FIRST"], last_name: values["$NAME_LAST"], address: Array(values["$ADDRESS_STREET"]), city: values["$ADDRESS_CITY"], state_abbreviation: values["$ADDRESS_STATE_POSTAL_ABBREV"], zip: values["$ADDRESS_ZIP5"], email: values["$EMAIL"] }, message: { subject: values["$SUBJECT"], library_of_congress_topics: Array(values["$TOPIC"]) } } if organization params[:organization] = organization end if values["$STATEMENT"] params[:message][:organization_statement] = values["$STATEMENT"] end if values["$MESSAGE"] && values["$MESSAGE"] != values["$STATEMENT"] params[:message][:constituent_message] = values["$MESSAGE"] end cwc_client = Cwc::Client.new message = cwc_client.create_message(params) if validate_only cwc_client.validate(message) else cwc_client.deliver(message) end end
required_params()
click to toggle source
# File lib/congress_forms/cwc_form.rb, line 13 def required_params Cwc::RequiredJson.fetch("required_actions").map(&:dup) end
updated_at()
click to toggle source
# File lib/congress_forms/cwc_form.rb, line 9 def updated_at Time.at(0) end