dato 0.3.20 → 0.3.21

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: 0560582decbc9e19a529ea56f8ea4f11d428c28b
4
- data.tar.gz: f1d53150ce553415bc060b52cfc19644b590fa2a
3
+ metadata.gz: b6442907627626e3ac92bb9ab10a6f7396b4920c
4
+ data.tar.gz: 7c069002318c781de67b21e4a1c28996bb98d2c8
5
5
  SHA512:
6
- metadata.gz: 85c6c9e69fcf33cf15298ca48e5a2985050e82d88060d271c0a6d2e28ff30bb2a20da2edb2ab58aa5f0df1846be2a662bbb3248e0398837ee549a3ce3ce3ea04
7
- data.tar.gz: 18737567221940e7ab086a27e6485076e43b8aa158abdb3c2da92fb0ae177b6bdfcd5ba94fbb531f41d4aabd42047c3b1301c687228682078b6b95f3659f34cb
6
+ metadata.gz: a0de9d98069fb65dbbb999a3ed133abd9faa86511a6b28226eebc0e4702c64f8871342dfd41c8ccb50d25c7b0c5ad26f14333f8db4cd9b273def0b6238e19c7d
7
+ data.tar.gz: 859d1630d957ab13bd73af80dc98d137f305e1d481491dc89f4c4a6f15311320ed2f4ea38559e3a609f2ed737d094e3a7c72e49fae473ef18073adf645330e13
@@ -16,7 +16,7 @@ module Dato
16
16
  def initialize(dato, operations, &block)
17
17
  @dato = dato
18
18
  @operations = operations
19
- @self_before_instance_eval = eval "self", block.binding
19
+ @self_before_instance_eval = eval 'self', block.binding
20
20
 
21
21
  instance_eval(&block)
22
22
  end
@@ -13,6 +13,9 @@ require 'dato/site/repo/site'
13
13
  require 'dato/site/repo/upload_request'
14
14
  require 'dato/site/repo/user'
15
15
  require 'dato/site/repo/item'
16
+ require 'dato/site/repo/role'
17
+ require 'dato/site/repo/access_token'
18
+ require 'dato/site/repo/upload'
16
19
 
17
20
  require 'dato/upload/file'
18
21
  require 'dato/upload/image'
@@ -30,7 +33,10 @@ module Dato
30
33
  site: Repo::Site,
31
34
  upload_requests: Repo::UploadRequest,
32
35
  users: Repo::User,
33
- items: Repo::Item
36
+ items: Repo::Item,
37
+ roles: Repo::Role,
38
+ access_tokens: Repo::AccessToken,
39
+ uploads: Repo::Upload
34
40
  }.freeze
35
41
 
36
42
  attr_reader :token, :base_url, :schema, :extra_headers
@@ -73,9 +79,9 @@ module Dato
73
79
  raise e
74
80
  rescue Faraday::ClientError => e
75
81
  error = ApiError.new(e)
76
- puts "===="
82
+ puts '===='
77
83
  puts error.message
78
- puts "===="
84
+ puts '===='
79
85
  raise error
80
86
  end
81
87
 
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+ require 'dato/site/repo/base'
3
+
4
+ module Dato
5
+ module Site
6
+ module Repo
7
+ class AccessToken < Base
8
+ def create(resource_attributes)
9
+ body = JsonApiSerializer.new(
10
+ type: :access_token,
11
+ attributes: %i(name),
12
+ relationships: { role: { collection: false, type: :role } },
13
+ required_attributes: %i(name)
14
+ ).serialize(resource_attributes)
15
+
16
+ post_request '/access_tokens', body
17
+ end
18
+
19
+ def update(user_id, resource_attributes)
20
+ body = JsonApiSerializer.new(
21
+ type: :access_token,
22
+ attributes: %i(name),
23
+ relationships: { role: { collection: false, type: :role } }
24
+ ).serialize(resource_attributes, user_id)
25
+
26
+ put_request "/access_tokens/#{user_id}", body
27
+ end
28
+
29
+ def all
30
+ get_request '/access_tokens'
31
+ end
32
+
33
+ def find(user_id)
34
+ get_request "/access_tokens/#{user_id}"
35
+ end
36
+
37
+ def regenerate_token(user_id)
38
+ post_request "/access_tokens/#{user_id}/regenerate_token"
39
+ end
40
+
41
+ def destroy(user_id)
42
+ delete_request "/access_tokens/#{user_id}"
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
@@ -10,7 +10,8 @@ module Dato
10
10
  type: :item_type,
