Class: ForemanAnsibleDirector::RequestCtx::RequestContext

Inherits:
Object
  • Object
show all
Defined in:
app/services/foreman_ansible_director/request_ctx/request_context.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(coincidence_id) ⇒ RequestContext

Returns a new instance of RequestContext.



22
23
24
25
26
27
28
29
# File 'app/services/foreman_ansible_director/request_ctx/request_context.rb', line 22

def initialize(coincidence_id)
  @coincidence_id = coincidence_id
  @errors = []
  @warnings = []
  @created = []
  @updated = []
  @deleted = []
end

Instance Attribute Details

#createdObject (readonly)

Returns the value of attribute created.



20
21
22
# File 'app/services/foreman_ansible_director/request_ctx/request_context.rb', line 20

def created
  @created
end

#deletedObject (readonly)

Returns the value of attribute deleted.



20
21
22
# File 'app/services/foreman_ansible_director/request_ctx/request_context.rb', line 20

def deleted
  @deleted
end

#errorsObject (readonly)

Returns the value of attribute errors.



20
21
22
# File 'app/services/foreman_ansible_director/request_ctx/request_context.rb', line 20

def errors
  @errors
end

#updatedObject (readonly)

Returns the value of attribute updated.



20
21
22
# File 'app/services/foreman_ansible_director/request_ctx/request_context.rb', line 20

def updated
  @updated
end

#warningsObject (readonly)

Returns the value of attribute warnings.



20
21
22
# File 'app/services/foreman_ansible_director/request_ctx/request_context.rb', line 20

def warnings
  @warnings
end

Class Method Details

.currentObject



7
8
9
# File 'app/services/foreman_ansible_director/request_ctx/request_context.rb', line 7

def current
  Thread.current[:ansible_director_request_context]
end

.with_context(context) ⇒ Object



11
12
13
14
15
16
17
# File 'app/services/foreman_ansible_director/request_ctx/request_context.rb', line 11

def with_context(context)
  old = Thread.current[:ansible_director_request_context]
  Thread.current[:ansible_director_request_context] = context
  yield
ensure
  Thread.current[:ansible_director_request_context] = old
end

Instance Method Details

#add_created(record) ⇒ Object



83
84
85
86
# File 'app/services/foreman_ansible_director/request_ctx/request_context.rb', line 83

def add_created(record)
  ::ForemanAnsibleDirector::Logging::CrudLogger.log_record_creation(record)
  @created << record
end

#add_deleted(record) ⇒ Object



93
94
95
96
# File 'app/services/foreman_ansible_director/request_ctx/request_context.rb', line 93

def add_deleted(record)
  ::ForemanAnsibleDirector::Logging::CrudLogger.log_record_deletion(record)
  @deleted << record
end

#add_error(error) ⇒ Object



75
76
77
# File 'app/services/foreman_ansible_director/request_ctx/request_context.rb', line 75

def add_error(error)
  @errors << error
end

#add_updated(record) ⇒ Object



88
89
90
91
# File 'app/services/foreman_ansible_director/request_ctx/request_context.rb', line 88

def add_updated(record)
  ::ForemanAnsibleDirector::Logging::CrudLogger.log_record_update(record)
  @updated << record
end

#add_warning(warning) ⇒ Object



79
80
81
# File 'app/services/foreman_ansible_director/request_ctx/request_context.rb', line 79

def add_warning(warning)
  @warnings << warning
end

#response_createdObject



45
46
47
48
49
50
51
52
53
# File 'app/services/foreman_ansible_director/request_ctx/request_context.rb', line 45

def response_created
  @created.group_by { |k| k.class.name.demodulize.underscore }.transform_values do |items|
    items.map do |item|
      {
        id: item.id,
      }
    end
  end
end

#response_deletedObject



65
66
67
68
69
70
71
72
73
# File 'app/services/foreman_ansible_director/request_ctx/request_context.rb', line 65

def response_deleted
  @deleted.group_by { |k| k.class.name.demodulize.underscore }.transform_values do |items|
    items.map do |item|
      {
        id: item.id,
      }
    end
  end
end

#response_errorsObject



41
42
43
# File 'app/services/foreman_ansible_director/request_ctx/request_context.rb', line 41

def response_errors
  @errors.map(&:render_for_response)
end

#response_statusObject



31
32
33
34
35
# File 'app/services/foreman_ansible_director/request_ctx/request_context.rb', line 31

def response_status
  return 'error' if @errors.any?
  return 'warning' if @warnings.any?
  'success'
end

#response_updatedObject



55
56
57
58
59
60
61
62
63
# File 'app/services/foreman_ansible_director/request_ctx/request_context.rb', line 55

def response_updated
  @updated.group_by { |k| k.class.name.demodulize.underscore }.transform_values do |items|
    items.map do |item|
      {
        id: item.id,
      }
    end
  end
end

#response_warningsObject



37
38
39
# File 'app/services/foreman_ansible_director/request_ctx/request_context.rb', line 37

def response_warnings
  @warnings.map(&:render_for_response)
end