dato 0.5.1 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Rakefile +0 -38
- data/lib/dato/account/client.rb +3 -70
- data/lib/dato/api_client.rb +98 -0
- data/lib/dato/json_api_serializer.rb +72 -17
- data/lib/dato/paginator.rb +33 -0
- data/lib/dato/repo.rb +91 -0
- data/lib/dato/site/client.rb +3 -91
- data/lib/dato/upload/file.rb +1 -1
- data/lib/dato/version.rb +1 -1
- metadata +5 -20
- data/lib/dato/account/repo/account.rb +0 -23
- data/lib/dato/account/repo/base.rb +0 -27
- data/lib/dato/account/repo/deploy_event.rb +0 -18
- data/lib/dato/account/repo/site.rb +0 -49
- data/lib/dato/site/paginator.rb +0 -35
- data/lib/dato/site/repo/access_token.rb +0 -47
- data/lib/dato/site/repo/base.rb +0 -27
- data/lib/dato/site/repo/deploy_event.rb +0 -18
- data/lib/dato/site/repo/field.rb +0 -41
- data/lib/dato/site/repo/item.rb +0 -80
- data/lib/dato/site/repo/item_type.rb +0 -50
- data/lib/dato/site/repo/menu_item.rb +0 -44
- data/lib/dato/site/repo/role.rb +0 -42
- data/lib/dato/site/repo/search_result.rb +0 -14
- data/lib/dato/site/repo/site.rb +0 -23
- data/lib/dato/site/repo/upload.rb +0 -59
- data/lib/dato/site/repo/upload_request.rb +0 -19
- data/lib/dato/site/repo/user.rb +0 -44
data/lib/dato/site/repo/item.rb
DELETED
@@ -1,80 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
require 'dato/site/repo/base'
|
3
|
-
require 'dato/site/paginator'
|
4
|
-
require 'active_support/core_ext/hash/except'
|
5
|
-
require 'active_support/core_ext/hash/keys'
|
6
|
-
|
7
|
-
module Dato
|
8
|
-
module Site
|
9
|
-
module Repo
|
10
|
-
class Item < Base
|
11
|
-
def create(resource_attributes)
|
12
|
-
body = JsonApiSerializer.new(
|
13
|
-
type: :item,
|
14
|
-
attributes: resource_attributes.keys - [:item_type, :id],
|
15
|
-
relationships: {
|
16
|
-
item_type: { collection: false, type: 'item_type' }
|
17
|
-
},
|
18
|
-
required_relationships: %i(item_type)
|
19
|
-
).serialize(resource_attributes)
|
20
|
-
|
21
|
-
post_request '/items', body
|
22
|
-
end
|
23
|
-
|
24
|
-
def update(item_id, resource_attributes)
|
25
|
-
resource_attributes = resource_attributes.except(
|
26
|
-
:id,
|
27
|
-
:updated_at,
|
28
|
-
:created_at,
|
29
|
-
:is_valid,
|
30
|
-
:item_type,
|
31
|
-
:published_version,
|
32
|
-
:current_version
|
33
|
-
)
|
34
|
-
|
35
|
-
body = JsonApiSerializer.new(
|
36
|
-
type: :item,
|
37
|
-
attributes: resource_attributes.keys
|
38
|
-
).serialize(resource_attributes, item_id)
|
39
|
-
|
40
|
-
put_request "/items/#{item_id}", body
|
41
|
-
end
|
42
|
-
|
43
|
-
def publish(item_id)
|
44
|
-
put_request "/items/#{item_id}/publish", {}
|
45
|
-
end
|
46
|
-
|
47
|
-
def unpublish(item_id)
|
48
|
-
put_request "/items/#{item_id}/unpublish", {}
|
49
|
-
end
|
50
|
-
|
51
|
-
def all(filters = {}, options = {})
|
52
|
-
options.symbolize_keys!
|
53
|
-
|
54
|
-
deserialize_response = options.fetch(:deserialize_response, true)
|
55
|
-
all_pages = options.fetch(:all_pages, false)
|
56
|
-
|
57
|
-
response = if all_pages
|
58
|
-
Paginator.new(client, '/items', filters).response
|
59
|
-
else
|
60
|
-
client.request(:get, '/items', filters)
|
61
|
-
end
|
62
|
-
|
63
|
-
if deserialize_response
|
64
|
-
JsonApiDeserializer.new.deserialize(response)
|
65
|
-
else
|
66
|
-
response
|
67
|
-
end
|
68
|
-
end
|
69
|
-
|
70
|
-
def find(item_id)
|
71
|
-
get_request "/items/#{item_id}"
|
72
|
-
end
|
73
|
-
|
74
|
-
def destroy(item_id)
|
75
|
-
delete_request "/items/#{item_id}"
|
76
|
-
end
|
77
|
-
end
|
78
|
-
end
|
79
|
-
end
|
80
|
-
end
|
@@ -1,50 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
require 'dato/site/repo/base'
|
3
|
-
|
4
|
-
module Dato
|
5
|
-
module Site
|
6
|
-
module Repo
|
7
|
-
class ItemType < Base
|
8
|
-
def create(resource_attributes)
|
9
|
-
body = JsonApiSerializer.new(
|
10
|
-
type: :item_type,
|
11
|
-
attributes: %i(api_key modular_block name ordering_direction singleton sortable tree draft_mode_active),
|
12
|
-
relationships: { ordering_field: { collection: false, type: :field } },
|
13
|
-
required_attributes: %i(api_key modular_block name ordering_direction singleton sortable tree draft_mode_active),
|
14
|
-
required_relationships: %i(ordering_field)
|
15
|
-
).serialize(resource_attributes)
|
16
|
-
|
17
|
-
post_request '/item-types', body
|
18
|
-
end
|
19
|
-
|
20
|
-
def update(item_type_id, resource_attributes)
|
21
|
-
body = JsonApiSerializer.new(
|
22
|
-
type: :item_type,
|
23
|
-
attributes: %i(api_key modular_block name ordering_direction singleton sortable tree draft_mode_active),
|
24
|
-
relationships: { ordering_field: { collection: false, type: :field } },
|
25
|
-
required_attributes: %i(api_key modular_block name ordering_direction singleton sortable tree draft_mode_active),
|
26
|
-
required_relationships: %i(ordering_field)
|
27
|
-
).serialize(resource_attributes, item_type_id)
|
28
|
-
|
29
|
-
put_request "/item-types/#{item_type_id}", body
|
30
|
-
end
|
31
|
-
|
32
|
-
def all
|
33
|
-
get_request '/item-types'
|
34
|
-
end
|
35
|
-
|
36
|
-
def find(item_type_id)
|
37
|
-
get_request "/item-types/#{item_type_id}"
|
38
|
-
end
|
39
|
-
|
40
|
-
def duplicate(item_type_id)
|
41
|
-
post_request "/item-types/#{item_type_id}/duplicate"
|
42
|
-
end
|
43
|
-
|
44
|
-
def destroy(item_type_id)
|
45
|
-
delete_request "/item-types/#{item_type_id}"
|
46
|
-
end
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
@@ -1,44 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
require 'dato/site/repo/base'
|
3
|
-
|
4
|
-
module Dato
|
5
|
-
module Site
|
6
|
-
module Repo
|
7
|
-
class MenuItem < Base
|
8
|
-
def create(resource_attributes)
|
9
|
-
body = JsonApiSerializer.new(
|
10
|
-
type: :menu_item,
|
11
|
-
attributes: %i(label position),
|
12
|
-
relationships: { item_type: { collection: false, type: :item_type }, parent: { collection: false, type: :menu_item } },
|
13
|
-
required_attributes: %i(label position)
|
14
|
-
).serialize(resource_attributes)
|
15
|
-
|
16
|
-
post_request '/menu-items', body
|
17
|
-
end
|
18
|
-
|
19
|
-
def update(menu_item_id, resource_attributes)
|
20
|
-
body = JsonApiSerializer.new(
|
21
|
-
type: :menu_item,
|
22
|
-
attributes: %i(label position),
|
23
|
-
relationships: { item_type: { collection: false, type: :item_type }, parent: { collection: false, type: :menu_item } },
|
24
|
-
required_attributes: %i(label position)
|
25
|
-
).serialize(resource_attributes, menu_item_id)
|
26
|
-
|
27
|
-
put_request "/menu-items/#{menu_item_id}", body
|
28
|
-
end
|
29
|
-
|
30
|
-
def all
|
31
|
-
get_request '/menu-items'
|
32
|
-
end
|
33
|
-
|
34
|
-
def find(menu_item_id)
|
35
|
-
get_request "/menu-items/#{menu_item_id}"
|
36
|
-
end
|
37
|
-
|
38
|
-
def destroy(menu_item_id)
|
39
|
-
delete_request "/menu-items/#{menu_item_id}"
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
data/lib/dato/site/repo/role.rb
DELETED
@@ -1,42 +0,0 @@
|
|
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
|
data/lib/dato/site/repo/site.rb
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
require 'dato/site/repo/base'
|
3
|
-
|
4
|
-
module Dato
|
5
|
-
module Site
|
6
|
-
module Repo
|
7
|
-
class Site < Base
|
8
|
-
def find
|
9
|
-
get_request '/site'
|
10
|
-
end
|
11
|
-
|
12
|
-
def update(resource_attributes)
|
13
|
-
body = JsonApiSerializer.new(
|
14
|
-
type: :site,
|
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
|
-
).serialize(resource_attributes)
|
17
|
-
|
18
|
-
put_request '/site', body
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
@@ -1,59 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
require 'dato/site/repo/base'
|
3
|
-
require 'dato/site/paginator'
|
4
|
-
require 'active_support/core_ext/hash/except'
|
5
|
-
require 'active_support/core_ext/hash/keys'
|
6
|
-
|
7
|
-
module Dato
|
8
|
-
module Site
|
9
|
-
module Repo
|
10
|
-
class Upload < Base
|
11
|
-
def create(resource_attributes)
|
12
|
-
body = JsonApiSerializer.new(
|
13
|
-
type: :upload,
|
14
|
-
attributes: %i(alt format height path size title width),
|
15
|
-
required_attributes: %i(format path size)
|
16
|
-
).serialize(resource_attributes)
|
17
|
-
|
18
|
-
post_request '/uploads', body
|
19
|
-
end
|
20
|
-
|
21
|
-
def all(filters = {}, options = {})
|
22
|
-
options.symbolize_keys!
|
23
|
-
|
24
|
-
deserialize_response = options.fetch(:deserialize_response, true)
|
25
|
-
all_pages = options.fetch(:all_pages, false)
|
26
|
-
|
27
|
-
response = if all_pages
|
28
|
-
Paginator.new(client, '/uploads', filters).response
|
29
|
-
else
|
30
|
-
client.request(:get, '/uploads', filters)
|
31
|
-
end
|
32
|
-
|
33
|
-
if deserialize_response
|
34
|
-
JsonApiDeserializer.new.deserialize(response)
|
35
|
-
else
|
36
|
-
response
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
def find(upload_id)
|
41
|
-
get_request "/uploads/#{upload_id}"
|
42
|
-
end
|
43
|
-
|
44
|
-
def destroy(upload_id)
|
45
|
-
delete_request "/uploads/#{upload_id}"
|
46
|
-
end
|
47
|
-
|
48
|
-
def update(upload_id, resource_attributes)
|
49
|
-
body = JsonApiSerializer.new(
|
50
|
-
type: :upload,
|
51
|
-
attributes: %i(alt title)
|
52
|
-
).serialize(resource_attributes, upload_id)
|
53
|
-
|
54
|
-
put_request "/uploads/#{upload_id}", body
|
55
|
-
end
|
56
|
-
end
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
@@ -1,19 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
require 'dato/site/repo/base'
|
3
|
-
|
4
|
-
module Dato
|
5
|
-
module Site
|
6
|
-
module Repo
|
7
|
-
class UploadRequest < Base
|
8
|
-
def create(resource_attributes)
|
9
|
-
body = JsonApiSerializer.new(
|
10
|
-
type: :upload_request,
|
11
|
-
attributes: %i(filename)
|
12
|
-
).serialize(resource_attributes)
|
13
|
-
|
14
|
-
post_request '/upload-requests', body
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
data/lib/dato/site/repo/user.rb
DELETED
@@ -1,44 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
require 'dato/site/repo/base'
|
3
|
-
|
4
|
-
module Dato
|
5
|
-
module Site
|
6
|
-
module Repo
|
7
|
-
class User < Base
|
8
|
-
def create(resource_attributes)
|
9
|
-
body = JsonApiSerializer.new(
|
10
|
-
type: :user,
|
11
|
-
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)
|
15
|
-
).serialize(resource_attributes)
|
16
|
-
|
17
|
-
post_request '/users', body
|
18
|
-
end
|
19
|
-
|
20
|
-
def all
|
21
|
-
get_request '/users'
|
22
|
-
end
|
23
|
-
|
24
|
-
def find(user_id)
|
25
|
-
get_request "/users/#{user_id}"
|
26
|
-
end
|
27
|
-
|
28
|
-
def reset_password(resource_attributes)
|
29
|
-
body = JsonApiSerializer.new(
|
30
|
-
type: :user,
|
31
|
-
attributes: %i(email),
|
32
|
-
required_attributes: %i(email)
|
33
|
-
).serialize(resource_attributes)
|
34
|
-
|
35
|
-
post_request '/users/reset_password', body
|
36
|
-
end
|
37
|
-
|
38
|
-
def destroy(user_id)
|
39
|
-
delete_request "/users/#{user_id}"
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|