Class: Desiru::Persistence::Models::ApiRequest

Inherits:
Base
  • Object
show all
Defined in:
lib/desiru/persistence/models/api_request.rb

Overview

Tracks REST API requests

Instance Method Summary collapse

Instance Method Details

#duration_msObject



30
31
32
33
34
# File 'lib/desiru/persistence/models/api_request.rb', line 30

def duration_ms
  return nil unless response_time

  (response_time * 1000).round
end

#success?Boolean

Returns:

  • (Boolean)


26
27
28
# File 'lib/desiru/persistence/models/api_request.rb', line 26

def success?
  status_code >= 200 && status_code < 300
end

#validateObject



15
16
17
18
19
20
21
22
23
24
# File 'lib/desiru/persistence/models/api_request.rb', line 15

def validate
  super
  # Validate method column separately due to name conflict with Ruby's method method
  if self[:method].nil? || self[:method].to_s.empty?
    errors.add(:method, 'is required')
  elsif !%w[GET POST PUT PATCH DELETE].include?(self[:method])
    errors.add(:method, 'must be GET, POST, PUT, PATCH, or DELETE')
  end
  validates_presence i[path status_code]
end