basecrm 1.3.4 → 1.3.5

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: 5e621bfe41a88f35c122a699674160402813de8b
4
- data.tar.gz: 920db4f000725a80af23bfa9a77c1075580da116
3
+ metadata.gz: 3edd2e23d1f92a60d78428691fec6a7d7496b306
4
+ data.tar.gz: c3b879f523fc99539e444a6f50a16fc484152205
5
5
  SHA512:
6
- metadata.gz: 75bbebdc011bea3940a6d2103fcff88e7e48fd78f9b35de41230c98c959fffd33063b8d56f17c6ac201b65609cec27d23f3f2900b9b64f89efa4208652928dee
7
- data.tar.gz: 784f33b5bc21b7635887c8a29f99904d7d4dacac0f7ce5969a44172e4ebb0b5f7412db3e1018fb74f29c6cf56decbbb7fe26c99b9ac4b499ae07fe142c02cf5f
6
+ metadata.gz: 0e3009c58a14482b185a2359a68f90c90e6754c6babcf3db2077c0a491244c25443aba8b96659097e9ff5224de555378af9a7685c5d6118f146afe992901e223
7
+ data.tar.gz: 40a6886b9e548e7e6fe1fa69d4893bef923a07a101b66aae5aa1dba79430990d791741bce19f8a1361358aa8b9b7dfd336cbee04681df9a109dfb6a83cc2485d
data/README.md CHANGED
@@ -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,6 +460,26 @@ 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
+ ```
469
+
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`
482
+
452
483
 
453
484
  ## License
454
485
  MIT
@@ -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
  #
@@ -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
@@ -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
@@ -1,3 +1,3 @@
1
1
  module BaseCRM
2
- VERSION = "1.3.4"
2
+ VERSION = "1.3.5"
3
3
  end
@@ -0,0 +1,7 @@
1
+ FactoryGirl.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
metadata CHANGED
@@ -1,14 +1,14 @@
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.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - BaseCRM developers
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-07-04 00:00:00.000000000 Z
11
+ date: 2018-10-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -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,7 +235,10 @@ 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
@@ -253,7 +263,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
253
263
  version: '0'
254
264
  requirements: []
255
265
  rubyforge_project:
256
- rubygems_version: 2.5.2
266
+ rubygems_version: 2.5.2.3
257
267
  signing_key:
258
268
  specification_version: 4
259
269
  summary: BaseCRM Official API V2 library client for ruby
@@ -271,6 +281,7 @@ test_files:
271
281
  - spec/factories/deal.rb
272
282
  - spec/factories/call.rb
273
283
  - spec/factories/product.rb
284
+ - spec/factories/text_message.rb
274
285
  - spec/factories/lead.rb
275
286
  - spec/factories/deal_unqualified_reason.rb
276
287
  - spec/factories/lead_unqualified_reason.rb
@@ -283,6 +294,7 @@ test_files:
283
294
  - spec/factories/task.rb
284
295
  - spec/basecrm/sync_spec.rb
285
296
  - spec/services/notes_service_spec.rb
297
+ - spec/services/text_messages_service_spec.rb
286
298
  - spec/services/pipelines_service_spec.rb
287
299
  - spec/services/sources_service_spec.rb
288
300
  - spec/services/orders_service_spec.rb
@@ -298,8 +310,10 @@ test_files:
298
310
  - spec/services/line_items_service_spec.rb
299
311
  - spec/services/loss_reasons_service_spec.rb
300
312
  - spec/services/deal_sources_service_spec.rb
313
+ - spec/services/visit_outcomes_service_spec.rb
301
314
  - spec/services/calls_service_spec.rb
302
315
  - spec/services/deal_unqualified_reasons_service_spec.rb
316
+ - spec/services/visits_service_spec.rb
303
317
  - spec/services/sync_service_spec.rb
304
318
  - spec/services/lead_unqualified_reasons_service_spec.rb
305
319
  - spec/services/accounts_service_spec.rb