11
11
  attributes: %i(api_key name ordering_direction singleton sortable),
12
12
  relationships: { ordering_field: { collection: false, type: :field } },
13
- required_attributes: %i(api_key name ordering_direction singleton sortable)
13
+ required_attributes: %i(api_key name ordering_direction singleton sortable),
14
+ required_relationships: %i(ordering_field)
14
15
  ).serialize(resource_attributes)
15
16
 
16
17
  post_request '/item-types', body
@@ -21,7 +22,8 @@ module Dato
21
22
  type: :item_type,
22
23
  attributes: %i(api_key name ordering_direction singleton sortable),
23
24
  relationships: { ordering_field: { collection: false, type: :field } },
24
- required_attributes: %i(api_key name ordering_direction singleton sortable)
25
+ required_attributes: %i(api_key name ordering_direction singleton sortable),
26
+ required_relationships: %i(ordering_field)
25
27
  ).serialize(resource_attributes, item_type_id)
26
28
 
27
29
  put_request "/item-types/#{item_type_id}", body
@@ -35,6 +37,10 @@ module Dato
35
37
  get_request "/item-types/#{item_type_id}"
36
38
  end
37
39
 
40
+ def duplicate(item_type_id)
41
+ post_request "/item-types/#{item_type_id}/duplicate"
42
+ end
43
+
38
44
  def destroy(item_type_id)
39
45
  delete_request "/item-types/#{item_type_id}"
40
46
  end
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+ require 'dato/site/repo/base'
3
+
4
+ module Dato
5
+ module Site
6
+ module Repo
7
+ class Role < Base
8
+ def create(resource_attributes)
9
+ body = JsonApiSerializer.new(
10
+ type: :role,
11
+ attributes: %i(can_edit_favicon can_edit_schema can_edit_site can_manage_access_tokens can_manage_users can_perform_site_search can_publish_to_production can_publish_to_staging name negative_item_type_permissions positive_item_type_permissions),
12
+ required_attributes: %i(can_edit_favicon can_edit_schema can_edit_site can_manage_access_tokens can_manage_users can_perform_site_search can_publish_to_production can_publish_to_staging name negative_item_type_permissions positive_item_type_permissions)
13
+ ).serialize(resource_attributes)
14
+
15
+ post_request '/roles', body
16
+ end
17
+
18
+ def update(role_id, resource_attributes)
19
+ body = JsonApiSerializer.new(
20
+ type: :role,
21
+ attributes: %i(can_edit_favicon can_edit_schema can_edit_site can_manage_access_tokens can_manage_users can_perform_site_search can_publish_to_production can_publish_to_staging name negative_item_type_permissions positive_item_type_permissions),
22
+ required_attributes: %i(can_edit_favicon can_edit_schema can_edit_site can_manage_access_tokens can_manage_users can_perform_site_search can_publish_to_production can_publish_to_staging name negative_item_type_permissions positive_item_type_permissions)
23
+ ).serialize(resource_attributes, role_id)
24
+
25
+ put_request "/roles/#{role_id}", body
26
+ end
27
+
28
+ def all
29
+ get_request '/roles'
30
+ end
31
+
32
+ def find(role_id)
33
+ get_request "/roles/#{role_id}"
34
+ end
35
+
36
+ def destroy(role_id)
37
+ delete_request "/roles/#{role_id}"
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+ require 'dato/site/repo/base'
3
+
4
+ module Dato
5
+ module Site
6
+ module Repo
7
+ class SearchResult < Base
8
+ def all
9
+ get_request '/search-results'
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
@@ -12,7 +12,7 @@ module Dato
12
12
  def update(resource_attributes)
