Files
chatwoot/app/controllers/api/v1/accounts/campaigns_controller.rb
T

46 lines
1.2 KiB
Ruby

class Api::V1::Accounts::CampaignsController < Api::V1::Accounts::BaseController
before_action :campaign, except: [:index, :create]
before_action :check_authorization
def index
@campaigns = Current.account.campaigns
end
def show; end
def create
@campaign = Current.account.campaigns.create!(campaign_params)
end
def update
@campaign.update!(campaign_params)
end
def destroy
@campaign.destroy!
head :ok
end
def analytics_metrics; end
def analytics_contacts
campaign_messages = @campaign.campaign_messages.includes(:contact)
campaign_messages = campaign_messages.by_status(params[:status]) if params[:status].present?
page = params[:page] || 1
per_page = params[:per_page] || 25
@paginated_messages = campaign_messages.page(page).per(per_page)
end
private
def campaign
@campaign ||= Current.account.campaigns.find_by(display_id: params[:id])
end
def campaign_params
params.require(:campaign).permit(:title, :description, :message, :enabled, :trigger_only_during_business_hours, :inbox_id, :sender_id,
:scheduled_at, audience: [:type, :id], trigger_rules: {}, template_params: {})
end
end