Module: Legion::Extensions::ServiceNow::Table::Runners::Table

Includes:
Helpers::Lex, Helpers::Client
Included in:
Client
Defined in:
lib/legion/extensions/service_now/table/runners/table.rb

Instance Method Summary collapse

Methods included from Helpers::Client

#connection, #fetch_oauth2_token, #handle_response

Instance Method Details

#table_create(table_name:, **fields) ⇒ Object



32
33
34
35
36
# File 'lib/legion/extensions/service_now/table/runners/table.rb', line 32

def table_create(table_name:, **fields)
  body = fields.except(:url, :client_id, :client_secret, :token, :username, :password)
  resp = connection(**fields).post("/api/now/table/#{table_name}", body)
  { record: resp.body['result'] }
end

#table_delete(table_name:, sys_id:) ⇒ Object



44
45
46
47
# File 'lib/legion/extensions/service_now/table/runners/table.rb', line 44

def table_delete(table_name:, sys_id:, **)
  resp = connection(**).delete("/api/now/table/#{table_name}/#{sys_id}")
  { deleted: resp.status == 204, sys_id: sys_id }
end

#table_get(table_name:, sys_id:, sysparm_fields: nil, sysparm_display_value: nil) ⇒ Object



23
24
25
26
27
28
29
30
# File 'lib/legion/extensions/service_now/table/runners/table.rb', line 23

def table_get(table_name:, sys_id:, sysparm_fields: nil,
              sysparm_display_value: nil, **)
  params = {}
  params[:sysparm_fields]        = sysparm_fields if sysparm_fields
  params[:sysparm_display_value] = sysparm_display_value unless sysparm_display_value.nil?
  resp = connection(**).get("/api/now/table/#{table_name}/#{sys_id}", params)
  { record: resp.body['result'] }
end

#table_list(table_name:, sysparm_limit: 100, sysparm_offset: 0, sysparm_query: nil, sysparm_fields: nil, sysparm_display_value: nil, sysparm_exclude_reference_link: nil) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
# File 'lib/legion/extensions/service_now/table/runners/table.rb', line 11

def table_list(table_name:, sysparm_limit: 100, sysparm_offset: 0,
               sysparm_query: nil, sysparm_fields: nil,
               sysparm_display_value: nil, sysparm_exclude_reference_link: nil, **)
  params = { sysparm_limit: sysparm_limit, sysparm_offset: sysparm_offset }
  params[:sysparm_query]                   = sysparm_query if sysparm_query
  params[:sysparm_fields]                  = sysparm_fields if sysparm_fields
  params[:sysparm_display_value]           = sysparm_display_value unless sysparm_display_value.nil?
  params[:sysparm_exclude_reference_link]  = sysparm_exclude_reference_link unless sysparm_exclude_reference_link.nil?
  resp = connection(**).get("/api/now/table/#{table_name}", params)
  { records: resp.body['result'] }
end

#table_update(table_name:, sys_id:, **fields) ⇒ Object



38
39
40
41
42
# File 'lib/legion/extensions/service_now/table/runners/table.rb', line 38

def table_update(table_name:, sys_id:, **fields)
  body = fields.except(:url, :client_id, :client_secret, :token, :username, :password, :sys_id)
  resp = connection(**fields).patch("/api/now/table/#{table_name}/#{sys_id}", body)
  { record: resp.body['result'] }
end