13
13
  body = JsonApiSerializer.new(
14
14
  type: :site,
15
- attributes: %i(deploy_adapter deploy_settings favicon frontend_url global_seo locales name no_index ssg theme_hue timezone)
15
+ attributes: %i(favicon global_seo locales name no_index production_deploy_adapter production_deploy_settings production_frontend_url production_spider_enabled require_2fa ssg staging_deploy_adapter staging_deploy_settings staging_frontend_url staging_spider_enabled theme timezone)
16
16
  ).serialize(resource_attributes)
17
17
 
18
18
  put_request '/site', body
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+ require 'dato/site/repo/base'
3
+
4
+ module Dato
5
+ module Site
6
+ module Repo
7
+ class Upload < Base
8
+ def create(resource_attributes)
9
+ body = JsonApiSerializer.new(
10
+ type: :upload,
11
+ attributes: %i(alt format height path size title width),
12
+ required_attributes: %i(format path size)
13
+ ).serialize(resource_attributes)
14
+
15
+ post_request '/uploads', body
16
+ end
17
+
18
+ def all(query)
19
+ get_request '/uploads', query
20
+ end
21
+
22
+ def find(upload_id)
23
+ get_request "/uploads/#{upload_id}"
24
+ end
25
+
26
+ def destroy(upload_id)
27
+ delete_request "/uploads/#{upload_id}"
28
+ end
29
+
30
+ def update(upload_id, resource_attributes)
31
+ body = JsonApiSerializer.new(
32
+ type: :upload,
33
+ attributes: %i(alt title)
34
+ ).serialize(resource_attributes, upload_id)
35
+
36
+ put_request "/uploads/#{upload_id}", body
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -9,7 +9,9 @@ module Dato
9
9
  body = JsonApiSerializer.new(
10
10
  type: :user,
11
11
  attributes: %i(email first_name last_name),
12
- required_attributes: %i(email first_name last_name)
12
+ relationships: { role: { collection: false, type: :role } },
13
+ required_attributes: %i(email first_name last_name),
14
+ required_relationships: %i(role)
13
15
  ).serialize(resource_attributes)
14
16
 
15
17
  post_request '/users', body
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require 'i18n/backend/fallbacks'
2
3
 
3
4
  module Dato
@@ -5,7 +6,7 @@ module Dato
5
6
  module LocaleValue
6
7
  def self.find(obj)
7
8
  locale_with_value = I18n.fallbacks[I18n.locale]
8
- .find { |locale| obj[locale] }
9
+ .find { |locale| obj[locale] }
9
10
 
10
11
  obj[locale_with_value || I18n.locale]
11
12
  end
data/lib/dato/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module Dato
3
- VERSION = '0.3.20'
3
+ VERSION = '0.3.21'
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dato
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.20
4
+ version: 0.3.21
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stefano Verna
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-10-26 00:00:00.000000000 Z
11
+ date: 2017-11-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -421,13 +421,17 @@ files:
421
421
  - lib/dato/local/site.rb
422
422
  - lib/dato/migrate_slugs/runner.rb
423
423
  - lib/dato/site/client.rb
424
+ - lib/dato/site/repo/access_token.rb
424
425
  - lib/dato/site/repo/base.rb
425
426
  - lib/dato/site/repo/deploy_event.rb
426
427
  - lib/dato/site/repo/field.rb
427
428
  - lib/dato/site/repo/item.rb
428
429
  - lib/dato/site/repo/item_type.rb
429
430
  - lib/dato/site/repo/menu_item.rb
431
+ - lib/dato/site/repo/role.rb
432
+ - lib/dato/site/repo/search_result.rb
430
433
  - lib/dato/site/repo/site.rb
434
+ - lib/dato/site/repo/upload.rb
431
435
  - lib/dato/site/repo/upload_request.rb
432
436
  - lib/dato/site/repo/user.rb
433
437
  - lib/dato/upload/file.rb