Sha256: 4b86c23e6f2db0c1c6b3c16cf2097b93992a400d21a82c0dcf07080e3f3f1df8

Contents?: true

Size: 1.26 KB

Versions: 29

Compression:

Stored size: 1.26 KB

Contents

# typed: true

# Copyright (c) 2015 Sqreen. All Rights Reserved.
# Please refer to our terms for more information: https://www.sqreen.com/terms.html

require 'sqreen/actions/unknown_action_type'
require 'sqreen/actions/base'

require 'sqreen/actions/block_user'
require 'sqreen/actions/redirect_user'
require 'sqreen/actions/block_ip'
require 'sqreen/actions/redirect_ip'
require 'sqreen/actions/repository'
require 'sqreen/actions/unknown_action_type'

module Sqreen
  # Implements actions (behavior taken in response to agent signals)
  module Actions
    # @return [Sqreen::Actions::Base]
    def self.deserialize_action(hash)
      action_type = hash['action']
      raise 'no action type available' unless action_type

      subclass = Sqreen::Actions::Base.get_type_class(action_type)
      raise Sqreen::Actions::UnknownActionType, action_type unless subclass

      id = hash['action_id']
      raise 'no action id available' unless id

      duration = hash['duration']
      if !duration.nil? && duration <= 0
        Sqreen.log.debug "Action #{id} is already expired"
        return nil
      end

      opts = {
        :duration => duration,
        :send_response => hash['send_response'],
      }

      subclass.new(id, opts, hash['parameters'] || {})
    end
  end
end

Version data entries

29 entries across 29 versions & 1 rubygems

Version Path
sqreen-1.22.0-java lib/sqreen/actions.rb
sqreen-1.22.0 lib/sqreen/actions.rb
sqreen-1.21.1-java lib/sqreen/actions.rb
sqreen-1.21.1 lib/sqreen/actions.rb
sqreen-1.21.0-java lib/sqreen/actions.rb
sqreen-1.21.0 lib/sqreen/actions.rb
sqreen-1.20.4-java lib/sqreen/actions.rb
sqreen-1.20.4 lib/sqreen/actions.rb
sqreen-1.21.0.beta3-java lib/sqreen/actions.rb
sqreen-1.21.0.beta3 lib/sqreen/actions.rb
sqreen-1.20.4.beta1 lib/sqreen/actions.rb
sqreen-1.19.4 lib/sqreen/actions.rb
sqreen-1.20.3 lib/sqreen/actions.rb
sqreen-1.20.2 lib/sqreen/actions.rb
sqreen-1.21.0.beta2 lib/sqreen/actions.rb
sqreen-1.21.0.beta1 lib/sqreen/actions.rb
sqreen-1.20.1-java lib/sqreen/actions.rb
sqreen-1.20.1 lib/sqreen/actions.rb
sqreen-1.20.0-java lib/sqreen/actions.rb
sqreen-1.20.0 lib/sqreen/actions.rb