# frozen_string_literal: true # API Controller for resources of type Abuse. # Typical action is an user reporting an abuse on a project class API::AbusesController < API::ApiController before_action :authenticate_user!, except: :create before_action :set_abuse, only: %i[destroy] def index authorize Abuse @abuses = Abuse.all end def create @abuse = Abuse.new(abuse_params) if @abuse.save render status: :created else render json: @abuse.errors.full_messages, status: :unprocessable_entity end end def destroy authorize Abuse @abuse.destroy head :no_content end private def set_abuse @abuse = Abuse.find(params[:id]) end def abuse_params params.require(:abuse).permit(:signaled_type, :signaled_id, :first_name, :last_name, :email, :message) end end