Class: Renalware::HD::Sessions::CloseStaleOpenSessions

Inherits:
Object
  • Object
show all
Defined in:
app/models/renalware/hd/sessions/close_stale_open_sessions.rb

Defined Under Namespace

Classes: CloseableSession, CloseableSessionQuery

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(performed_before:) ⇒ CloseStaleOpenSessions

Returns a new instance of CloseStaleOpenSessions.



58
59
60
61
62
# File 'app/models/renalware/hd/sessions/close_stale_open_sessions.rb', line 58

def initialize(performed_before:)
  @performed_before = performed_before
  @closed_session_ids = []
  @unclosed_session_ids = []
end

Instance Attribute Details

#closed_session_idsObject (readonly)

Returns the value of attribute closed_session_ids.



10
11
12
# File 'app/models/renalware/hd/sessions/close_stale_open_sessions.rb', line 10

def closed_session_ids
  @closed_session_ids
end

#performed_beforeObject (readonly)

Returns the value of attribute performed_before.



10
11
12
# File 'app/models/renalware/hd/sessions/close_stale_open_sessions.rb', line 10

def performed_before
  @performed_before
end

#unclosed_session_idsObject (readonly)

Returns the value of attribute unclosed_session_ids.



10
11
12
# File 'app/models/renalware/hd/sessions/close_stale_open_sessions.rb', line 10

def unclosed_session_ids
  @unclosed_session_ids
end

Class Method Details

.call(performed_before: 3.days.ago) ⇒ Object



54
55
56
# File 'app/models/renalware/hd/sessions/close_stale_open_sessions.rb', line 54

def self.call(performed_before: 3.days.ago)
  new(performed_before: performed_before).call
end

Instance Method Details

#callObject

rubocop:disable Metrics/MethodLength,Metrics/AbcSize



65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# File 'app/models/renalware/hd/sessions/close_stale_open_sessions.rb', line 65

def call
  log_start
  results = OpenStruct.new(closed_ids: [], unclosed_ids: [])

  CloseableSessionQuery.new(performed_before: performed_before).each do |session|
    if session.close
      results.closed_ids << session.id
      log("[Session #{session.id}] - closed")
    else
      results.unclosed_ids << session.id
      log("[Session #{session.id}] - unclosed: #{session.all_errors.join(', ')}")
      log("[Session #{session.id}] - #{session.url}")
    end
  end
  log_results(results)
  results
end