Class: Ann::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/ann/client.rb

Constant Summary collapse

FORMATS =
{
  json: "application/json",
  gzip: "application/x-gzip"
}.freeze

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Client

Returns a new instance of Client.



11
12
13
14
15
# File 'lib/ann/client.rb', line 11

def initialize(options = {})
  @access_key = options.fetch(:access_key)
  @secret_key = options.fetch(:secret_key)
  @url = options.fetch(:url)
end

Instance Method Details

#add_user_roles(email, roles) ⇒ Object



25
26
27
28
29
30
31
# File 'lib/ann/client.rb', line 25

def add_user_roles(email, roles)
  path = "/permissions/user?email=#{email}"
  headers = { accept: FORMATS[:json] }
  payload = { roles: roles }
  response = resource[path].put(payload, headers)
  parse_json(response.body)
end

#certificate_templatesObject



50
51
52
53
54
55
56
# File 'lib/ann/client.rb', line 50

def certificate_templates
  path = "/certificates/templates"
  headers = { accept: FORMATS[:json] }

  response = resource[path].get(headers)
  parse_json(response.body)
end

#get_user_roles(email) ⇒ Object



17
18
19
20
21
22
23
# File 'lib/ann/client.rb', line 17

def get_user_roles(email)
  path = "/permissions/user?email=#{email}"
  headers = { accept: FORMATS[:json] }

  response = resource[path].get(headers)
  parse_json(response.body)
end

#remove_user_roles(email, roles) ⇒ Object

rest-client doesn’t allow for delete requests to have a body, so this one is a bit ugly



35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/ann/client.rb', line 35

def remove_user_roles(email, roles)
  path = "/permissions/user?email=#{email}"
  headers = { accept: FORMATS[:json] }

  response = RestClient::Request.execute(
    method:   :delete,
    user:     @access_key,
    password: @secret_key,
    url:      @url + path,
    headers:  headers,
    payload:  { roles: roles }
  )
  parse_json(response.body)
end