Sha256: 3682a20349c70709ade59904ac78f6568f599b4c4217a2eb06eba9252b140288
Contents?: true
Size: 1.26 KB
Versions: 10
Compression:
Stored size: 1.26 KB
Contents
# typed: ignore # 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
10 entries across 10 versions & 1 rubygems