app/controllers/foreman_salt/api/v2/salt_environments_controller.rb



module ForemanSalt
  module Api
    module V2
      class SaltEnvironmentsController < ::ForemanSalt::Api::V2::BaseController
        include ::ForemanSalt::Concerns::SaltEnvironmentParameters

        before_action :find_resource, except: %i[index create]

        api :GET, '/salt_environments', N_('List all Salt environments')
        param_group :search_and_pagination, ::Api::V2::BaseController
        def index
          @salt_environments = resource_scope_for_index
        end

        api :GET, '/salt_environments/:id/', N_('Show a Salt environment')
        param :id, :identifier_dottable, required: true
        def show
        end

        def_param_group :environment do
          param :environment, Hash, required: true, action_aware: true do
            param :name, String, required: true
          end
        end

        api :POST, '/salt_environments', N_('Create a Salt environment')
        param_group :environment, as: :create
        def create
          @salt_environment = SaltEnvironment.new(salt_environment_params)
          process_response @salt_environment.save
        end

        api :DELETE, '/salt_environments/:id/', N_('Destroy a Salt environment')
        param :id, :identifier, required: true
        def destroy
          process_response @salt_environment.destroy
        end

        def controller_permission
          'salt_environments'
        end

        def resource_class
          ForemanSalt::SaltEnvironment
        end
      end
    end
  end
end