basecrm 1.3.4 → 1.3.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. checksums.yaml +5 -5
  2. data/LICENSE +201 -22
  3. data/README.md +42 -6
  4. data/lib/basecrm.rb +33 -0
  5. data/lib/basecrm/models/contact.rb +1 -1
  6. data/lib/basecrm/models/text_message.rb +43 -0
  7. data/lib/basecrm/models/visit.rb +37 -0
  8. data/lib/basecrm/models/visit_outcome.rb +19 -0
  9. data/lib/basecrm/services/deals_service.rb +1 -1
  10. data/lib/basecrm/services/text_messages_service.rb +67 -0
  11. data/lib/basecrm/services/visit_outcomes_service.rb +47 -0
  12. data/lib/basecrm/services/visits_service.rb +53 -0
  13. data/lib/basecrm/utils/coercion.rb +1 -1
  14. data/lib/basecrm/version.rb +1 -1
  15. data/spec/factories/associated_contact.rb +2 -2
  16. data/spec/factories/call.rb +1 -1
  17. data/spec/factories/contact.rb +3 -3
  18. data/spec/factories/deal.rb +1 -1
  19. data/spec/factories/deal_source.rb +2 -2
  20. data/spec/factories/deal_unqualified_reason.rb +2 -2
  21. data/spec/factories/lead.rb +3 -3
  22. data/spec/factories/lead_source.rb +2 -2
  23. data/spec/factories/line_item.rb +2 -2
  24. data/spec/factories/loss_reason.rb +2 -2
  25. data/spec/factories/note.rb +1 -1
  26. data/spec/factories/order.rb +1 -1
  27. data/spec/factories/product.rb +1 -1
  28. data/spec/factories/source.rb +2 -2
  29. data/spec/factories/tag.rb +2 -2
  30. data/spec/factories/task.rb +1 -1
  31. data/spec/factories/text_message.rb +7 -0
  32. data/spec/services/text_messages_service_spec.rb +23 -0
  33. data/spec/services/visit_outcomes_service_spec.rb +22 -0
  34. data/spec/services/visits_service_spec.rb +22 -0
  35. data/spec/spec_helper.rb +5 -4
  36. data/spec/support/client_helpers.rb +2 -2
  37. data/spec/utils/coercion.rb +2 -2
  38. data/spec/utils/coercion_spec.rb +2 -2
  39. metadata +64 -51
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 5e621bfe41a88f35c122a699674160402813de8b
4
- data.tar.gz: 920db4f000725a80af23bfa9a77c1075580da116
2
+ SHA256:
3
+ metadata.gz: afa9bee39abea53bd2f89300e5e50cb638021d64b31372c0de31f8658f52a21b
4
+ data.tar.gz: e2f9681713ab28c138f64355ea069f95774b705cb85466ff26b69874bd2a7200
5
5
  SHA512:
6
- metadata.gz: 75bbebdc011bea3940a6d2103fcff88e7e48fd78f9b35de41230c98c959fffd33063b8d56f17c6ac201b65609cec27d23f3f2900b9b64f89efa4208652928dee
7
- data.tar.gz: 784f33b5bc21b7635887c8a29f99904d7d4dacac0f7ce5969a44172e4ebb0b5f7412db3e1018fb74f29c6cf56decbbb7fe26c99b9ac4b499ae07fe142c02cf5f
6
+ metadata.gz: 43f0e183a4f134c48347cbad9866ea8dd7f59f9cbf7df06c185f9e22279c630673d9889a2efb10367564c6241914f38144cf6f322484ff9c244dca87dfb43786
7
+ data.tar.gz: 431333dce4e47268eb3f43d41b2206bb7befdadf60f7ca4dc152fa32c56b4cfeab18284876a81fa17bdfcc6450108c033693be823277a3adaa328dd949e57202
data/LICENSE CHANGED
@@ -1,22 +1,201 @@
1
- Copyright (c) 2015-2018 BaseCRM developers
2
-
3
- MIT License
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining
6
- a copy of this software and associated documentation files (the
7
- "Software"), to deal in the Software without restriction, including
8
- without limitation the rights to use, copy, modify, merge, publish,
9
- distribute, sublicense, and/or sell copies of the Software, and to
10
- permit persons to whom the Software is furnished to do so, subject to
11
- the following conditions:
12
-
13
- The above copyright notice and this permission notice shall be
14
- included in all copies or substantial portions of the Software.
15
-
16
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
1
+ Apache License
2
+ Version 2.0, January 2004
3
+ http://www.apache.org/licenses/
4
+
5
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6
+
7
+ 1. Definitions.
8
+
9
+ "License" shall mean the terms and conditions for use, reproduction,
10
+ and distribution as defined by Sections 1 through 9 of this document.
11
+
12
+ "Licensor" shall mean the copyright owner or entity authorized by
13
+ the copyright owner that is granting the License.
14
+
15
+ "Legal Entity" shall mean the union of the acting entity and all
16
+ other entities that control, are controlled by, or are under common
17
+ control with that entity. For the purposes of this definition,
18
+ "control" means (i) the power, direct or indirect, to cause the
19
+ direction or management of such entity, whether by contract or
20
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
21
+ outstanding shares, or (iii) beneficial ownership of such entity.
22
+
23
+ "You" (or "Your") shall mean an individual or Legal Entity
24
+ exercising permissions granted by this License.
25
+
26
+ "Source" form shall mean the preferred form for making modifications,
27
+ including but not limited to software source code, documentation
28
+ source, and configuration files.
29
+
30
+ "Object" form shall mean any form resulting from mechanical
31
+ transformation or translation of a Source form, including but
32
+ not limited to compiled object code, generated documentation,
33
+ and conversions to other media types.
34
+
35
+ "Work" shall mean the work of authorship, whether in Source or
36
+ Object form, made available under the License, as indicated by a
37
+ copyright notice that is included in or attached to the work
38
+ (an example is provided in the Appendix below).
39
+
40
+ "Derivative Works" shall mean any work, whether in Source or Object
41
+ form, that is based on (or derived from) the Work and for which the
42
+ editorial revisions, annotations, elaborations, or other modifications
43
+ represent, as a whole, an original work of authorship. For the purposes
44
+ of this License, Derivative Works shall not include works that remain
45
+ separable from, or merely link (or bind by name) to the interfaces of,
46
+ the Work and Derivative Works thereof.
47
+
48
+ "Contribution" shall mean any work of authorship, including
49
+ the original version of the Work and any modifications or additions
50
+ to that Work or Derivative Works thereof, that is intentionally
51
+ submitted to Licensor for inclusion in the Work by the copyright owner
52
+ or by an individual or Legal Entity authorized to submit on behalf of
53
+ the copyright owner. For the purposes of this definition, "submitted"
54
+ means any form of electronic, verbal, or written communication sent
55
+ to the Licensor or its representatives, including but not limited to
56
+ communication on electronic mailing lists, source code control systems,
57
+ and issue tracking systems that are managed by, or on behalf of, the
58
+ Licensor for the purpose of discussing and improving the Work, but
59
+ excluding communication that is conspicuously marked or otherwise
60
+ designated in writing by the copyright owner as "Not a Contribution."
61
+
62
+ "Contributor" shall mean Licensor and any individual or Legal Entity
63
+ on behalf of whom a Contribution has been received by Licensor and
64
+ subsequently incorporated within the Work.
65
+
66
+ 2. Grant of Copyright License. Subject to the terms and conditions of
67
+ this License, each Contributor hereby grants to You a perpetual,
68
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69
+ copyright license to reproduce, prepare Derivative Works of,
70
+ publicly display, publicly perform, sublicense, and distribute the
71
+ Work and such Derivative Works in Source or Object form.
72
+
73
+ 3. Grant of Patent License. Subject to the terms and conditions of
74
+ this License, each Contributor hereby grants to You a perpetual,
75
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76
+ (except as stated in this section) patent license to make, have made,
77
+ use, offer to sell, sell, import, and otherwise transfer the Work,
78
+ where such license applies only to those patent claims licensable
79
+ by such Contributor that are necessarily infringed by their
80
+ Contribution(s) alone or by combination of their Contribution(s)
81
+ with the Work to which such Contribution(s) was submitted. If You
82
+ institute patent litigation against any entity (including a
83
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
84
+ or a Contribution incorporated within the Work constitutes direct
85
+ or contributory patent infringement, then any patent licenses
86
+ granted to You under this License for that Work shall terminate
87
+ as of the date such litigation is filed.
88
+
89
+ 4. Redistribution. You may reproduce and distribute copies of the
90
+ Work or Derivative Works thereof in any medium, with or without
91
+ modifications, and in Source or Object form, provided that You
92
+ meet the following conditions:
93
+
94
+ (a) You must give any other recipients of the Work or
95
+ Derivative Works a copy of this License; and
96
+
97
+ (b) You must cause any modified files to carry prominent notices
98
+ stating that You changed the files; and
99
+
100
+ (c) You must retain, in the Source form of any Derivative Works
101
+ that You distribute, all copyright, patent, trademark, and
102
+ attribution notices from the Source form of the Work,
103
+ excluding those notices that do not pertain to any part of
104
+ the Derivative Works; and
105
+
106
+ (d) If the Work includes a "NOTICE" text file as part of its
107
+ distribution, then any Derivative Works that You distribute must
108
+ include a readable copy of the attribution notices contained
109
+ within such NOTICE file, excluding those notices that do not
110
+ pertain to any part of the Derivative Works, in at least one
111
+ of the following places: within a NOTICE text file distributed
112
+ as part of the Derivative Works; within the Source form or
113
+ documentation, if provided along with the Derivative Works; or,
114
+ within a display generated by the Derivative Works, if and
115
+ wherever such third-party notices normally appear. The contents
116
+ of the NOTICE file are for informational purposes only and
117
+ do not modify the License. You may add Your own attribution
118
+ notices within Derivative Works that You distribute, alongside
119
+ or as an addendum to the NOTICE text from the Work, provided
120
+ that such additional attribution notices cannot be construed
121
+ as modifying the License.
122
+
123
+ You may add Your own copyright statement to Your modifications and
124
+ may provide additional or different license terms and conditions
125
+ for use, reproduction, or distribution of Your modifications, or
126
+ for any such Derivative Works as a whole, provided Your use,
127
+ reproduction, and distribution of the Work otherwise complies with
128
+ the conditions stated in this License.
129
+
130
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
131
+ any Contribution intentionally submitted for inclusion in the Work
132
+ by You to the Licensor shall be under the terms and conditions of
133
+ this License, without any additional terms or conditions.
134
+ Notwithstanding the above, nothing herein shall supersede or modify
135
+ the terms of any separate license agreement you may have executed
136
+ with Licensor regarding such Contributions.
137
+
138
+ 6. Trademarks. This License does not grant permission to use the trade
139
+ names, trademarks, service marks, or product names of the Licensor,
140
+ except as required for reasonable and customary use in describing the
141
+ origin of the Work and reproducing the content of the NOTICE file.
142
+
143
+ 7. Disclaimer of Warranty. Unless required by applicable law or
144
+ agreed to in writing, Licensor provides the Work (and each
145
+ Contributor provides its Contributions) on an "AS IS" BASIS,
146
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147
+ implied, including, without limitation, any warranties or conditions
148
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149
+ PARTICULAR PURPOSE. You are solely responsible for determining the
150
+ appropriateness of using or redistributing the Work and assume any
151
+ risks associated with Your exercise of permissions under this License.
152
+
153
+ 8. Limitation of Liability. In no event and under no legal theory,
154
+ whether in tort (including negligence), contract, or otherwise,
155
+ unless required by applicable law (such as deliberate and grossly
156
+ negligent acts) or agreed to in writing, shall any Contributor be
157
+ liable to You for damages, including any direct, indirect, special,
158
+ incidental, or consequential damages of any character arising as a
159
+ result of this License or out of the use or inability to use the
160
+ Work (including but not limited to damages for loss of goodwill,
161
+ work stoppage, computer failure or malfunction, or any and all
162
+ other commercial damages or losses), even if such Contributor
163
+ has been advised of the possibility of such damages.
164
+
165
+ 9. Accepting Warranty or Additional Liability. While redistributing
166
+ the Work or Derivative Works thereof, You may choose to offer,
167
+ and charge a fee for, acceptance of support, warranty, indemnity,
168
+ or other liability obligations and/or rights consistent with this
169
+ License. However, in accepting such obligations, You may act only
170
+ on Your own behalf and on Your sole responsibility, not on behalf
171
+ of any other Contributor, and only if You agree to indemnify,
172
+ defend, and hold each Contributor harmless for any liability
173
+ incurred by, or claims asserted against, such Contributor by reason
174
+ of your accepting any such warranty or additional liability.
175
+
176
+ END OF TERMS AND CONDITIONS
177
+
178
+ APPENDIX: How to apply the Apache License to your work.
179
+
180
+ To apply the Apache License to your work, attach the following
181
+ boilerplate notice, with the fields enclosed by brackets "[]"
182
+ replaced with your own identifying information. (Don't include
183
+ the brackets!) The text should be enclosed in the appropriate
184
+ comment syntax for the file format. We also recommend that a
185
+ file or class name and description of purpose be included on the
186
+ same "printed page" as the copyright notice for easier
187
+ identification within third-party archives.
188
+
189
+ Copyright 2013 Zendesk
190
+
191
+ Licensed under the Apache License, Version 2.0 (the "License");
192
+ you may not use this file except in compliance with the License.
193
+ You may obtain a copy of the License at
194
+
195
+ http://www.apache.org/licenses/LICENSE-2.0
196
+
197
+ Unless required by applicable law or agreed to in writing, software
198
+ distributed under the License is distributed on an "AS IS" BASIS,
199
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200
+ See the License for the specific language governing permissions and
201
+ limitations under the License.
data/README.md CHANGED
@@ -21,7 +21,7 @@ gem 'basecrm'
21
21
  To get the latest version, put this in your Gemfile:
22
22
 
23
23
  ```ruby
24
- gem 'basecrm', :git => 'git://github.com/basecrm/basecrm-ruby.git'
24
+ gem 'basecrm', :git => 'git://github.com/zendesk/basecrm-ruby.git'
25
25
  ```
26
26
 
27
27
  ## Usage
@@ -437,6 +437,17 @@ Actions:
437
437
  * Update a task - `client.tasks.update`
438
438
  * Delete a task - `client.tasks.destroy`
439
439
 
440
+ ### TextMessage
441
+
442
+ ```ruby
443
+ client = BaseCRM::Client.new(access_token: "<YOUR_PERSONAL_ACCESS_TOKEN>")
444
+ client.text_messages # => BaseCRM::TextMessagesService
445
+ ```
446
+
447
+ Actions:
448
+ * Retrieve text messages - `client.text_messages.all`
449
+ * Retrieve a single text message - `client.text_messages.find`
450
+
440
451
  ### User
441
452
 
442
453
  ```ruby
@@ -449,12 +460,37 @@ Actions:
449
460
  * Retrieve a single user - `client.users.find`
450
461
  * Retrieve an authenticating user - `client.users.self`
451
462
 
463
+ ### Visit
464
+
465
+ ```ruby
466
+ client = BaseCRM::Client.new(access_token: "<YOUR_PERSONAL_ACCESS_TOKEN>")
467
+ client.visits # => BaseCRM::VisitsService
468
+ ```
452
469
 
453
- ## License
454
- MIT
470
+ Actions:
471
+ * Retrieve visits - `client.visits.all`
472
+
473
+ ### VisitOutcome
474
+
475
+ ```ruby
476
+ client = BaseCRM::Client.new(access_token: "<YOUR_PERSONAL_ACCESS_TOKEN>")
477
+ client.visit_outcomes # => BaseCRM::VisitOutcomesService
478
+ ```
479
+
480
+ Actions:
481
+ * Retrieve visit outcomes - `client.visit_outcomes.all`
455
482
 
456
483
  ## Bug Reports
457
- Report [here](https://github.com/basecrm/basecrm-ruby/issues).
484
+ Report [here](https://github.com/zendesk/basecrm-ruby/issues).
485
+
486
+ ## Releasing new version of gem
487
+
488
+ 1. Update version [lib/basecrm/version.rb](lib/basecrm/version.rb) and [VERSION](VERSION) and push to `master`
489
+ 2. Create new GitHub release with tag name starting with `v` and the version, for example `v1.0.0`
490
+ 3. Gem will be automatically built and pushed to rubygems.org with GitHub Action
491
+
492
+ ## Copyright and license
493
+
494
+ Copyright 2013 Zendesk
458
495
 
459
- ## Contact
460
- BaseCRM developers (developers@getbase.com)
496
+ Licensed under the [Apache License, Version 2.0](LICENSE)
data/lib/basecrm.rb CHANGED
@@ -34,7 +34,10 @@ require 'basecrm/models/source'
34
34
  require 'basecrm/models/stage'
35
35
  require 'basecrm/models/tag'
36
36
  require 'basecrm/models/task'
37
+ require 'basecrm/models/text_message'
37
38
  require 'basecrm/models/user'
39
+ require 'basecrm/models/visit'
40
+ require 'basecrm/models/visit_outcome'
38
41
  require 'basecrm/models/sync_queue'
39
42
  require 'basecrm/models/sync_session'
40
43
  require 'basecrm/models/sync_meta'
@@ -61,7 +64,10 @@ require 'basecrm/services/sources_service'
61
64
  require 'basecrm/services/stages_service'
62
65
  require 'basecrm/services/tags_service'
63
66
  require 'basecrm/services/tasks_service'
67
+ require 'basecrm/services/text_messages_service'
64
68
  require 'basecrm/services/users_service'
69
+ require 'basecrm/services/visits_service'
70
+ require 'basecrm/services/visit_outcomes_service'
65
71
  require 'basecrm/services/sync_service'
66
72
 
67
73
  require 'basecrm/sync'
@@ -283,6 +289,15 @@ module BaseCRM
283
289
  @tasks ||= TasksService.new(@http_client)
284
290
  end
285
291
 
292
+ # Access all TextMessages related actions.
293
+ # @see TextMessagesService
294
+ # @see TextMessage
295
+ #
296
+ # @return [TextMessagesService] Service object for resources.
297
+ def text_messages
298
+ @text_messages ||= TextMessagesService.new(@http_client)
299
+ end
300
+
286
301
  # Access all Users related actions.
287
302
  # @see UsersService
288
303
  # @see User
@@ -292,6 +307,24 @@ module BaseCRM
292
307
  @users ||= UsersService.new(@http_client)
293
308
  end
294
309
 
310
+ # Access all Visits related actions.
311
+ # @see VisitsService
312
+ # @see Visit
313
+ #
314
+ # @return [VisitsService] Service object for resources.
315
+ def visits
316
+ @visits ||= VisitsService.new(@http_client)
317
+ end
318
+
319
+ # Access all VisitOutcomes related actions.
320
+ # @see VisitOutcomesService
321
+ # @see VisitOutcome
322
+ #
323
+ # @return [VisitOutcomesService] Service object for resources.
324
+ def visit_outcomes
325
+ @visit_outcomes ||= VisitOutcomesService.new(@http_client)
326
+ end
327
+
295
328
  # Access Sync API related low-level actions.
296
329
  # @see SyncService
297
330
  #
@@ -22,7 +22,7 @@ module BaseCRM
22
22
  # @return [Integer] The unique identifier of the organization the contact belongs to. The field will be set only if the contact is an individual.
23
23
  # attr_accessor :contact_id
24
24
  # @!attribute [rw] custom_fields
25
- # @return [Hash] Custom fields are a key-value pair attached to a contact. See more at [Custom Fields](/docs/rest/articles/requests#custom_fields).
25
+ # @return [Hash] Custom fields are a key-value pair attached to a contact. See more at [Custom Fields](/docs/rest/articles/requests#custom_fields). Note! You need to set Filterable on from Settings -> Contacts to be able to search by custom fields
26
26
  # attr_accessor :custom_fields
27
27
  # @!attribute [rw] customer_status
28
28
  # @return [String] The customer status of the contact.
@@ -0,0 +1,43 @@
1
+ # WARNING: This code is auto-generated from the BaseCRM API Discovery JSON Schema
2
+
3
+ module BaseCRM
4
+ class TextMessage < Model
5
+ # @!attribute [r] associated_deal_ids
6
+ # @return [Array<Integer>] An array of ids of deals associated to the text message.
7
+ # attr_reader :associated_deal_ids
8
+ # @!attribute [r] content
9
+ # @return [String] Content of the text message.
10
+ # attr_reader :content
11
+ # @!attribute [r] created_at
12
+ # @return [DateTime] Date and time of creation in UTC (ISO8601 format).
13
+ # attr_reader :created_at
14
+ # @!attribute [r] id
15
+ # @return [Integer] Unique identifier of the text_message.
16
+ # attr_reader :id
17
+ # @!attribute [r] incoming
18
+ # @return [Boolean] Indicator of whether the text message was incoming or not.
19
+ # attr_reader :incoming
20
+ # @!attribute [r] resource_id
21
+ # @return [Integer] Unique identifier of the resource the text message is attached to.
22
+ # attr_reader :resource_id
23
+ # @!attribute [r] resource_phone_number
24
+ # @return [String] Phone number of a resource the text message was sent to/received by.
25
+ # attr_reader :resource_phone_number
26
+ # @!attribute [r] resource_type
27
+ # @return [String] Name of a resource type the text message is attached to.
28
+ # attr_reader :resource_type
29
+ # @!attribute [r] sent_at
30
+ # @return [DateTime] Date and time of the message send time in UTC (ISO8601 format).
31
+ # attr_reader :sent_at
32
+ # @!attribute [r] updated_at
33
+ # @return [DateTime] Date and time of the last update in UTC (ISO8601 format).
34
+ # attr_reader :updated_at
35
+ # @!attribute [r] user_id
36
+ # @return [Integer] Unique identifier of a user who sent/received a text message.
37
+ # attr_reader :user_id
38
+ # @!attribute [r] user_phone_number
39
+ # @return [String] Phone number of a user who sent/received a text message.
40
+ # attr_reader :user_phone_number
41
+
42
+ end
43
+ end
@@ -0,0 +1,37 @@
1
+ # WARNING: This code is auto-generated from the BaseCRM API Discovery JSON Schema
2
+
3
+ module BaseCRM
4
+ class Visit < Model
5
+ # @!attribute [r] created_at
6
+ # @return [DateTime] Date and time of creation in UTC (ISO8601 format).
7
+ # attr_reader :created_at
8
+ # @!attribute [r] creator_id
9
+ # @return [Integer] Unique identifier of a user who created a visit.
10
+ # attr_reader :creator_id
11
+ # @!attribute [r] id
12
+ # @return [Integer] Unique identifier of a visit.
13
+ # attr_reader :id
14
+ # @!attribute [r] outcome_id
15
+ # @return [Integer] Unique identifier of a visit outcome.
16
+ # attr_reader :outcome_id
17
+ # @!attribute [r] rep_location_verification_status
18
+ # @return [String] The status of the location verification of the device that created the visit (sales representative).
19
+ # attr_reader :rep_location_verification_status
20
+ # @!attribute [r] resource_address
21
+ # @return [String] Address of the visit
22
+ # attr_reader :resource_address
23
+ # @!attribute [r] resource_id
24
+ # @return [Integer] The ID of the resource the visit is attached to. Requires the resource_type query param to be set as well.
25
+ # attr_reader :resource_id
26
+ # @!attribute [r] resource_type
27
+ # @return [String] The type of the resource the visit is attached to.
28
+ # attr_reader :resource_type
29
+ # @!attribute [r] summary
30
+ # @return [String] Summary of the visit.
31
+ # attr_reader :summary
32
+ # @!attribute [r] updated_at
33
+ # @return [DateTime] Date and time of the last update in UTC (ISO8601 format).
34
+ # attr_reader :updated_at
35
+
36
+ end
37
+ end
@@ -0,0 +1,19 @@
1
+ # WARNING: This code is auto-generated from the BaseCRM API Discovery JSON Schema
2
+
3
+ module BaseCRM
4
+ class VisitOutcome < Model
5
+ # @!attribute [r] created_at
6
+ # @return [DateTime] Date and time of creation in UTC (ISO8601 format).
7
+ # attr_reader :created_at
8
+ # @!attribute [r] id
9
+ # @return [Integer] Unique identifier of a visit outcome.
10
+ # attr_reader :id
11
+ # @!attribute [r] name
12
+ # @return [String] Name of the visit outcome.
13
+ # attr_reader :name
14
+ # @!attribute [r] updated_at
15
+ # @return [DateTime] Date and time of the last update in UTC (ISO8601 format).
16
+ # attr_reader :updated_at
17
+
18
+ end
19
+ end
@@ -2,7 +2,7 @@
2
2
 
3
3
  module BaseCRM
4
4
  class DealsService
5
- OPTS_KEYS_TO_PERSIST = Set[:contact_id, :currency, :custom_fields, :hot, :loss_reason_id, :name, :owner_id, :source_id, :stage_id, :tags, :value, :last_stage_change_at, :estimated_close_date, :customized_win_likelihood]
5
+ OPTS_KEYS_TO_PERSIST = Set[:contact_id, :currency, :custom_fields, :hot, :loss_reason_id, :unqualified_reason_id, :name, :owner_id, :source_id, :stage_id, :tags, :value, :last_stage_change_at, :estimated_close_date, :customized_win_likelihood]
6
6
 
7
7
  def initialize(client)
8
8
  @client = client
@@ -0,0 +1,67 @@
1
+ # WARNING: This code is auto-generated from the BaseCRM API Discovery JSON Schema
2
+
3
+ module BaseCRM
4
+ class TextMessagesService
5
+ def initialize(client)
6
+ @client = client
7
+ end
8
+
9
+ # Retrieve text messages
10
+ #
11
+ # get '/text_messages'
12
+ #
13
+ # If you want to use filtering or sorting (see #where).
14
+ # @return [Enumerable] Paginated resource you can use to iterate over all the resources.
15
+ def all
16
+ PaginatedResource.new(self)
17
+ end
18
+
19
+ # Retrieve text messages
20
+ #
21
+ # get '/text_messages'
22
+ #
23
+ # Returns Text Messages, according to the parameters provided
24
+ #
25
+ # @param options [Hash] Search options
26
+ # @option options [Integer] :page (1) Page number to start from. Page numbering starts at 1, and omitting the `page` parameter will return the first page.
27
+ # @option options [Integer] :per_page (25) Number of records to return per page. The default limit is *25* and the maximum number that can be returned at one time is *100*.
28
+ # @option options [String] :ids Comma-separated list of text message IDs to be returned in request.
29
+ # @option options [Integer] :resource_id Unique identifier of a resource the text message is attached to. Requires also resource_type to be specified.
30
+ # @option options [String] :resource_type Name of a resource type the text message is attached to. Requires also resource_id to be specified.
31
+ # @option options [String] :sort_by (id:desc) Comma-separated list of fields to sort by. The sort criteria is applied in the order specified. The **default** ordering is **descending**. If you want to change the sort ordering to ascending, append `:asc` to the field e.g. `sort_by=id:asc`
32
+ # @return [Array<TextMessage>] The list of TextMessages for the first page, unless otherwise specified.
33
+ def where(options = {})
34
+ _, _, root = @client.get("/text_messages", options)
35
+
36
+ root[:items].map{ |item| TextMessage.new(item[:data]) }
37
+ end
38
+
39
+
40
+ # Retrieve a single text message
41
+ #
42
+ # get '/text_messages/{id}'
43
+ #
44
+ # Returns a single text message according to the unique ID provided
45
+ # If the specified user does not exist, this query returns an error
46
+ #
47
+ # @param id [Integer] Unique identifier of a TextMessage
48
+ # @return [TextMessage] Searched resource object.
49
+ def find(id)
50
+ _, _, root = @client.get("/text_messages/#{id}")
51
+
52
+ TextMessage.new(root[:data])
53
+ end
54
+
55
+
56
+ private
57
+ def validate_type!(text_message)
58
+ raise TypeError unless text_message.is_a?(TextMessage) || text_message.is_a?(Hash)
59
+ end
60
+
61
+ def extract_params!(text_message, *args)
62
+ params = text_message.to_h.select{ |k, _| args.include?(k) }
63
+ raise ArgumentError, "one of required attributes is missing. Expected: #{args.join(',')}" if params.count != args.length
64
+ params
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,47 @@
1
+ # WARNING: This code is auto-generated from the BaseCRM API Discovery JSON Schema
2
+
3
+ module BaseCRM
4
+ class VisitOutcomesService
5
+ def initialize(client)
6
+ @client = client
7
+ end
8
+
9
+ # Retrieve visit outcomes
10
+ #
11
+ # get '/visit_outcomes'
12
+ #
13
+ # If you want to use filtering or sorting (see #where).
14
+ # @return [Enumerable] Paginated resource you can use to iterate over all the resources.
15
+ def all
16
+ PaginatedResource.new(self)
17
+ end
18
+
19
+ # Retrieve visit outcomes
20
+ #
21
+ # get '/visit_outcomes'
22
+ #
23
+ # Returns Visit Outcomes, according to the parameters provided
24
+ #
25
+ # @param options [Hash] Search options
26
+ # @option options [Integer] :page (1) Page number to start from. Page numbering starts at 1, and omitting the `page` parameter will return the first page.
27
+ # @option options [Integer] :per_page (25) Number of records to return per page. The default limit is *25* and the maximum number that can be returned at one time is *100*.
28
+ # @return [Array<VisitOutcome>] The list of VisitOutcomes for the first page, unless otherwise specified.
29
+ def where(options = {})
30
+ _, _, root = @client.get("/visit_outcomes", options)
31
+
32
+ root[:items].map{ |item| VisitOutcome.new(item[:data]) }
33
+ end
34
+
35
+
36
+ private
37
+ def validate_type!(visit_outcome)
38
+ raise TypeError unless visit_outcome.is_a?(VisitOutcome) || visit_outcome.is_a?(Hash)
39
+ end
40
+
41
+ def extract_params!(visit_outcome, *args)
42
+ params = visit_outcome.to_h.select{ |k, _| args.include?(k) }
43
+ raise ArgumentError, "one of required attributes is missing. Expected: #{args.join(',')}" if params.count != args.length
44
+ params
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,53 @@
1
+ # WARNING: This code is auto-generated from the BaseCRM API Discovery JSON Schema
2
+
3
+ module BaseCRM
4
+ class VisitsService
5
+ def initialize(client)
6
+ @client = client
7
+ end
8
+
9
+ # Retrieve visits
10
+ #
11
+ # get '/visits'
12
+ #
13
+ # If you want to use filtering or sorting (see #where).
14
+ # @return [Enumerable] Paginated resource you can use to iterate over all the resources.
15
+ def all
16
+ PaginatedResource.new(self)
17
+ end
18
+
19
+ # Retrieve visits
20
+ #
21
+ # get '/visits'
22
+ #
23
+ # Returns Visits, according to the parameters provided
24
+ #
25
+ # @param options [Hash] Search options
26
+ # @option options [Integer] :page (1) Page number to start from. Page numbering starts at 1, and omitting the `page` parameter will return the first page.
27
+ # @option options [Integer] :per_page (25) Number of records to return per page. The default limit is *25* and the maximum number that can be returned at one time is *100*.
28
+ # @option options [Integer] :outcome_id Unique identifier of a visit outcome.
29
+ # @option options [Integer] :creator_id Unique identifier of a user who created a visit.
30
+ # @option options [Integer] :resource_id Unique identifier of a resource the visit is attached to. Requires also resource_type to be specified.
31
+ # @option options [String] :resource_type Name of a resource type the visit is attached to. Requires also resource_id to be specified.
32
+ # @option options [String] :rep_location_verification_status The status of the location verification of the device that created the visit (sales representative).
33
+ # @option options [String] :sort_by (id:asc) A field to sort by. Default ordering is ascending. If you want to change the sort order to descending, append :desc to the filed e.g. sort_by=visited_at:desc.
34
+ # @return [Array<Visit>] The list of Visits for the first page, unless otherwise specified.
35
+ def where(options = {})
36
+ _, _, root = @client.get("/visits", options)
37
+
38
+ root[:items].map{ |item| Visit.new(item[:data]) }
39
+ end
40
+
41
+
42
+ private
43
+ def validate_type!(visit)
44
+ raise TypeError unless visit.is_a?(Visit) || visit.is_a?(Hash)
45
+ end
46
+
47
+ def extract_params!(visit, *args)
48
+ params = visit.to_h.select{ |k, _| args.include?(k) }
49
+ raise ArgumentError, "one of required attributes is missing. Expected: #{args.join(',')}" if params.count != args.length
50
+ params
51
+ end
52
+ end
53
+ end
@@ -3,7 +3,7 @@ require "bigdecimal"
3
3
  module BaseCRM
4
4
  class Coercion
5
5
  def self.to_decimal_value(value)
6
- BigDecimal.new((value || 0), 15)
6
+ BigDecimal((value || 0), 15)
7
7
  end
8
8
 
9
9
  def self.to_string(value)
@@ -1,3 +1,3 @@
1
1
  module BaseCRM
2
- VERSION = "1.3.4"
2
+ VERSION = "1.3.9"
3
3
  end
@@ -1,7 +1,7 @@
1
- FactoryGirl.define do
1
+ FactoryBot.define do
2
2
  factory :associated_contact, class: BaseCRM::AssociatedContact do
3
3
  # transient attributes, required in url
4
- deal_id nil
4
+ deal_id { nil }
5
5
 
6
6
  role { "involved" }
7
7
 
@@ -1,6 +1,6 @@
1
1
  require 'securerandom'
2
2
 
3
- FactoryGirl.define do
3
+ FactoryBot.define do
4
4
  factory :call, class: BaseCRM::Call do
5
5
 
6
6
  summary { "Schedule another call." }
@@ -1,8 +1,8 @@
1
- FactoryGirl.define do
1
+ FactoryBot.define do
2
2
  factory :contact, class: BaseCRM::Contact do
3
3
 
4
4
  description { "I know him via Tom" }
5
- email { "mark@designservices.com" }
5
+ email { "mark#{SecureRandom.hex}@example.com" }
6
6
  facebook { "mjohnson" }
7
7
  fax { "+44-208-1234567" }
8
8
  first_name { Faker::Name.first_name }
@@ -17,7 +17,7 @@ FactoryGirl.define do
17
17
  tags { ["important"] }
18
18
  title { "CEO" }
19
19
  twitter { "mjohnson" }
20
- website { "www.designservices.com" }
20
+ website { "www.example.com" }
21
21
 
22
22
 
23
23
  to_create do |contact|
@@ -1,4 +1,4 @@
1
- FactoryGirl.define do
1
+ FactoryBot.define do
2
2
  factory :deal, class: BaseCRM::Deal do
3
3
 
4
4
  currency { "EUR" }
@@ -1,7 +1,7 @@
1
- FactoryGirl.define do
1
+ FactoryBot.define do
2
2
  factory :deal_source, class: BaseCRM::DealSource do
3
3
 
4
- name { Faker::Name.name }
4
+ name { "source#{SecureRandom.hex}" }
5
5
 
6
6
 
7
7
  to_create do |deal_source|
@@ -1,7 +1,7 @@
1
- FactoryGirl.define do
1
+ FactoryBot.define do
2
2
  factory :deal_unqualified_reason, class: BaseCRM::DealUnqualifiedReason do
3
3
 
4
- name { Faker::Name.name }
4
+ name { "unqualified_reason#{SecureRandom.hex}" }
5
5
 
6
6
 
7
7
  to_create do |deal_unqualified_reason|
@@ -1,8 +1,8 @@
1
- FactoryGirl.define do
1
+ FactoryBot.define do
2
2
  factory :lead, class: BaseCRM::Lead do
3
3
 
4
4
  description { "I know him via Tom" }
5
- email { "mark@designservices.com" }
5
+ email { "mark#{SecureRandom.hex}@example.com" }
6
6
  facebook { "mjohnson" }
7
7
  fax { "+44-208-1234567" }
8
8
  first_name { Faker::Name.first_name }
@@ -16,7 +16,7 @@ FactoryGirl.define do
16
16
  tags { ["important"] }
17
17
  title { "CEO" }
18
18
  twitter { "mjohnson" }
19
- website { "www.designservices.com" }
19
+ website { "www.example.com" }
20
20
 
21
21
 
22
22
  to_create do |lead|
@@ -1,7 +1,7 @@
1
- FactoryGirl.define do
1
+ FactoryBot.define do
2
2
  factory :lead_source, class: BaseCRM::LeadSource do
3
3
 
4
- name { Faker::Name.name }
4
+ name { "source#{SecureRandom.hex}" }
5
5
 
6
6
 
7
7
  to_create do |lead_source|
@@ -1,7 +1,7 @@
1
- FactoryGirl.define do
1
+ FactoryBot.define do
2
2
  factory :line_item, class: BaseCRM::LineItem do
3
3
  # transient attributes, required in url
4
- order_id nil
4
+ order_id { nil }
5
5
 
6
6
  product_id { 5 }
7
7
  value { 1599.99 }
@@ -1,7 +1,7 @@
1
- FactoryGirl.define do
1
+ FactoryBot.define do
2
2
  factory :loss_reason, class: BaseCRM::LossReason do
3
3
 
4
- name { Faker::Name.name }
4
+ name { "loss_reason#{Time.now.to_i}" }
5
5
 
6
6
 
7
7
  to_create do |loss_reason|
@@ -1,4 +1,4 @@
1
- FactoryGirl.define do
1
+ FactoryBot.define do
2
2
  factory :note, class: BaseCRM::Note do
3
3
 
4
4
  content { "Highly important." }
@@ -1,4 +1,4 @@
1
- FactoryGirl.define do
1
+ FactoryBot.define do
2
2
  factory :order, class: BaseCRM::Order do
3
3
 
4
4
  deal_id { 5 }
@@ -1,4 +1,4 @@
1
- FactoryGirl.define do
1
+ FactoryBot.define do
2
2
  factory :product, class: BaseCRM::Product do
3
3
 
4
4
  name { Faker::Name.name }
@@ -1,7 +1,7 @@
1
- FactoryGirl.define do
1
+ FactoryBot.define do
2
2
  factory :source, class: BaseCRM::Source do
3
3
 
4
- name { Faker::Name.name }
4
+ name { "source#{SecureRandom.hex}" }
5
5
 
6
6
 
7
7
  to_create do |source|
@@ -1,7 +1,7 @@
1
- FactoryGirl.define do
1
+ FactoryBot.define do
2
2
  factory :tag, class: BaseCRM::Tag do
3
3
 
4
- name { Faker::Name.name }
4
+ name { "tag#{SecureRandom.hex}" }
5
5
 
6
6
  resource_type { :contact }
7
7
 
@@ -1,4 +1,4 @@
1
- FactoryGirl.define do
1
+ FactoryBot.define do
2
2
  factory :task, class: BaseCRM::Task do
3
3
 
4
4
  content { "Contact Tom" }
@@ -0,0 +1,7 @@
1
+ FactoryBot.define do
2
+ factory :text_message, class: BaseCRM::TextMessage do
3
+
4
+
5
+
6
+ end
7
+ end
@@ -0,0 +1,23 @@
1
+ require 'spec_helper'
2
+
3
+ describe BaseCRM::TextMessagesService do
4
+ describe 'Responds to' do
5
+ subject { client.text_messages }
6
+
7
+ it { should respond_to :all }
8
+ it { should respond_to :find }
9
+ it { should respond_to :where }
10
+ end
11
+
12
+ describe :all do
13
+ it "returns a PaginatedResource" do
14
+ expect(client.text_messages.all()).to be_instance_of BaseCRM::PaginatedResource
15
+ end
16
+ end
17
+
18
+ describe :where do
19
+ it "returns an array" do
20
+ expect(client.text_messages.where(page: 1)).to be_an Array
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,22 @@
1
+ require 'spec_helper'
2
+
3
+ describe BaseCRM::VisitOutcomesService do
4
+ describe 'Responds to' do
5
+ subject { client.visit_outcomes }
6
+
7
+ it { should respond_to :all }
8
+ it { should respond_to :where }
9
+ end
10
+
11
+ describe :all do
12
+ it "returns a PaginatedResource" do
13
+ expect(client.visit_outcomes.all()).to be_instance_of BaseCRM::PaginatedResource
14
+ end
15
+ end
16
+
17
+ describe :where do
18
+ it "returns an array" do
19
+ expect(client.visit_outcomes.where(page: 1)).to be_an Array
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,22 @@
1
+ require 'spec_helper'
2
+
3
+ describe BaseCRM::VisitsService do
4
+ describe 'Responds to' do
5
+ subject { client.visits }
6
+
7
+ it { should respond_to :all }
8
+ it { should respond_to :where }
9
+ end
10
+
11
+ describe :all do
12
+ it "returns a PaginatedResource" do
13
+ expect(client.visits.all()).to be_instance_of BaseCRM::PaginatedResource
14
+ end
15
+ end
16
+
17
+ describe :where do
18
+ it "returns an array" do
19
+ expect(client.visits.where(page: 1)).to be_an Array
20
+ end
21
+ end
22
+ end
data/spec/spec_helper.rb CHANGED
@@ -1,10 +1,11 @@
1
1
  require 'rspec/collection_matchers'
2
- require 'factory_girl'
2
+ require 'factory_bot'
3
3
  require 'faker'
4
+ require 'securerandom'
4
5
 
5
6
  require 'basecrm'
6
7
 
7
- module FactoryGirl
8
+ module FactoryBot
8
9
  module Strategy
9
10
  class Create
10
11
  def result(evaluation)
@@ -15,10 +16,10 @@ module FactoryGirl
15
16
  end
16
17
 
17
18
  Dir[File.join(__dir__, "/support/**/*.rb")].each { |f| require f }
18
- FactoryGirl.find_definitions
19
+ FactoryBot.find_definitions
19
20
 
20
21
  RSpec.configure do |config|
21
- config.include FactoryGirl::Syntax::Methods
22
+ config.include FactoryBot::Syntax::Methods
22
23
 
23
24
  config.expect_with :rspec do |expectations|
24
25
  # It makes the `description` and `failure_message` of custom matchers include text for helper methods
@@ -12,7 +12,7 @@ module ClientHelpers
12
12
  end
13
13
 
14
14
  def contact
15
- @contact ||= FactoryGirl.create(:contact)
15
+ @contact ||= FactoryBot.create(:contact)
16
16
  end
17
17
  end
18
18
 
@@ -20,4 +20,4 @@ RSpec.configure do |config|
20
20
  include ClientHelpers
21
21
  end
22
22
 
23
- FactoryGirl::SyntaxRunner.send(:include, ClientHelpers)
23
+ FactoryBot::SyntaxRunner.send(:include, ClientHelpers)
@@ -5,7 +5,7 @@ describe BaseCRM::Coercion do
5
5
  it { expect(BaseCRM::Coercion.to_decimal_value(0)).to eql(0) }
6
6
  it { expect(BaseCRM::Coercion.to_decimal_value("0")).to eql(0) }
7
7
  it { expect(BaseCRM::Coercion.to_decimal_value(nil)).to eql(0) }
8
- it { expect(BaseCRM::Coercion.to_decimal_value(1.1)).to eql(BigDecimal.new("1.1", 15)) }
9
- it { expect(BaseCRM::Coercion.to_decimal_value("1.11")).to eql(BigDecimal.new("1.11", 15)) }
8
+ it { expect(BaseCRM::Coercion.to_decimal_value(1.1)).to eql(BigDecimal("1.1", 15)) }
9
+ it { expect(BaseCRM::Coercion.to_decimal_value("1.11")).to eql(BigDecimal("1.11", 15)) }
10
10
  end
11
11
  end
@@ -6,8 +6,8 @@ describe BaseCRM::Coercion do
6
6
  it { expect(BaseCRM::Coercion.to_decimal_value(0)).to eql(0) }
7
7
  it { expect(BaseCRM::Coercion.to_decimal_value("0")).to eql(0) }
8
8
  it { expect(BaseCRM::Coercion.to_decimal_value(nil)).to eql(0) }
9
- it { expect(BaseCRM::Coercion.to_decimal_value(1.1)).to eql(BigDecimal.new("1.1", 15)) }
10
- it { expect(BaseCRM::Coercion.to_decimal_value("1.11")).to eql(BigDecimal.new("1.11", 15)) }
9
+ it { expect(BaseCRM::Coercion.to_decimal_value(1.1)).to eql(BigDecimal("1.1", 15)) }
10
+ it { expect(BaseCRM::Coercion.to_decimal_value("1.11")).to eql(BigDecimal("1.11", 15)) }
11
11
  end
12
12
 
13
13
  describe "to_string" do
metadata CHANGED
@@ -1,35 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: basecrm
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.4
4
+ version: 1.3.9
5
5
  platform: ruby
6
6
  authors:
7
- - BaseCRM developers
7
+ - Zendesk
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-07-04 00:00:00.000000000 Z
11
+ date: 2021-03-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '0.9'
20
17
  - - ">="
21
18
  - !ruby/object:Gem::Version
22
19
  version: 0.9.0
20
+ - - "~>"
21
+ - !ruby/object:Gem::Version
22
+ version: '0.9'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
- - - "~>"
28
- - !ruby/object:Gem::Version
29
- version: '0.9'
30
27
  - - ">="
31
28
  - !ruby/object:Gem::Version
32
29
  version: 0.9.0
30
+ - - "~>"
31
+ - !ruby/object:Gem::Version
32
+ version: '0.9'
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: json
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -87,19 +87,19 @@ dependencies:
87
87
  - !ruby/object:Gem::Version
88
88
  version: '2.0'
89
89
  - !ruby/object:Gem::Dependency
90
- name: factory_girl
90
+ name: factory_bot
91
91
  requirement: !ruby/object:Gem::Requirement
92
92
  requirements:
93
93
  - - "~>"
94
94
  - !ruby/object:Gem::Version
95
- version: '4.8'
95
+ version: '4.11'
96
96
  type: :development
97
97
  prerelease: false
98
98
  version_requirements: !ruby/object:Gem::Requirement
99
99
  requirements:
100
100
  - - "~>"
101
101
  - !ruby/object:Gem::Version
102
- version: '4.8'
102
+ version: '4.11'
103
103
  - !ruby/object:Gem::Dependency
104
104
  name: faker
105
105
  requirement: !ruby/object:Gem::Requirement
@@ -114,9 +114,9 @@ dependencies:
114
114
  - - "~>"
115
115
  - !ruby/object:Gem::Version
116
116
  version: '1.4'
117
- description: BaseCRM Official API V2 library client for ruby
117
+ description: Zendesk Sell Official API V2 library client for ruby
118
118
  email:
119
- - developers@getbase.com
119
+ - opensource@zendesk.com
120
120
  executables: []
121
121
  extensions: []
122
122
  extra_rdoc_files: []
@@ -158,7 +158,10 @@ files:
158
158
  - lib/basecrm/models/sync_session.rb
159
159
  - lib/basecrm/models/tag.rb
160
160
  - lib/basecrm/models/task.rb
161
+ - lib/basecrm/models/text_message.rb
161
162
  - lib/basecrm/models/user.rb
163
+ - lib/basecrm/models/visit.rb
164
+ - lib/basecrm/models/visit_outcome.rb
162
165
  - lib/basecrm/paginated_resource.rb
163
166
  - lib/basecrm/services/accounts_service.rb
164
167
  - lib/basecrm/services/associated_contacts_service.rb
@@ -182,7 +185,10 @@ files:
182
185
  - lib/basecrm/services/sync_service.rb
183
186
  - lib/basecrm/services/tags_service.rb
184
187
  - lib/basecrm/services/tasks_service.rb
188
+ - lib/basecrm/services/text_messages_service.rb
185
189
  - lib/basecrm/services/users_service.rb
190
+ - lib/basecrm/services/visit_outcomes_service.rb
191
+ - lib/basecrm/services/visits_service.rb
186
192
  - lib/basecrm/sync.rb
187
193
  - lib/basecrm/utils/coercion.rb
188
194
  - lib/basecrm/version.rb
@@ -204,6 +210,7 @@ files:
204
210
  - spec/factories/source.rb
205
211
  - spec/factories/tag.rb
206
212
  - spec/factories/task.rb
213
+ - spec/factories/text_message.rb
207
214
  - spec/middlewares/raise_error_spec.rb
208
215
  - spec/models/sync_meta_spec.rb
209
216
  - spec/services/accounts_service_spec.rb
@@ -228,14 +235,17 @@ files:
228
235
  - spec/services/sync_service_spec.rb
229
236
  - spec/services/tags_service_spec.rb
230
237
  - spec/services/tasks_service_spec.rb
238
+ - spec/services/text_messages_service_spec.rb
231
239
  - spec/services/users_service_spec.rb
240
+ - spec/services/visit_outcomes_service_spec.rb
241
+ - spec/services/visits_service_spec.rb
232
242
  - spec/spec_helper.rb
233
243
  - spec/support/client_helpers.rb
234
244
  - spec/utils/coercion.rb
235
245
  - spec/utils/coercion_spec.rb
236
- homepage: https://github.com/basecrm/basecrm-ruby
246
+ homepage: https://github.com/zendesk/basecrm-ruby
237
247
  licenses:
238
- - MIT
248
+ - Apache License Version 2.0
239
249
  metadata: {}
240
250
  post_install_message:
241
251
  rdoc_options: []
@@ -252,56 +262,59 @@ required_rubygems_version: !ruby/object:Gem::Requirement
252
262
  - !ruby/object:Gem::Version
253
263
  version: '0'
254
264
  requirements: []
255
- rubyforge_project:
256
- rubygems_version: 2.5.2
265
+ rubygems_version: 3.0.3
257
266
  signing_key:
258
267
  specification_version: 4
259
- summary: BaseCRM Official API V2 library client for ruby
268
+ summary: Zendesk Sell Official API V2 library client for ruby
260
269
  test_files:
261
- - spec/spec_helper.rb
262
- - spec/middlewares/raise_error_spec.rb
263
- - spec/utils/coercion_spec.rb
264
- - spec/utils/coercion.rb
265
- - spec/models/sync_meta_spec.rb
266
- - spec/support/client_helpers.rb
270
+ - spec/factories/lead_source.rb
271
+ - spec/factories/call.rb
267
272
  - spec/factories/note.rb
268
- - spec/factories/source.rb
269
273
  - spec/factories/tag.rb
274
+ - spec/factories/associated_contact.rb
275
+ - spec/factories/task.rb
276
+ - spec/factories/lead.rb
277
+ - spec/factories/product.rb
278
+ - spec/factories/loss_reason.rb
279
+ - spec/factories/source.rb
270
280
  - spec/factories/contact.rb
281
+ - spec/factories/lead_unqualified_reason.rb
282
+ - spec/factories/text_message.rb
283
+ - spec/factories/order.rb
271
284
  - spec/factories/deal.rb
272
- - spec/factories/call.rb
273
- - spec/factories/product.rb
274
- - spec/factories/lead.rb
275
285
  - spec/factories/deal_unqualified_reason.rb
276
- - spec/factories/lead_unqualified_reason.rb
277
286
  - spec/factories/deal_source.rb
278
- - spec/factories/order.rb
279
- - spec/factories/lead_source.rb
280
- - spec/factories/associated_contact.rb
281
287
  - spec/factories/line_item.rb
282
- - spec/factories/loss_reason.rb
283
- - spec/factories/task.rb
284
288
  - spec/basecrm/sync_spec.rb
289
+ - spec/support/client_helpers.rb
290
+ - spec/utils/coercion_spec.rb
291
+ - spec/utils/coercion.rb
292
+ - spec/spec_helper.rb
293
+ - spec/middlewares/raise_error_spec.rb
294
+ - spec/services/deals_service_spec.rb
295
+ - spec/services/sync_service_spec.rb
296
+ - spec/services/loss_reasons_service_spec.rb
297
+ - spec/services/stages_service_spec.rb
298
+ - spec/services/products_service_spec.rb
299
+ - spec/services/tasks_service_spec.rb
285
300
  - spec/services/notes_service_spec.rb
301
+ - spec/services/lead_unqualified_reasons_service_spec.rb
302
+ - spec/services/deal_sources_service_spec.rb
303
+ - spec/services/visit_outcomes_service_spec.rb
286
304
  - spec/services/pipelines_service_spec.rb
287
305
  - spec/services/sources_service_spec.rb
288
- - spec/services/orders_service_spec.rb
289
- - spec/services/tasks_service_spec.rb
290
- - spec/services/stages_service_spec.rb
291
- - spec/services/tags_service_spec.rb
292
- - spec/services/products_service_spec.rb
293
- - spec/services/call_outcomes_service_spec.rb
294
306
  - spec/services/lead_sources_service_spec.rb
307
+ - spec/services/tags_service_spec.rb
308
+ - spec/services/contacts_service_spec.rb
295
309
  - spec/services/associated_contacts_service_spec.rb
296
- - spec/services/users_service_spec.rb
297
- - spec/services/leads_service_spec.rb
298
- - spec/services/line_items_service_spec.rb
299
- - spec/services/loss_reasons_service_spec.rb
300
- - spec/services/deal_sources_service_spec.rb
301
- - spec/services/calls_service_spec.rb
302
310
  - spec/services/deal_unqualified_reasons_service_spec.rb
303
- - spec/services/sync_service_spec.rb
304
- - spec/services/lead_unqualified_reasons_service_spec.rb
311
+ - spec/services/orders_service_spec.rb
312
+ - spec/services/calls_service_spec.rb
313
+ - spec/services/visits_service_spec.rb
314
+ - spec/services/text_messages_service_spec.rb
305
315
  - spec/services/accounts_service_spec.rb
306
- - spec/services/contacts_service_spec.rb
307
- - spec/services/deals_service_spec.rb
316
+ - spec/services/line_items_service_spec.rb
317
+ - spec/services/call_outcomes_service_spec.rb
318
+ - spec/services/users_service_spec.rb
319
+ - spec/services/leads_service_spec.rb
320
+ - spec/models/sync_meta_spec.rb