Class: LimeLm::Key

Inherits:
Object
  • Object
show all
Defined in:
lib/lime_lm/key.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(hash) ⇒ Key

Returns a new instance of Key.



12
13
14
15
# File 'lib/lime_lm/key.rb', line 12

def initialize(hash)
  self.send(:assign_properties, hash)
  raise LimeLm::InvalidObject, 'You need to provide at least an id or a key for the LimeLm::Key object' unless @id || @key
end

Instance Attribute Details

#emailObject (readonly)

Returns the value of attribute email.



8
9
10
# File 'lib/lime_lm/key.rb', line 8

def email
  @email
end

#id(params = {}) ⇒ Object (readonly)

Returns the value of attribute id.



5
6
7
# File 'lib/lime_lm/key.rb', line 5

def id
  @id
end

#keyObject (readonly)

Returns the value of attribute key.



6
7
8
# File 'lib/lime_lm/key.rb', line 6

def key
  @key
end

#propertiesObject (readonly)

Returns the value of attribute properties.



10
11
12
# File 'lib/lime_lm/key.rb', line 10

def properties
  @properties
end

#revokedObject (readonly)

Returns the value of attribute revoked.



9
10
11
# File 'lib/lime_lm/key.rb', line 9

def revoked
  @revoked
end

#version_idObject (readonly)

Returns the value of attribute version_id.



7
8
9
# File 'lib/lime_lm/key.rb', line 7

def version_id
  @version_id
end

Class Method Details

.activity(params = {}) ⇒ Object

Returns by default activity of created product keys only to speed up the query Pass optional activity as parameters. Asking for activity of all the products takes a long process time



40
41
42
43
44
45
46
47
48
# File 'lib/lime_lm/key.rb', line 40

def activity(params={})
  version_id = params.delete(:version_id) { LimeLm.config[:version_id] }
  start = params.delete(:start) { (Date.today - 7).strftime('%Y-%m-%d') }

  response = LimeLm::Connection.post_json({ method: 'limelm.pkey.activity', version_id: version_id, start: start, created: true}.merge!(params))
  response['pkeys']['pkey']
rescue LimeLm::ApiError => e
  e.message.include?('109') ? [] : raise(e)
end

.create(params = {}) ⇒ Object



18
19
20
21
22
23
24
# File 'lib/lime_lm/key.rb', line 18

def create(params={})
  version_id = params.delete(:version_id) { LimeLm.config[:version_id] }

  response = LimeLm::Connection.post_json({ method: 'limelm.pkey.generate', version_id: version_id }.merge!(params))
  additional_info = LimeLm::Utils.stringify_keys(params.merge!({ version_id: version_id }))
  response['pkeys']['pkey'].map { |k| new(k.merge!(additional_info)) }
end

.find(email, params = {}) ⇒ Object



26
27
28
29
30
31
# File 'lib/lime_lm/key.rb', line 26

def find(email, params={})
	version_id = params.delete(:version_id) { LimeLm.config[:version_id] }

	response = LimeLm::Connection.post_json({ method: 'limelm.pkey.find', version_id: version_id, email: email })
  response['pkeys']['pkey'].map { |k| new(k.merge!({ 'version_id' => version_id, 'email' => email })) } 
end

.manual_activation(act_req_content) ⇒ Object



50
51
52
53
# File 'lib/lime_lm/key.rb', line 50

def manual_activation(act_req_content)
  response = LimeLm::Connection.post_json({ method: 'limelm.pkey.manualActivation', act_req_xml: act_req_content})
  response['act_resp_xml']['data']    
end

.search(params = {}) ⇒ Object



33
34
35
36
# File 'lib/lime_lm/key.rb', line 33

def search(params={})
  response = LimeLm::Connection.post_json({ method: 'limelm.pkey.advancedSearch'}.merge!(params))
  response['pkeys']['pkey'].map { |k| new(k) }
end

Instance Method Details

#destroy!Object



79
80
81
82
# File 'lib/lime_lm/key.rb', line 79

def destroy!
  LimeLm::Connection.post_json({ method: 'limelm.pkey.delete', pkey_id: @id })
  true
end

#detailsObject



74
75
76
77
# File 'lib/lime_lm/key.rb', line 74

def details
  response = LimeLm::Connection.post_json({ method: 'limelm.pkey.getDetails', pkey_id: @id })
  self.send(:assign_properties, response['pkey'])
end

#remove_tag(tag) ⇒ Object



69
70
71
72
# File 'lib/lime_lm/key.rb', line 69

def remove_tag(tag)
  LimeLm::Connection.post_json({ method: 'limelm.pkey.removeTag', pkey_id: @id, tag: tag })
  true
end

#tag(tags = []) ⇒ Object



64
65
66
67
# File 'lib/lime_lm/key.rb', line 64

def tag(tags=[])
  LimeLm::Connection.post_json({ method: 'limelm.pkey.setTags', pkey_id: @id, tag: tags })
  true
end

#toggle_revoke!Object



84
85
86
87
88
# File 'lib/lime_lm/key.rb', line 84

def toggle_revoke!
  revoke = @revoked ? 'false' : 'true'
  LimeLm::Connection.post_json({ method: 'limelm.pkey.revoke', pkey_id: @id, revoke: revoke })
  @revoked = !@revoked
end