class ForemanSalt::Api::V2::SaltStatesController

def action_permission

def action_permission
  case params[:action]
  when 'import'
    :import
  else
    super
  end
end

def controller_permission

def controller_permission
  'salt_modules'
end

def create

def create
  @salt_state = SaltModule.new(salt_module_params)
  process_response @salt_state.save
end

def destroy

def destroy
  process_response @salt_state.destroy
end

def find_environment

def find_environment
  return unless params[:salt_environment_id]
  @salt_environment = ForemanSalt::SaltEnvironment.friendly.find(params[:salt_environment_id])
  raise _('Could not find salt environment with id %s') % params[:salt_environment_id] unless @salt_environment
end

def import

def import
  states = fetch_states_from_proxy(@proxy, params[:salt_environments])
  unless params[:dryrun]
    states[:changes].each do |environment, state|
      add_to_environment(state[:add], environment) if state[:add].present? && (params[:actions].blank? || params[:actions].include?('add'))
      if state[:remove].present? && (params[:actions].blank? || params[:actions].include?('remove'))
        remove_from_environment(state[:remove], environment)
      end
    end
    clean_orphans
  end
  render plain: states.to_json
end

def index

def index
  @salt_states = if @salt_environment
                   resource_scope_for_index.joins(:salt_environments)
                                           .where('salt_module_environments.salt_environment_id' => @salt_environment)
                 else
                   resource_scope_for_index
                 end
  @subtotal = @salt_states.count
end

def resource_class

def resource_class
  ForemanSalt::SaltModule
end

def show

def show
end