yext-api 0.1.4 → 0.1.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 +4 -4
- data/Gemfile.lock +3 -1
- data/config/initializers/valid.rb +4 -0
- data/lib/config/api.yml +2 -0
- data/lib/yext/api/administrative_api/account.rb +1 -1
- data/lib/yext/api/concerns/account_child.rb +1 -1
- data/lib/yext/api/concerns/account_relations.rb +8 -0
- data/lib/yext/api/enumerations/optimization_link_mode.rb +15 -0
- data/lib/yext/api/knowledge_api/optimization_tasks/optimization_link.rb +32 -0
- data/lib/yext/api/knowledge_api/optimization_tasks/optimization_task.rb +31 -0
- data/lib/yext/api/validators/account_validator.rb +22 -0
- data/lib/yext/api/version.rb +1 -1
- data/yext-api.gemspec +1 -0
- metadata +21 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b00aa1601c943ccd86176b00dbd9d0dc2cfe62ba
|
4
|
+
data.tar.gz: 3dc9545705404a5c812be0d70e77d57f6f61e8e2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 55c0f57e48913eddf4ae516022b76ecc9a44ff5b257280b1aa56d4c28e66df12f8023128ea8d2de1443a07e6713b5a43a0ab16e6ab0bbc7157ee6ad6cf9331bf
|
7
|
+
data.tar.gz: 01d6deaaaaedac4668c22ad2808c1d39fa7ad5e6f6bc7478c144b34e0726811229f0b84b8cbc83c4628eafbdb6f1e2795882c3c9e2b7f8bcf9a2717722ac7411
|
data/Gemfile.lock
CHANGED
@@ -1,10 +1,11 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
yext-api (0.1.
|
4
|
+
yext-api (0.1.5)
|
5
5
|
memoist (~> 0)
|
6
6
|
rails (> 4)
|
7
7
|
spyke (~> 5)
|
8
|
+
valid (~> 1)
|
8
9
|
|
9
10
|
GEM
|
10
11
|
remote: https://rubygems.org/
|
@@ -164,6 +165,7 @@ GEM
|
|
164
165
|
tzinfo (1.2.4)
|
165
166
|
thread_safe (~> 0.1)
|
166
167
|
url (0.3.2)
|
168
|
+
valid (1.2.0)
|
167
169
|
vcr (4.0.0)
|
168
170
|
webmock (3.2.1)
|
169
171
|
addressable (>= 2.3.6)
|
data/lib/config/api.yml
CHANGED
@@ -793,6 +793,8 @@
|
|
793
793
|
:default_version: 20161012
|
794
794
|
:documentation: http://developer.yext.com/docs/api-reference/#operation/getOptimizationTasks
|
795
795
|
:sandbox_only: false
|
796
|
+
:optimization_link:
|
797
|
+
:actions:
|
796
798
|
- :action: :show
|
797
799
|
:method: :get
|
798
800
|
:endpoint: https://api.yext.com/v2/accounts/{accountId}/optimizationlink
|
@@ -37,7 +37,7 @@ module Yext
|
|
37
37
|
# Furthermore, the account_id cannot be changed by the partner, but only by the customer
|
38
38
|
# themselves.
|
39
39
|
def save
|
40
|
-
return unless
|
40
|
+
return unless Yext::Api::Validators::AccountValidator.new(self).valid?
|
41
41
|
|
42
42
|
updates = { account_id: account_id, accountName: accountName }
|
43
43
|
updates[:accountId] = accountId if accountId != account_id
|
@@ -29,8 +29,8 @@ module Yext
|
|
29
29
|
next if account_class.association?(klass)
|
30
30
|
|
31
31
|
klass_uri = klass.instance_variable_get(:@uri)
|
32
|
-
helper_warnings(account_class, klass, klass_uri)
|
33
32
|
klass_uri ||= klass.send(:default_uri)
|
33
|
+
helper_warnings(account_class, klass, klass_uri)
|
34
34
|
|
35
35
|
add_has_many_relation(account_class, klass, klass_uri)
|
36
36
|
end
|
@@ -26,6 +26,14 @@ module Yext
|
|
26
26
|
has_many :users, class_name: "Yext::Api::KnowledgeApi::AccountSettings::User"
|
27
27
|
has_many :roles, class_name: "Yext::Api::KnowledgeApi::AccountSettings::Role"
|
28
28
|
|
29
|
+
# KnowledgeApi::OptimizationTasks
|
30
|
+
has_many :optimization_tasks,
|
31
|
+
class_name: "Yext::Api::KnowledgeApi::OptimizationTasks::OptimizationTask",
|
32
|
+
uri: Yext::Api::Concerns::AccountChild.with_account_path("optimizationtasks/(:id)")
|
33
|
+
has_many :optimization_links,
|
34
|
+
class_name: "Yext::Api::KnowledgeApi::OptimizationTasks::OptimizationLink",
|
35
|
+
uri: Yext::Api::Concerns::AccountChild.with_account_path("optimizationlink")
|
36
|
+
|
29
37
|
# LiveApi
|
30
38
|
has_many :live_locations, class_name: "Yext::Api::LiveApi::Location"
|
31
39
|
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Yext
|
4
|
+
module Api
|
5
|
+
module Enumerations
|
6
|
+
class OptimizationLinkMode
|
7
|
+
include Yext::Api::Concerns::EnumAll
|
8
|
+
|
9
|
+
PENDING_ONLY = "PENDING_ONLY"
|
10
|
+
ALL_TASKS = "ALL_TASKS"
|
11
|
+
RESET = "RESET"
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Yext
|
4
|
+
module Api
|
5
|
+
module KnowledgeApi
|
6
|
+
module OptimizationTasks
|
7
|
+
# :knowledge_api:
|
8
|
+
# :knowledge_manager:
|
9
|
+
# :optimization_link:
|
10
|
+
# - :action: :show
|
11
|
+
# :method: :get
|
12
|
+
# :endpoint: https://api.yext.com/v2/accounts/{accountId}/optimizationlink
|
13
|
+
# :path_regex: v2/accounts/[^/]+?/optimizationlink
|
14
|
+
# :default_version: 20161012
|
15
|
+
# :documentation: http://developer.yext.com/docs/api-reference/#operation/getLinkOptimizationTask
|
16
|
+
# :sandbox_only: false
|
17
|
+
class OptimizationLink < Yext::Api::Utils::ApiBase
|
18
|
+
uri "optimizationlink"
|
19
|
+
|
20
|
+
include Yext::Api::Concerns::AccountChild
|
21
|
+
|
22
|
+
scope :location, ->(location_id) { where(locationId: location_id) }
|
23
|
+
|
24
|
+
scope :task, ->(task_id) { tasks(task_id) }
|
25
|
+
scope :tasks, ->(*task_id_array) { where(taskIds: Array.wrap(task_id_array).join(",")) }
|
26
|
+
|
27
|
+
scope :mode, ->(mode) { where(mode: mode) }
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Yext
|
4
|
+
module Api
|
5
|
+
module KnowledgeApi
|
6
|
+
module OptimizationTasks
|
7
|
+
# :knowledge_api:
|
8
|
+
# :knowledge_manager:
|
9
|
+
# :optimization_task:
|
10
|
+
# - :action: :index
|
11
|
+
# :method: :get
|
12
|
+
# :endpoint: https://api.yext.com/v2/accounts/{accountId}/optimizationtasks
|
13
|
+
# :path_regex: v2/accounts/[^/]+?/optimizationtasks
|
14
|
+
# :default_version: 20161012
|
15
|
+
# :documentation: http://developer.yext.com/docs/api-reference/#operation/getOptimizationTasks
|
16
|
+
# :sandbox_only: false
|
17
|
+
class OptimizationTask < Yext::Api::Utils::ApiBase
|
18
|
+
uri default_uri.delete("_")
|
19
|
+
|
20
|
+
include Yext::Api::Concerns::AccountChild
|
21
|
+
|
22
|
+
scope :location, ->(location_id) { locations(location_id) }
|
23
|
+
scope :locations, ->(*location_id_array) { where(locationIds: Array.wrap(location_id_array).join(",")) }
|
24
|
+
|
25
|
+
scope :task, ->(task_id) { tasks(task_id) }
|
26
|
+
scope :tasks, ->(*task_id_array) { where(taskIds: Array.wrap(task_id_array).join(",")) }
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Yext
|
4
|
+
module Api
|
5
|
+
module Validators
|
6
|
+
# A Validator for account updates to verify that the update is valid.
|
7
|
+
class AccountValidator < Validation::Validator
|
8
|
+
include Validation
|
9
|
+
|
10
|
+
def initialize(obj)
|
11
|
+
# Ensure that the accountId field exists by cloning the Account and setting it.
|
12
|
+
obj = Yext::Api::AdministrativeApi::Account.new(obj.attributes)
|
13
|
+
obj.accountId = obj[:accountId]
|
14
|
+
|
15
|
+
super(obj)
|
16
|
+
end
|
17
|
+
|
18
|
+
rule :accountId, :not_empty
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
data/lib/yext/api/version.rb
CHANGED
data/yext-api.gemspec
CHANGED
@@ -33,6 +33,7 @@ Gem::Specification.new do |spec|
|
|
33
33
|
spec.add_dependency "memoist", "~> 0"
|
34
34
|
spec.add_dependency "rails", "> 4"
|
35
35
|
spec.add_dependency "spyke", "~> 5"
|
36
|
+
spec.add_dependency "valid", "~> 1"
|
36
37
|
|
37
38
|
spec.add_development_dependency "bundler"
|
38
39
|
spec.add_development_dependency "codecov"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yext-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- CardTapp
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-02-
|
11
|
+
date: 2018-02-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: memoist
|
@@ -52,6 +52,20 @@ dependencies:
|
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '5'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: valid
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '1'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '1'
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: bundler
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -231,6 +245,7 @@ files:
|
|
231
245
|
- bin/setup
|
232
246
|
- config/initializers/memoist.rb
|
233
247
|
- config/initializers/spyke.rb
|
248
|
+
- config/initializers/valid.rb
|
234
249
|
- config/routes.rb
|
235
250
|
- lib/config/api.yml
|
236
251
|
- lib/yext/api.rb
|
@@ -263,6 +278,7 @@ files:
|
|
263
278
|
- lib/yext/api/enumerations/error_codes/suppression_errors.rb
|
264
279
|
- lib/yext/api/enumerations/error_codes/users_errors.rb
|
265
280
|
- lib/yext/api/enumerations/location_type.rb
|
281
|
+
- lib/yext/api/enumerations/optimization_link_mode.rb
|
266
282
|
- lib/yext/api/enumerations/validation.rb
|
267
283
|
- lib/yext/api/knowledge_api.rb
|
268
284
|
- lib/yext/api/knowledge_api/account_settings/account.rb
|
@@ -271,6 +287,8 @@ files:
|
|
271
287
|
- lib/yext/api/knowledge_api/health_check/health.rb
|
272
288
|
- lib/yext/api/knowledge_api/knowledge_manager/category.rb
|
273
289
|
- lib/yext/api/knowledge_api/knowledge_manager/location.rb
|
290
|
+
- lib/yext/api/knowledge_api/optimization_tasks/optimization_link.rb
|
291
|
+
- lib/yext/api/knowledge_api/optimization_tasks/optimization_task.rb
|
274
292
|
- lib/yext/api/live_api.rb
|
275
293
|
- lib/yext/api/live_api/location.rb
|
276
294
|
- lib/yext/api/utils/api_base.rb
|
@@ -281,6 +299,7 @@ files:
|
|
281
299
|
- lib/yext/api/utils/middleware/response_parser.rb
|
282
300
|
- lib/yext/api/utils/middleware/uri_cleanup.rb
|
283
301
|
- lib/yext/api/utils/params.rb
|
302
|
+
- lib/yext/api/validators/account_validator.rb
|
284
303
|
- lib/yext/api/version.rb
|
285
304
|
- lib/yext/include_rails.rb
|
286
305
|
- yext-api.gemspec
|