class CampaignsController < ApplicationController before_action :set_campaign, only: [:show, :edit, :update, :destroy] before_action :set_api_key def index @campaigns = Campaign.all end def show @campaign end def new @campaign = Campaign.new @campaign.videolistings.build @action = campaigns_path end def edit if @campaign.sent redirect_to campaign_path(@campaign.listingcode), notice: 'Campaign has been submitted, Cannot edit.' end @action = campaign_path(@campaign.listingcode) end def create @campaign = Campaign.new campaign_params if @campaign.save respond_to do |format| format.json { render json: @campaign } format.html { redirect_to campaign_path(@campaign.listingcode), notice: 'Campaign was successfully created.' } end else show_errors('new') end end def update if @campaign.update(campaign_params) if params[:send] @campaign.update({sent: true}) end redirect_to campaign_path(@campaign.listingcode), notice: 'Campaign was successfully updated.' else show_errors('edit') end end def destroy @campaign.destroy redirect_to campaigns_url, notice: 'Campaign was successfully destroyed.' end private def show_errors(where_to) respond_to do |format| format.json { render json: {error: @campaign.errors.full_messages } } format.html { render action: where_to } end end def set_campaign @campaign = set_by_options(:campaign, :listingcode) end def campaign_params params.require(:campaign).permit(:id, :address, :clientid, :advertisername, :awards, :background, :billingcode, :businessphone, :categories, :city, :companycolors, :contactphone, :customerfirstname, :customerlastname, :description, :emailaddress, :facebookurl, :listingcode, :productsandservices, :state, :targetaudience, :tollfreephone, :vpa, :websiteurl, :zip, videolistings_attributes: [:_destroy, :id, :asseturls, :clientprovidedscript, :focus, :keywords, :musicselection, :notes, :videocode, :voiceoverselection, ]) end def not_found raise ActionController::RoutingError.new("Not Found by listing code") end def set_api_key @BETTER_VIDEO_API_KEY = ENV['BETTER_VIDEO_API_KEY'] @BETTER_VIDEO_API_KEY ||= "propel test key" end end