Module: Legion::Extensions::ServiceNow::ServiceCatalog::Runners::ServiceCatalog

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

Instance Method Summary collapse

Methods included from Helpers::Client

#connection, #fetch_oauth2_token, #handle_response

Instance Method Details

#add_to_cart(sys_id:, quantity: 1, variables: nil) ⇒ Object



54
55
56
57
58
59
# File 'lib/legion/extensions/service_now/service_catalog/runners/service_catalog.rb', line 54

def add_to_cart(sys_id:, quantity: 1, variables: nil, **)
  body = { quantity: quantity }
  body[:variables] = variables if variables
  resp = connection(**).post("/api/sn_sc/servicecatalog/items/#{sys_id}/add_to_cart", body)
  { cart: resp.body['result'] }
end

#checkout_cartObject



66
67
68
69
# File 'lib/legion/extensions/service_now/service_catalog/runners/service_catalog.rb', line 66

def checkout_cart(**)
  resp = connection(**).post('/api/sn_sc/servicecatalog/cart/checkout', {})
  { order: resp.body['result'] }
end

#delete_cart(cart_id:) ⇒ Object



71
72
73
74
# File 'lib/legion/extensions/service_now/service_catalog/runners/service_catalog.rb', line 71

def delete_cart(cart_id:, **)
  resp = connection(**).delete("/api/sn_sc/servicecatalog/cart/#{cart_id}")
  { deleted: resp.status == 204, cart_id: cart_id }
end

#get_cartObject



61
62
63
64
# File 'lib/legion/extensions/service_now/service_catalog/runners/service_catalog.rb', line 61

def get_cart(**)
  resp = connection(**).get('/api/sn_sc/servicecatalog/cart')
  { cart: resp.body['result'] }
end

#get_catalog(sys_id:) ⇒ Object



17
18
19
20
# File 'lib/legion/extensions/service_now/service_catalog/runners/service_catalog.rb', line 17

def get_catalog(sys_id:, **)
  resp = connection(**).get("/api/sn_sc/servicecatalog/catalogs/#{sys_id}")
  { catalog: resp.body['result'] }
end

#get_category(sys_id:) ⇒ Object



22
23
24
25
# File 'lib/legion/extensions/service_now/service_catalog/runners/service_catalog.rb', line 22

def get_category(sys_id:, **)
  resp = connection(**).get("/api/sn_sc/servicecatalog/categories/#{sys_id}")
  { category: resp.body['result'] }
end

#get_item(sys_id:) ⇒ Object



37
38
39
40
# File 'lib/legion/extensions/service_now/service_catalog/runners/service_catalog.rb', line 37

def get_item(sys_id:, **)
  resp = connection(**).get("/api/sn_sc/servicecatalog/items/#{sys_id}")
  { item: resp.body['result'] }
end

#get_item_variables(sys_id:) ⇒ Object



42
43
44
45
# File 'lib/legion/extensions/service_now/service_catalog/runners/service_catalog.rb', line 42

def get_item_variables(sys_id:, **)
  resp = connection(**).get("/api/sn_sc/servicecatalog/items/#{sys_id}/variables")
  { variables: resp.body['result'] }
end

#list_catalogs(sysparm_limit: 100, sysparm_offset: 0) ⇒ Object



11
12
13
14
15
# File 'lib/legion/extensions/service_now/service_catalog/runners/service_catalog.rb', line 11

def list_catalogs(sysparm_limit: 100, sysparm_offset: 0, **)
  params = { sysparm_limit: sysparm_limit, sysparm_offset: sysparm_offset }
  resp = connection(**).get('/api/sn_sc/servicecatalog/catalogs', params)
  { catalogs: resp.body['result'] }
end

#list_items(sysparm_limit: 100, sysparm_offset: 0, sysparm_query: nil, catalog_id: nil, category_id: nil) ⇒ Object



27
28
29
30
31
32
33
34
35
# File 'lib/legion/extensions/service_now/service_catalog/runners/service_catalog.rb', line 27

def list_items(sysparm_limit: 100, sysparm_offset: 0, sysparm_query: nil,
               catalog_id: nil, category_id: nil, **)
  params = { sysparm_limit: sysparm_limit, sysparm_offset: sysparm_offset }
  params[:sysparm_query] = sysparm_query if sysparm_query
  params[:catalog_id]    = catalog_id if catalog_id
  params[:category_id]   = category_id if category_id
  resp = connection(**).get('/api/sn_sc/servicecatalog/items', params)
  { items: resp.body['result'] }
end

#order_now(sys_id:, quantity: 1, variables: nil) ⇒ Object



47
48
49
50
51
52
# File 'lib/legion/extensions/service_now/service_catalog/runners/service_catalog.rb', line 47

def order_now(sys_id:, quantity: 1, variables: nil, **)
  body = { quantity: quantity }
  body[:variables] = variables if variables
  resp = connection(**).post("/api/sn_sc/servicecatalog/items/#{sys_id}/order_now", body)
  { request: resp.body['result'] }
end