contentful-management 2.11.0 → 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +36 -0
- data/README.md +30 -13
- data/contentful-management.gemspec +1 -1
- data/lib/contentful/management/asset.rb +2 -0
- data/lib/contentful/management/client.rb +10 -12
- data/lib/contentful/management/{client_usage_period_methods_factory.rb → client_organization_periodic_usage_methods_factory.rb} +3 -4
- data/lib/contentful/management/{client_api_usage_methods_factory.rb → client_space_periodic_usage_methods_factory.rb} +4 -11
- data/lib/contentful/management/entry.rb +16 -12
- data/lib/contentful/management/field.rb +3 -1
- data/lib/contentful/management/organization.rb +18 -8
- data/lib/contentful/management/{api_usage.rb → organization_periodic_usage.rb} +13 -18
- data/lib/contentful/management/organization_user_methods_factory.rb +18 -0
- data/lib/contentful/management/resource.rb +3 -2
- data/lib/contentful/management/resource/metadata.rb +44 -0
- data/lib/contentful/management/resource_builder.rb +8 -6
- data/lib/contentful/management/space.rb +10 -0
- data/lib/contentful/management/{usage_period.rb → space_periodic_usage.rb} +12 -9
- data/lib/contentful/management/space_user_methods_factory.rb +19 -0
- data/lib/contentful/management/tag.rb +14 -0
- data/lib/contentful/management/user.rb +7 -1
- data/lib/contentful/management/version.rb +1 -1
- data/spec/fixtures/vcr_cassettes/asset/issue_219.yml +442 -0
- data/spec/fixtures/vcr_cassettes/entry/issue_215_1.yml +905 -0
- data/spec/fixtures/vcr_cassettes/entry/issue_215_2.yml +899 -0
- data/spec/fixtures/vcr_cassettes/entry/issue_215_3.yml +893 -0
- data/spec/fixtures/vcr_cassettes/entry/issue_219.yml +535 -0
- data/spec/fixtures/vcr_cassettes/organization/user.yml +238 -0
- data/spec/fixtures/vcr_cassettes/organization_periodic_usage/all.yml +368 -0
- data/spec/fixtures/vcr_cassettes/organization_periodic_usage/filters.yml +167 -0
- data/spec/fixtures/vcr_cassettes/space/user.yml +254 -0
- data/spec/fixtures/vcr_cassettes/space_periodic_usage/all.yml +6800 -0
- data/spec/fixtures/vcr_cassettes/space_periodic_usage/filters.yml +1976 -0
- data/spec/lib/contentful/management/asset_spec.rb +31 -0
- data/spec/lib/contentful/management/entry_spec.rb +77 -0
- data/spec/lib/contentful/management/organization_periodic_usage_spec.rb +36 -0
- data/spec/lib/contentful/management/organization_spec.rb +20 -0
- data/spec/lib/contentful/management/space_periodic_usage_spec.rb +36 -0
- data/spec/lib/contentful/management/space_spec.rb +20 -0
- metadata +43 -21
- data/spec/fixtures/vcr_cassettes/api_usage/all.yml +0 -155
- data/spec/fixtures/vcr_cassettes/usage_period/all.yml +0 -114
- data/spec/lib/contentful/management/api_usage_spec.rb +0 -28
- data/spec/lib/contentful/management/usage_period_spec.rb +0 -27
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 85f13e855cf6a3d868bb24e36b3bc311f05a5df0206ae6d66a5f9b1d6ba5a94a
|
4
|
+
data.tar.gz: 979be40c83e892575ccebbd1fcd2a41f2da39a87992d43994d31d999feae33e8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2e724340067a6e209d5387388e6c05e71fec59f9211cbcf60e868d79a439fe1a2f76ebfb36b936e7be61956be2b2fe3ee0c859d2f1125c48ccaaa007acdadcd7
|
7
|
+
data.tar.gz: e95297441626f040734f1e0719f748816ae76b72afe8c57a4f9705d4afde5ed568cfffce73f9ec438cc8ef92299d1ad5b6328d6ca29c0a4231e43ec54e3b55b5
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,42 @@
|
|
2
2
|
|
3
3
|
## Master
|
4
4
|
|
5
|
+
## 3.0.0
|
6
|
+
### Fixed
|
7
|
+
* Added support for Tags metadata
|
8
|
+
|
9
|
+
### Changed
|
10
|
+
|
11
|
+
**BREAKING CHANGES**:
|
12
|
+
* Introduction of new top-level tags `metadata` property in api response.
|
13
|
+
|
14
|
+
## 2.13.1
|
15
|
+
### Fixed
|
16
|
+
* Fixed an issue when loading entries or assets that included tags. [#219](https://github.com/contentful/contentful-management.rb/issues/219)
|
17
|
+
|
18
|
+
## 2.13.0
|
19
|
+
### Fixed
|
20
|
+
* Fixed a possible validation error when submitting a content type. [#218](https://github.com/contentful/contentful-management.rb/pull/218)
|
21
|
+
|
22
|
+
### Added
|
23
|
+
* Added support for Users API. [#217](https://github.com/contentful/contentful-management.rb/pull/217)
|
24
|
+
|
25
|
+
## 2.12.1
|
26
|
+
|
27
|
+
### Fixed
|
28
|
+
* Fixed an issue where JSON fields with top-level arrays were not properly parsed. [#215](https://github.com/contentful/contentful-management.rb/issues/215)
|
29
|
+
|
30
|
+
## 2.12.0
|
31
|
+
|
32
|
+
*Note*: Only a minor change because the removed feature was *Alpha*.
|
33
|
+
|
34
|
+
### Added
|
35
|
+
* Add `OrganizationPeriodicUsage`, `Client#organization_periodic_usages` and `Organization#periodic_usages`.
|
36
|
+
* Add `SpacePeriodicUsage`, `Client#space_periodic_usages` and `Organization#space_periodic_usages`.
|
37
|
+
|
38
|
+
### Removed
|
39
|
+
* Removed now deprecated Alpha Usage APIs, which have been superseeded by the new APIs added.
|
40
|
+
|
5
41
|
## 2.11.0
|
6
42
|
### Added
|
7
43
|
* Added support for Rich Text specific validations. [#200](https://github.com/contentful/contentful-management.rb/pull/200)
|
data/README.md
CHANGED
@@ -827,40 +827,46 @@ Retrieving all organization details:
|
|
827
827
|
organizations = client.organizations.all
|
828
828
|
```
|
829
829
|
|
830
|
-
### Usage
|
830
|
+
### Usage
|
831
831
|
|
832
832
|
*Note*: This feature is available only to Commited v2 customers.
|
833
833
|
|
834
|
-
|
834
|
+
#### Organization Periodic Usage
|
835
|
+
|
836
|
+
Retrieving all API Usage statistics for an Organization during a given usage period, broken down by organization for all APIs:
|
835
837
|
|
836
838
|
```ruby
|
837
|
-
|
839
|
+
# Optionally, you can pass the metric, start and end date filters
|
840
|
+
usage = client.organization_periodic_usages('organization_id').all
|
841
|
+
|
842
|
+
# For example only CDA and CMA metrics from yesterday onwards
|
843
|
+
usage = client.organization_periodic_usages('organization_id').all('metric[in]': ['cda', 'cma'], startDate: (Date.today - 1).iso8601)
|
838
844
|
```
|
839
845
|
|
840
846
|
Alternatively, if you have an already fetched organization:
|
841
847
|
|
842
848
|
```ruby
|
843
|
-
|
849
|
+
# Breaking down CMA usage by space, for a given period.
|
850
|
+
usage = organization.periodic_usages.all
|
844
851
|
```
|
845
852
|
|
846
|
-
|
853
|
+
#### Space Periodic Usage
|
847
854
|
|
848
|
-
|
849
|
-
|
850
|
-
Retrieving all API Usage statistics for an Organizations during a given usage period, broken down by organization for all APIs:
|
855
|
+
Retrieving all API Usage statistics for an Organization during a given usage period, broken down by space for all APIs:
|
851
856
|
|
852
857
|
```ruby
|
853
|
-
#
|
854
|
-
|
855
|
-
|
856
|
-
|
858
|
+
# Optionally, you can pass the metric, start and end date filters
|
859
|
+
usage = client.space_periodic_usages('organization_id').all
|
860
|
+
|
861
|
+
# For example only CDA and CMA metrics from yesterday onwards
|
862
|
+
usage = client.space_periodic_usages('organization_id').all('metric[in]': ['cda', 'cma'], startDate: (Date.today - 1).iso8601)
|
857
863
|
```
|
858
864
|
|
859
865
|
Alternatively, if you have an already fetched organization:
|
860
866
|
|
861
867
|
```ruby
|
862
868
|
# Breaking down CMA usage by space, for a given period.
|
863
|
-
usage = organization.
|
869
|
+
usage = organization.space_periodic_usages.all
|
864
870
|
```
|
865
871
|
|
866
872
|
### Users
|
@@ -871,6 +877,17 @@ Retrieving current user details:
|
|
871
877
|
user = client.users.me
|
872
878
|
```
|
873
879
|
|
880
|
+
Retrieving one user by ID from the space:
|
881
|
+
|
882
|
+
```ruby
|
883
|
+
user = blog_space.users.find(user_id)
|
884
|
+
```
|
885
|
+
|
886
|
+
Retrieving one user by ID from an organization:
|
887
|
+
|
888
|
+
```ruby
|
889
|
+
user = organization.users.find('user_id')
|
890
|
+
```
|
874
891
|
### UI Extensions
|
875
892
|
|
876
893
|
Retrieving all UI extensions from the environment:
|
@@ -22,7 +22,7 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.add_dependency 'json', '>= 1.8', '< 3.0'
|
23
23
|
|
24
24
|
spec.add_development_dependency 'bundler'
|
25
|
-
spec.add_development_dependency 'rake', '
|
25
|
+
spec.add_development_dependency 'rake', '>= 12.3.3'
|
26
26
|
spec.add_development_dependency 'public_suffix', '< 1.5'
|
27
27
|
spec.add_development_dependency 'rspec', '~> 3'
|
28
28
|
spec.add_development_dependency 'rspec-its'
|
@@ -1,6 +1,7 @@
|
|
1
1
|
require_relative 'resource'
|
2
2
|
require_relative 'resource/fields'
|
3
3
|
require_relative 'resource/archiver'
|
4
|
+
require_relative 'resource/metadata'
|
4
5
|
require_relative 'resource/publisher'
|
5
6
|
require_relative 'resource/asset_fields'
|
6
7
|
require_relative 'resource/environment_aware'
|
@@ -15,6 +16,7 @@ module Contentful
|
|
15
16
|
include Contentful::Management::Resource
|
16
17
|
include Contentful::Management::Resource::Fields
|
17
18
|
include Contentful::Management::Resource::Archiver
|
19
|
+
include Contentful::Management::Resource::Metadata
|
18
20
|
include Contentful::Management::Resource::Refresher
|
19
21
|
include Contentful::Management::Resource::Publisher
|
20
22
|
include Contentful::Management::Resource::SystemProperties
|
@@ -20,9 +20,7 @@ require 'contentful/management/client_upload_methods_factory'
|
|
20
20
|
require 'contentful/management/client_api_key_methods_factory'
|
21
21
|
require 'contentful/management/client_webhook_methods_factory'
|
22
22
|
require 'contentful/management/client_snapshot_methods_factory'
|
23
|
-
require 'contentful/management/client_api_usage_methods_factory'
|
24
23
|
require 'contentful/management/client_environment_methods_factory'
|
25
|
-
require 'contentful/management/client_usage_period_methods_factory'
|
26
24
|
require 'contentful/management/client_organization_methods_factory'
|
27
25
|
require 'contentful/management/client_content_type_methods_factory'
|
28
26
|
require 'contentful/management/client_ui_extension_methods_factory'
|
@@ -31,7 +29,9 @@ require 'contentful/management/client_webhook_health_methods_factory'
|
|
31
29
|
require 'contentful/management/client_preview_api_key_methods_factory'
|
32
30
|
require 'contentful/management/client_space_membership_methods_factory'
|
33
31
|
require 'contentful/management/client_editor_interface_methods_factory'
|
32
|
+
require 'contentful/management/client_space_periodic_usage_methods_factory'
|
34
33
|
require 'contentful/management/client_personal_access_tokens_methods_factory'
|
34
|
+
require 'contentful/management/client_organization_periodic_usage_methods_factory'
|
35
35
|
|
36
36
|
module Contentful
|
37
37
|
module Management
|
@@ -133,22 +133,20 @@ module Contentful
|
|
133
133
|
ClientOrganizationMethodsFactory.new(self)
|
134
134
|
end
|
135
135
|
|
136
|
-
# Allows
|
137
|
-
# Allows listing all usage periods for client.
|
136
|
+
# Allows listing all usage periods for organization grouped by organization.
|
138
137
|
# @see _ README for details.
|
139
138
|
#
|
140
|
-
# @return [Contentful::Management::
|
141
|
-
def
|
142
|
-
|
139
|
+
# @return [Contentful::Management::ClientOrganizationPeriodicUsageMethodsFactory]
|
140
|
+
def organization_periodic_usages(organization_id)
|
141
|
+
ClientOrganizationPeriodicUsageMethodsFactory.new(self, organization_id)
|
143
142
|
end
|
144
143
|
|
145
|
-
# Allows
|
146
|
-
# Allows listing all api usage for client.
|
144
|
+
# Allows listing all usage periods for organization grouped by space.
|
147
145
|
# @see _ README for details.
|
148
146
|
#
|
149
|
-
# @return [Contentful::Management::
|
150
|
-
def
|
151
|
-
|
147
|
+
# @return [Contentful::Management::ClientSpacePeriodicUsageMethodsFactory]
|
148
|
+
def space_periodic_usages(organization_id)
|
149
|
+
ClientSpacePeriodicUsageMethodsFactory.new(self, organization_id)
|
152
150
|
end
|
153
151
|
|
154
152
|
# Allows viewing of users in context of the current client
|
@@ -2,9 +2,9 @@ require_relative 'client_association_methods_factory'
|
|
2
2
|
|
3
3
|
module Contentful
|
4
4
|
module Management
|
5
|
-
# Wrapper for
|
5
|
+
# Wrapper for Organization Periodic Usages for usage from within Client
|
6
6
|
# @private
|
7
|
-
class
|
7
|
+
class ClientOrganizationPeriodicUsageMethodsFactory
|
8
8
|
include Contentful::Management::ClientAssociationMethodsFactory
|
9
9
|
|
10
10
|
def initialize(client, organization_id)
|
@@ -17,8 +17,7 @@ module Contentful
|
|
17
17
|
{
|
18
18
|
organization_id: @organization_id
|
19
19
|
},
|
20
|
-
params
|
21
|
-
'x-contentful-enable-alpha-feature' => 'usage-insights'
|
20
|
+
params
|
22
21
|
)
|
23
22
|
end
|
24
23
|
|
@@ -2,9 +2,9 @@ require_relative 'client_association_methods_factory'
|
|
2
2
|
|
3
3
|
module Contentful
|
4
4
|
module Management
|
5
|
-
# Wrapper for
|
5
|
+
# Wrapper for Space Periodic Usages for usage from within Client
|
6
6
|
# @private
|
7
|
-
class
|
7
|
+
class ClientSpacePeriodicUsageMethodsFactory
|
8
8
|
include Contentful::Management::ClientAssociationMethodsFactory
|
9
9
|
|
10
10
|
def initialize(client, organization_id)
|
@@ -12,19 +12,12 @@ module Contentful
|
|
12
12
|
@organization_id = organization_id
|
13
13
|
end
|
14
14
|
|
15
|
-
def all(
|
16
|
-
mandatory_params = {
|
17
|
-
'filters[usagePeriod]' => usage_period_id,
|
18
|
-
'filters[metric]' => api
|
19
|
-
}
|
20
|
-
|
15
|
+
def all(params = {})
|
21
16
|
@resource_requester.all(
|
22
17
|
{
|
23
|
-
usage_type: usage_type,
|
24
18
|
organization_id: @organization_id
|
25
19
|
},
|
26
|
-
|
27
|
-
'x-contentful-enable-alpha-feature' => 'usage-insights'
|
20
|
+
params
|
28
21
|
)
|
29
22
|
end
|
30
23
|
|
@@ -1,6 +1,7 @@
|
|
1
1
|
require_relative 'resource'
|
2
2
|
require_relative 'resource/fields'
|
3
3
|
require_relative 'resource/archiver'
|
4
|
+
require_relative 'resource/metadata'
|
4
5
|
require_relative 'resource/publisher'
|
5
6
|
require_relative 'resource_requester'
|
6
7
|
require_relative 'resource/field_aware'
|
@@ -15,6 +16,7 @@ module Contentful
|
|
15
16
|
# @see _ https://www.contentful.com/developers/documentation/content-management-api/#resources-entries
|
16
17
|
class Entry
|
17
18
|
include Contentful::Management::Resource
|
19
|
+
include Contentful::Management::Resource::Metadata
|
18
20
|
extend Contentful::Management::Resource::EntryFields
|
19
21
|
include Contentful::Management::Resource::SystemProperties
|
20
22
|
|
@@ -95,18 +97,20 @@ module Contentful
|
|
95
97
|
|
96
98
|
# @private
|
97
99
|
def self.parse_objects_array(attributes)
|
98
|
-
attributes.each_with_object([]) do |
|
99
|
-
if
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
100
|
+
attributes.each_with_object([]) do |attribute, result|
|
101
|
+
result << if attribute.is_a? Entry
|
102
|
+
hash_with_link_object('Entry', attribute)
|
103
|
+
elsif attribute.is_a? Asset
|
104
|
+
hash_with_link_object('Asset', attribute)
|
105
|
+
elsif attribute.is_a? Hash
|
106
|
+
attribute
|
107
|
+
elsif attribute.class.ancestors.map(&:to_s).include?('Contentful::Entry')
|
108
|
+
hash_with_link_object('Entry', attribute)
|
109
|
+
elsif attribute.class.ancestors.map(&:to_s).include?('Contentful::Asset')
|
110
|
+
hash_with_link_object('Asset', attribute)
|
111
|
+
else
|
112
|
+
attribute
|
113
|
+
end
|
110
114
|
end
|
111
115
|
end
|
112
116
|
|
@@ -87,7 +87,9 @@ module Contentful
|
|
87
87
|
|
88
88
|
def validations_to_hash(validations)
|
89
89
|
validations.each_with_object([]) do |validation, results|
|
90
|
-
|
90
|
+
validation_hash = validation.properties_to_hash
|
91
|
+
|
92
|
+
results << validation.properties_to_hash if Field.value_exists?(validation_hash)
|
91
93
|
end
|
92
94
|
end
|
93
95
|
end
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require_relative 'resource'
|
2
|
+
require 'contentful/management/organization_user_methods_factory'
|
2
3
|
|
3
4
|
module Contentful
|
4
5
|
module Management
|
@@ -16,20 +17,29 @@ module Contentful
|
|
16
17
|
'organizations'
|
17
18
|
end
|
18
19
|
|
19
|
-
# Allows listing all usage periods for organization.
|
20
|
+
# Allows listing all usage periods for organization grouped by organization or space.
|
20
21
|
# @see _ README for details.
|
21
22
|
#
|
22
|
-
# @return [Contentful::Management::
|
23
|
-
def
|
24
|
-
|
23
|
+
# @return [Contentful::Management::ClientOrganizationPeriodicUsageMethodsFactory]
|
24
|
+
def periodic_usages
|
25
|
+
ClientOrganizationPeriodicUsageMethodsFactory.new(client, id)
|
25
26
|
end
|
26
27
|
|
27
|
-
# Allows listing all
|
28
|
+
# Allows listing all usage periods for organization grouped by organization or space.
|
28
29
|
# @see _ README for details.
|
29
30
|
#
|
30
|
-
# @return [Contentful::Management::
|
31
|
-
def
|
32
|
-
|
31
|
+
# @return [Contentful::Management::ClientSpacePeriodicUsageMethodsFactory]
|
32
|
+
def space_periodic_usages
|
33
|
+
ClientSpacePeriodicUsageMethodsFactory.new(client, id)
|
34
|
+
end
|
35
|
+
|
36
|
+
# Allows viewing of users in context of an organization
|
37
|
+
# Allows listing all users for an organization, and finding one by ID.
|
38
|
+
# @see _ README for details.
|
39
|
+
#
|
40
|
+
# @return [Contentful::Management::OrganizationUserMethodsFactory]
|
41
|
+
def users
|
42
|
+
OrganizationUserMethodsFactory.new(client, id)
|
33
43
|
end
|
34
44
|
end
|
35
45
|
end
|
@@ -2,40 +2,35 @@ require_relative 'resource'
|
|
2
2
|
|
3
3
|
module Contentful
|
4
4
|
module Management
|
5
|
-
# Resource class for
|
6
|
-
# @see _ https://www.contentful.com/developers/docs/references/content-management-api/#/reference/
|
7
|
-
class
|
5
|
+
# Resource class for OrganizationPeriodicUsage.
|
6
|
+
# @see _ https://www.contentful.com/developers/docs/references/content-management-api/#/reference/usage/organization-usage/get-organization-usage/console/curl
|
7
|
+
class OrganizationPeriodicUsage
|
8
8
|
include Contentful::Management::Resource
|
9
9
|
include Contentful::Management::Resource::Refresher
|
10
10
|
include Contentful::Management::Resource::SystemProperties
|
11
11
|
|
12
|
-
property :
|
13
|
-
property :
|
14
|
-
property :
|
15
|
-
property :
|
16
|
-
property :
|
12
|
+
property :metric, :string
|
13
|
+
property :usage, :integer
|
14
|
+
property :usagePerDay, :object
|
15
|
+
property :unitOfMeasure, :string
|
16
|
+
property :dateRange, :object
|
17
17
|
|
18
18
|
# @private
|
19
19
|
def self.build_endpoint(endpoint_options)
|
20
20
|
organization_id = endpoint_options[:organization_id]
|
21
|
-
usage_type = endpoint_options[:usage_type]
|
22
21
|
|
23
|
-
"organizations/#{organization_id}/
|
22
|
+
"organizations/#{organization_id}/organization_periodic_usages"
|
24
23
|
end
|
25
24
|
|
26
|
-
# Gets all
|
25
|
+
# Gets all organization periodic usages for a given organization.
|
27
26
|
#
|
28
27
|
# @param [Contentful::Management::Client] client
|
29
28
|
# @param [String] organization_id
|
30
|
-
# @param [String] usage_type
|
31
|
-
# @param [Integer] usage_period_id
|
32
|
-
# @param [String] api
|
33
29
|
# @param [Hash] params
|
34
30
|
#
|
35
|
-
# @return [Contentful::Management::Array<Contentful::Management::
|
36
|
-
|
37
|
-
|
38
|
-
ClientApiUsageMethodsFactory.new(client, organization_id).all(usage_type, usage_period_id, api, params)
|
31
|
+
# @return [Contentful::Management::Array<Contentful::Management::OrganizationPeriodicUsage>]
|
32
|
+
def self.all(client, organization_id, params = {})
|
33
|
+
ClientOrganizationPeriodicUsageMethodsFactory.new(client, organization_id).all(params)
|
39
34
|
end
|
40
35
|
|
41
36
|
# Not supported
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Contentful
|
2
|
+
module Management
|
3
|
+
# Wrapper for Users API for usage from within Organization
|
4
|
+
# @private
|
5
|
+
class OrganizationUserMethodsFactory
|
6
|
+
attr_reader :client
|
7
|
+
|
8
|
+
def initialize(client, organization_id)
|
9
|
+
@client = client
|
10
|
+
@organization_id = organization_id
|
11
|
+
end
|
12
|
+
|
13
|
+
def find(id)
|
14
|
+
User.find(client, nil, nil, id, @organization_id)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|