houdini/lib/create/create_campaign.rb
2020-06-15 10:26:57 -05:00

23 lines
862 B
Ruby

# frozen_string_literal: true
# License: AGPL-3.0-or-later WITH WTO-AP-3.0-or-later
# Full license explanation at https://github.com/houdiniproject/houdini/blob/master/LICENSE
module CreateCampaign
CAMPAIGN_NAME_LENGTH_LIMIT = 60
# @return [Object] a json object for historical purposes
def self.create(params, nonprofit)
Time.use_zone(nonprofit.timezone || 'UTC') do
params[:campaign][:end_datetime] = Chronic.parse(params[:campaign][:end_datetime]) if params[:campaign][:end_datetime].present?
end
if !params[:campaign][:parent_campaign_id]
campaign = nonprofit.campaigns.create params[:campaign]
return campaign
else
profile_id = params[:campaign][:profile_id]
Profile.find(profile_id).update params[:profile]
return CreatePeerToPeerCampaign.create(params[:campaign], profile_id)
end
end
end