add submitters api
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
module Api
|
||||
class SubmissionsController < ApiBaseController
|
||||
def create
|
||||
template = current_account.templates.find(params[:template_id])
|
||||
|
||||
submissions =
|
||||
if params[:emails].present?
|
||||
Submissions.create_from_emails(template:,
|
||||
user: current_user,
|
||||
send_email: params[:send_email] != 'false',
|
||||
emails: params[:emails])
|
||||
else
|
||||
Submissions.create_from_submitters(template:,
|
||||
user: current_user,
|
||||
send_email: params[:send_email] != 'false',
|
||||
submissions_attrs: submissions_params[:submission])
|
||||
end
|
||||
|
||||
submitters = submissions.flat_map(&:submitters)
|
||||
|
||||
if params[:send_email] != 'false'
|
||||
submitters.each do |submitter|
|
||||
SubmitterMailer.invitation_email(submitter, message: params[:message]).deliver_later!
|
||||
end
|
||||
end
|
||||
|
||||
render json: submitters
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def submissions_params
|
||||
params.permit(submission: [{ submitters: [%i[uuid name email]] }])
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -2,6 +2,10 @@
|
||||
|
||||
module Api
|
||||
class TemplatesController < ApiBaseController
|
||||
def index
|
||||
render json: current_account.templates
|
||||
end
|
||||
|
||||
def update
|
||||
@template = current_account.templates.find(params[:id])
|
||||
|
||||
|
||||
Reference in New Issue
Block a user