dato 0.3.20 → 0.3.21

Sign up to get free protection for your applications and to get access to all the features.
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