limdesk_api 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 20f13df68d98955d7f47adea62e02b95bb9f5c4a
4
- data.tar.gz: 7a228e94c25393b16c9d395ac86edf8100e2033d
3
+ metadata.gz: 9bde3e1c2acf2d3e2f7729b0a0a6ae9cbb0e2ed8
4
+ data.tar.gz: b62de19124f071329574232d15eb8c405fe22da0
5
5
  SHA512:
6
- metadata.gz: f15bcf4626b762787623ae4b1847b19464e3af5e0c3af7eaeb353629bf3f2b6bfdbc39858217aa2e7ff32d1c4dd88d34f743615df3c1cff749288b4e2028c5a5
7
- data.tar.gz: 60beb84f48914675c6244c9c3dcb4cf6b4029535a2faf024a47bcd22a1a0088bdb6b5f68fb3f61a5dbe06be555d3fc21684f034e17ed0461770362763a84e909
6
+ metadata.gz: ac18ac6ba9c3bd79a5a0df8623b865eaadaead371e2c13a287181238b50924f726e3eff1956c7fcced611c98dd74971fcca618419699818556046d0c1cbd32b5
7
+ data.tar.gz: b89694f0ea6877fc9c49f845ccd17739280e8ac719bc6adca25c8bce4a5af2c547dd15f89cf505c3ec96a52da1b3a4924e062a7cb35e7d81a81bd381ba64732b
data/README.md CHANGED
@@ -18,9 +18,9 @@ Or install it yourself as:
18
18
 
19
19
  ## Usage
20
20
 
