Class: Trackguard::TrackBlockedRequest
- Inherits:
-
ApplicationService
- Object
- ApplicationService
- Trackguard::TrackBlockedRequest
- Defined in:
- app/services/trackguard/track_blocked_request.rb
Instance Method Summary collapse
- #call ⇒ Object
-
#initialize(ip:, user_agent:, path:, http_method:, block_reason:, visitor_scope: {}) ⇒ TrackBlockedRequest
constructor
A new instance of TrackBlockedRequest.
Methods inherited from ApplicationService
Constructor Details
#initialize(ip:, user_agent:, path:, http_method:, block_reason:, visitor_scope: {}) ⇒ TrackBlockedRequest
Returns a new instance of TrackBlockedRequest.
5 6 7 8 9 10 11 12 |
# File 'app/services/trackguard/track_blocked_request.rb', line 5 def initialize(ip:, user_agent:, path:, http_method:, block_reason:, visitor_scope: {}) @ip = ip @user_agent = user_agent @path = path @http_method = http_method @block_reason = block_reason @visitor_scope = visitor_scope end |
Instance Method Details
#call ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'app/services/trackguard/track_blocked_request.rb', line 14 def call visitor = Visitor.find_or_create_by!(ip: @ip, **@visitor_scope) do |v| v.user_agent = @user_agent v.first_seen_at = Time.current v.last_seen_at = Time.current end visitor.update!(last_seen_at: Time.current, user_agent: @user_agent) BlockedRequest.create!( path: @path, user_agent: @user_agent, http_method: @http_method, block_reason: @block_reason, visitor: visitor, **@visitor_scope ) end |