Class: PrintosClient

Inherits:
Object
  • Object
show all
Defined in:
lib/printos/printos_client.rb

Constant Summary collapse

API_BASE =
'api/aaa/v3'
USER_PERMISSIONS =
%w(admin user hpAdmin).freeze

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.get_instanceObject



15
16
17
# File 'lib/printos/printos_client.rb', line 15

def self.get_instance
  ::RequestStore.store[:print_os_client] ||= PrintosClient.new(@token)
end

.set_instance(token) ⇒ Object



9
10
11
12
13
# File 'lib/printos/printos_client.rb', line 9

def self.set_instance(token)
  @token = token
  ::RequestStore.store[:printos_token] = token
  get_instance
end

Instance Method Details

#admin_contextObject



68
69
70
# File 'lib/printos/printos_client.rb', line 68

def admin_context
  Printos::AaaService.admin_context
end

#admin_device_gbu_organizations(offset, limit, device_gbu_filter, device_type_filter) ⇒ Object



72
73
74
# File 'lib/printos/printos_client.rb', line 72

def admin_device_gbu_organizations(offset, limit, device_gbu_filter, device_type_filter)
  Printos::AaaService.admin_device_gbu_organizations(offset, limit, device_gbu_filter, device_type_filter)
end

#admin_organization(org_id) ⇒ Object



76
77
78
# File 'lib/printos/printos_client.rb', line 76

def admin_organization(org_id)
  Printos::AaaService.admin_organization(org_id)
end

#admin_organizations(offset, limit, name_filter, gbu_filter) ⇒ Object



80
81
82
# File 'lib/printos/printos_client.rb', line 80

def admin_organizations(offset, limit, name_filter, gbu_filter)
  Printos::AaaService.admin_organizations(offset, limit, name_filter, gbu_filter)
end

#admin_printer(resource_id) ⇒ Object



84
85
86
# File 'lib/printos/printos_client.rb', line 84

def admin_printer(resource_id)
  @printer_resource[resource_id] ||= Printos::AaaService.admin_device(resource_id)
end

#admin_site(org_id, resource_id) ⇒ Object



88
89
90
# File 'lib/printos/printos_client.rb', line 88

def admin_site(org_id, resource_id)
  @site_resource[resource_id] ||= Printos::AaaService.admin_site(org_id, resource_id)
end

#authorizationObject



53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/printos/printos_client.rb', line 53

def authorization
  body = {
    requestToken: @token,
    permissions: USER_PERMISSIONS,
    checkedObjectName: 'checkSuluPermissions'
  }

  @authorization ||= Printos::AaaService.authorize(body, true)

  # Cache user
  @user = @authorization[:user] unless @authorization[:user].nil?

  @authorization
end

#create_site(payload) ⇒ Object



96
97
98
# File 'lib/printos/printos_client.rb', line 96

def create_site(payload)
  Printos::AaaService.create_site(payload)
end

#devicesObject



43
44
45
46
47
48
49
50
51
# File 'lib/printos/printos_client.rb', line 43

def devices
  org = organization
  site_id = org[:organizationId]

  @devices ||= Printos::AaaService.devices
  device_list = @devices[:devicesWithContext].first[:devices]

  device_list.select { |device| device[:site] && device[:site][:organizationId] == site_id }
end

#logged_in?Boolean

Returns:

  • (Boolean)


19
20
21
# File 'lib/printos/printos_client.rb', line 19

def logged_in?
  @token.present?
end

#organizationObject



27
28
29
# File 'lib/printos/printos_client.rb', line 27

def organization
  @org ||= Printos::AaaService.organization
end

#printer(resource_id) ⇒ Object



39
40
41
# File 'lib/printos/printos_client.rb', line 39

def printer(resource_id)
  @printer_resource[resource_id] ||= Printos::AaaService.device(resource_id)
end

#site(resource_id) ⇒ Object



31
32
33
# File 'lib/printos/printos_client.rb', line 31

def site(resource_id)
  @site_resource[resource_id] ||= Printos::AaaService.site(resource_id)
end

#sitesObject



35
36
37
# File 'lib/printos/printos_client.rb', line 35

def sites
  @sites ||= Printos::AaaService.sites
end

#update_organization(payload) ⇒ Object



92
93
94
# File 'lib/printos/printos_client.rb', line 92

def update_organization(payload)
  Printos::AaaService.update_organization(payload)
end

#update_site(resource_id, payload) ⇒ Object



100
101
102
# File 'lib/printos/printos_client.rb', line 100

def update_site(resource_id, payload)
  Printos::AaaService.update_site(resource_id, payload)
end

#userObject



23
24
25
# File 'lib/printos/printos_client.rb', line 23

def user
  @user ||= Printos::AaaService.user
end