21
- This gem will allow you to interact with Limdesk API. [Limdesk.com](http://limdesk.com) is a lightweight, multichannel customer support solution.
21
+ This gem will allow you to interact with Limdesk API. [Limdesk.com](http://limdesk.com) is a lightweight, multichannel customer support solution.
22
22
 
23
- API is available to free and premium users. You can generate your APIKEY in Settings/Integration/API section.
23
+ API is available to free and premium users. You can generate your APIKEY in Settings/Integration/API section.
24
24
 
25
25
  This gem wrappes Limdesk API into OpenStruct (RecursiveOpenStruct) objects. For more information about API check the [official docs](http://help.limdesk.com/en/category/458/API_documentation). Current API covers basic, most common actions. More advanced version is currenty under development.
26
26
 
@@ -56,7 +56,7 @@ ticket.client.name
56
56
  ticket.answer content: 'this is a private comment', answer_type: :priv
57
57
  ticket.answer content: 'dear customer, it is solved', answer_type: :pub
58
58
 
59
- ticket.close content: 'its solved', type: :resolved
59
+ ticket.close content: 'its solved', type: :resolved
60
60
  ticket.reopen
61
61
  ticket.close content: 'spam', type: :rejected
62
62
 
@@ -64,13 +64,13 @@ ticket2 = LimdeskApi::Ticket.create :title => "problem",
64
64
  :content => "clients probem",
65
65
  :reported_by => :mail,
66
66
  :client_id => -1
67
-
67
+
68
68
  # reported_by can be :mail, :phone, :other, :chat
69
69
  # client_id => -1 means "new anonymous clinet"
70
-
70
+
71
71
  ticket2.title
72
72
  "sample ticket 2"
73
-
73
+
74
74
  ```
75
75
 
76
76
  #### Activities
@@ -80,7 +80,7 @@ ticket2.title
80
80
  acts = LimdeskApi::Activity.all
81
81
 
82
82
  act = LimdeskApi::Activity.create content: "client has logged into website",
83
- client_id: 55
83
+ client_id: 55
84
84
  ```
85
85
 
86
86
  #### Clients
@@ -93,17 +93,26 @@ cls = LimdeskApi::Client.all
93
93
  cls.first.name
94
94
  "John Smith"
95
95
 
96
- client = LimdeskApi::Client.create name: "John Smith",
96
+ client = LimdeskApi::Client.create name: "John Smith",
97
97
  nippesel: "15012406496",
98
98
  phone: "223111789",
99
99
  email: "email@example.com",
100
- adress: "Plain Street 149 85-058 Warsaw"
100
+ address: "Plain Street 149 85-058 Warsaw"
101
101
  client.delete!
102
102
  true
103
103
 
104
104
  client2 = LimdeskApi::Client.get(55)
105
105
  client2.contacts.first
106
106
 
107
+ client2.update name: "John Smith 2",
108
+ nippesel: "123",
109
+ phone: "11111",
110
+ email: "emailnew@example.com",
111
+ address: "Plain Street 149 85-058 Warsaw"
112
+ true
113
+
114
+ client3 = LimdeskApi::Client.get_by_email('adam@example.com')
115
+ client4 = LimdeskApi::Client.get_by_phone('+48897228989')
107
116
  ```
108
117
 
109
118
  #### Sales
@@ -14,5 +14,47 @@ module LimdeskApi
14
14
  def self.create(params)
15
15
  super
16
16
  end
17
+
18
+ # Gets a Client by property
19
+ #
20
+ # @param [String] action search type
21
+ # @param [String] query search data
22
+ #
23
+ # @return [LimdeskApi::Client]
24
+ def self.get_by(action, query)
25
+ response = LimdeskApi.get_one object: object_symbol,
26
+ action: action,
27
+ query: query
28
+ response ? new(response) : nil
29
+ end
30
+
31
+ # Gets a Client by e-mail
32
+ #
33
+ # @param [String] email find by e-mail
34
+ #
35
+ # @return [LimdeskApi::Client]
36
+ def self.get_by_email(email)
37
+ get_by('get_by_email', email)
38
+ end
39
+
40
+ # Gets a Client by phone
41
+ #
42
+ # @param [String] phone find by phone
43
+ #
44
+ # @return [LimdeskApi::Client]
45
+ def self.get_by_phone(phone)
46
+ get_by('get_by_phone', phone)
47
+ end
48
+
49
+ # updates a client
50
+ #
51
+ # @param [Hash] params new client data
52
+ #
53
+ # @return [LimdeskApi::Client]
54
+ def update(params)
55
+ LimdeskApi.put object: object_symbol,
56
+ params: params,
57
+ id: id
58
+ end
17
59
  end
18
60
  end
@@ -10,8 +10,8 @@ module LimdeskApi
10
10
  # @return [LimdeskApi::Client]
11
11
  # @return [LimdeskApi::Sale]
12
12
  def self.get(id)
13
- response = LimdeskApi.get_one(object: self.object_symbol, id: id)
14
- response ? self.new(response) : nil
13
+ response = LimdeskApi.get_one(object: object_symbol, id: id)
14
+ response ? new(response) : nil
15
15
  end
16
16
 
17
17
  # Creates an object by LimdeskAPI
@@ -22,8 +22,8 @@ module LimdeskApi
22
22
  # @return [LimdeskApi::Client]
23
23
  # @return [LimdeskApi::Sale]
24
24
  def self.create(params)
25
- response = LimdeskApi.create(object: self.object_symbol, params: params)
26
- self.new response
25
+ response = LimdeskApi.create(object: object_symbol, params: params)
26
+ new response
27
27
  end
28
28
 
29
29
  # Gets all objects of a type from LimdeskAPI
@@ -33,13 +33,13 @@ module LimdeskApi
33
33
  # @return [Array<LimdeskApi::Sale>]
34
34
  # @return [Array<LimdeskApi::Activity>]
35
35
  def self.all
36
- LimdeskApi.get_all(self.object_symbol).map { |obj| self.new obj }
36
+ LimdeskApi.get_all(object_symbol).map { |obj| new obj }
37
37
  end
38
38
 
39
39
  # Helper - get class name as a symbol
40
40
  # @return [Symbol]
41
41
  def self.object_symbol
42
- self.name.downcase.split(':').last.to_sym
42
+ name.downcase.split(':').last.to_sym
43
43
  end
44
44
 
45
45
  # Force object to refresh itself from LimdeskAPI
@@ -48,7 +48,7 @@ module LimdeskApi
48
48
  # @return [LimdeskApi::Client]
49
49
  # @return [LimdeskApi::Sale]
50
50
  def refresh!
51
- self.marshal_load(self.class.get(self['id']).marshal_dump)
51
+ marshal_load(self.class.get(self['id']).marshal_dump)
52
52
  end
53
53
 
54
54
  # Delete an object by LimdeskAPI
@@ -37,7 +37,7 @@ module LimdeskApi
37
37
  # Refreshes the object from the server
38
38
  # @return [LimdeskApi::Ticket]
39
39
  def refresh!
40
- self.marshal_load(Ticket.get(self['number']).marshal_dump)
40
+ marshal_load(Ticket.get(self['number']).marshal_dump)
41
41
  end
42
42
 
43
43
  # Closes a ticket
@@ -66,7 +66,7 @@ module LimdeskApi
66
66
  # @return [Boolean]
67
67
  def reopen
68
68
  response = LimdeskApi.put(
69
- id: self.number,
69
+ id: number,
70
70
  object: :ticket,
71
71
  action: :reopen,
72
72
  params: {})
@@ -85,7 +85,7 @@ module LimdeskApi
85
85
  fail 'BadAnswerType' unless Ticket::ANSWER_TYPES.keys.include?(params[:answer_type])
86
86
  params['type'] = Ticket::ANSWER_TYPES[params.delete(:answer_type)]
87
87
  response = LimdeskApi.post_simple(
88
- id: self.number,
88
+ id: number,
89
89
  object: :ticket,
90
90
  action: :answer,
91
91
  params: params)
@@ -1,3 +1,3 @@
1
1
  module LimdeskApi
2
- VERSION = '0.0.2'
2
+ VERSION = '0.0.3'
3
3
  end
data/lib/limdesk_api.rb CHANGED
@@ -69,6 +69,7 @@ module LimdeskApi
69
69
  resp = @connection.get do |req|
70
70
  req.url generate_url params
71
71
  req.params[:key] = @key
72
+ req.params[:query] = params[:query] if params[:query]
72
73
  end
73
74
  case resp.status
74
75
  when 200
@@ -181,14 +182,14 @@ module LimdeskApi
181
182
  end
182
183
 
183
184
  def self.put(params)
184
- self.update(:put, params)
185
+ update(:put, params)
185
186
  end
186
187
 
187
188
  def self.post_simple(params)
188
- self.update(:post, params)
189
+ update(:post, params)
189
190
  end
190
191
 
191
192
  def self.delete(params)
192
- self.update(:delete, params)
193
+ update(:delete, params)
193
194
  end
194
195
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: limdesk_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Grzegorz Siehień
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-03 00:00:00.000000000 Z
11
+ date: 2014-11-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler