mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-10-06 20:05:55 +08:00
39 lines
982 B
Ruby
39 lines
982 B
Ruby
# frozen_string_literal: true
|
|
|
|
class FormFieldValuesController < ApplicationController
|
|
before_action :load_form_response
|
|
before_action :load_form_field
|
|
before_action :check_create_permissions
|
|
|
|
def create
|
|
@form_field_value = @form_response.create_value!(
|
|
current_user,
|
|
@form_field,
|
|
form_field_value_params[:value]
|
|
)
|
|
|
|
render json: @form_field_value, serializer: FormFieldValueSerializer, user: current_user
|
|
end
|
|
|
|
private
|
|
|
|
def form_field_value_params
|
|
params.require(:form_field_value).permit(:form_field_id, :value)
|
|
end
|
|
|
|
def load_form_response
|
|
@form_response = FormResponse.find_by(id: params[:form_response_id])
|
|
|
|
render_404 unless @form_response
|
|
end
|
|
|
|
def load_form_field
|
|
@form_field = @form_response.form.form_fields.find_by(id: form_field_value_params[:form_field_id])
|
|
|
|
render_404 unless @form_field
|
|
end
|
|
|
|
def check_create_permissions
|
|
render_403 unless can_submit_form_response?(@form_response)
|
|
end
|
|
end
|