1
0
mirror of https://github.com/LaCasemate/fab-manager.git synced 2024-12-11 22:24:21 +01:00
fab-manager/app/controllers/api/profile_custom_fields_controller.rb
2023-03-22 10:58:22 +01:00

52 lines
1.4 KiB
Ruby

# frozen_string_literal: true
# API Controller for resources of type ProfileCustomField
# ProfileCustomFields are fields configured by an admin, added to the user's profile
class API::ProfileCustomFieldsController < API::APIController
before_action :authenticate_user!, except: :index
before_action :set_profile_custom_field, only: %i[show update destroy]
def index
@profile_custom_fields = ProfileCustomField.all.order('id ASC')
@profile_custom_fields = @profile_custom_fields.where(actived: params[:actived]) if params[:actived].present?
end
def show; end
def create
authorize ProfileCustomField
@profile_custom_field = ProfileCustomField.new(profile_custom_field_params)
if @profile_custom_field.save
render status: :created
else
render json: @profile_custom_field.errors.full_messages, status: :unprocessable_entity
end
end
def update
authorize @profile_custom_field
if @profile_custom_field.update(profile_custom_field_params)
render status: :ok
else
render json: @pack.errors.full_messages, status: :unprocessable_entity
end
end
def destroy
authorize @profile_custom_field
@profile_custom_field.destroy
head :no_content
end
private
def set_profile_custom_field
@profile_custom_field = ProfileCustomField.find(params[:id])
end
def profile_custom_field_params
params.require(:profile_custom_field).permit(:label, :required, :actived)
end
end