Upstream sync
This commit is contained in:
76
app/controllers/casting_calls_controller.rb
Normal file
76
app/controllers/casting_calls_controller.rb
Normal file
@@ -0,0 +1,76 @@
|
||||
class CastingCallsController < ApplicationController
|
||||
layout "project"
|
||||
|
||||
before_action :set_project
|
||||
before_action :build_casting_call, only: [:new, :create]
|
||||
before_action :set_casting_call, only: [:show, :edit, :update, :cancel]
|
||||
|
||||
def index
|
||||
@casting_calls = casting_calls.order_by_recent.paginate(page: params[:page])
|
||||
end
|
||||
|
||||
def new
|
||||
end
|
||||
|
||||
def create
|
||||
@casting_call.attributes = casting_call_params_with_email
|
||||
|
||||
if @casting_call.save
|
||||
log_create_analytics
|
||||
castme_url = url_for([@project, @casting_call])
|
||||
SubmitHubspotFormJob.perform_later(email: @casting_call.user_email, castme_url: castme_url, form_guid: ENV["HUBSPOT_CASTING_CALL_REQUEST_FORM_GUID"])
|
||||
else
|
||||
render :new
|
||||
end
|
||||
end
|
||||
|
||||
def show
|
||||
render layout: 'application'
|
||||
end
|
||||
|
||||
def edit
|
||||
end
|
||||
|
||||
def update
|
||||
if @casting_call.update(casting_call_params)
|
||||
redirect_to [@project, :casting_calls], notice: t(".notice")
|
||||
else
|
||||
render :edit
|
||||
end
|
||||
end
|
||||
|
||||
def cancel
|
||||
@casting_call.update(cancelled_at: Time.zone.now)
|
||||
redirect_to [@project, :casting_calls], notice: t(".notice")
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def casting_call_params
|
||||
params.require(:casting_call).permit(:title, :description, :project_description, :interview_instructions, :interview_requirements, :questions)
|
||||
end
|
||||
|
||||
def casting_call_params_with_email
|
||||
casting_call_params.merge(user_email: Current.user.email)
|
||||
end
|
||||
|
||||
def set_project
|
||||
@project = policy_scope(Project).find(params[:project_id])
|
||||
end
|
||||
|
||||
def set_casting_call
|
||||
@casting_call = authorize casting_calls.find(params[:id])
|
||||
end
|
||||
|
||||
def casting_calls
|
||||
authorize policy_scope(@project.casting_calls)
|
||||
end
|
||||
|
||||
def build_casting_call
|
||||
@casting_call = authorize @project.casting_calls.build
|
||||
end
|
||||
|
||||
def log_create_analytics
|
||||
TrackAnalyticsJob.perform_later(Current.user, Current.account, :track_create_casting_call, user_agent: request.user_agent, user_ip: request.remote_ip)
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user