voog_api 0.0.10 → 0.0.11
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/lib/voog_api/api/articles.rb +35 -5
- data/lib/voog_api/api/assets.rb +17 -3
- data/lib/voog_api/api/comments.rb +17 -1
- data/lib/voog_api/api/content_partials.rb +10 -0
- data/lib/voog_api/api/contents.rb +14 -0
- data/lib/voog_api/api/element_definitions.rb +14 -0
- data/lib/voog_api/api/elements.rb +26 -0
- data/lib/voog_api/api/forms.rb +17 -0
- data/lib/voog_api/api/languages.rb +28 -0
- data/lib/voog_api/api/layout_assets.rb +16 -0
- data/lib/voog_api/api/layouts.rb +14 -0
- data/lib/voog_api/api/media_sets.rb +16 -0
- data/lib/voog_api/api/nodes.rb +12 -0
- data/lib/voog_api/api/pages.rb +30 -0
- data/lib/voog_api/api/people.rb +8 -0
- data/lib/voog_api/api/search.rb +17 -0
- data/lib/voog_api/api/site.rb +14 -0
- data/lib/voog_api/api/site_users.rb +39 -0
- data/lib/voog_api/api/tags.rb +12 -0
- data/lib/voog_api/api/texts.rb +10 -0
- data/lib/voog_api/api/tickets.rb +20 -0
- data/lib/voog_api/client.rb +17 -6
- data/lib/voog_api/error.rb +8 -1
- data/lib/voog_api/version.rb +1 -1
- data/spec/fixtures/search/search.json +30 -0
- data/spec/fixtures/site_users/site_user.json +9 -0
- data/spec/fixtures/site_users/site_users.json +20 -0
- data/spec/voog_api/api/articles_spec.rb +1 -1
- data/spec/voog_api/api/assets_spec.rb +1 -1
- data/spec/voog_api/api/forms_spec.rb +12 -0
- data/spec/voog_api/api/search_spec.rb +16 -0
- data/spec/voog_api/api/site_users_spec.rb +42 -0
- data/spec/voog_api/api/tickets_spec.rb +13 -0
- metadata +14 -2
@@ -1,33 +1,49 @@
|
|
1
1
|
module Voog
|
2
2
|
class API
|
3
|
+
|
4
|
+
# Voog Media Sets API methods.
|
5
|
+
#
|
6
|
+
# @see http://www.voog.com/developers/api/resources/media_sets
|
3
7
|
module MediaSets
|
4
8
|
|
5
9
|
# List media_sets
|
10
|
+
#
|
11
|
+
# @see http://www.voog.com/developers/api/resources/media_sets#get_media_sets
|
6
12
|
def media_sets(params = {})
|
7
13
|
paginate 'media_sets', {query: params}
|
8
14
|
end
|
9
15
|
|
10
16
|
# Get a single media_set
|
17
|
+
#
|
18
|
+
# @see http://www.voog.com/developers/api/resources/media_sets#get_media_set
|
11
19
|
def media_set(id, params = {})
|
12
20
|
get "media_sets/#{id}", {query: params}
|
13
21
|
end
|
14
22
|
|
15
23
|
# Create a media_set
|
24
|
+
#
|
25
|
+
# @see http://www.voog.com/developers/api/resources/media_sets#create_media_set
|
16
26
|
def create_media_set(data)
|
17
27
|
post 'media_sets', data
|
18
28
|
end
|
19
29
|
|
20
30
|
# Update a media_set
|
31
|
+
#
|
32
|
+
# @see http://www.voog.com/developers/api/resources/media_sets#update_media_set
|
21
33
|
def update_media_set(id, data)
|
22
34
|
put "media_sets/#{id}", data
|
23
35
|
end
|
24
36
|
|
25
37
|
# Delete a media_set
|
38
|
+
#
|
39
|
+
# @see http://www.voog.com/developers/api/resources/media_sets#remove_media_set
|
26
40
|
def delete_media_set(id)
|
27
41
|
delete "media_sets/#{id}"
|
28
42
|
end
|
29
43
|
|
30
44
|
# Add assets to media_set
|
45
|
+
#
|
46
|
+
# @see http://www.voog.com/developers/api/resources/media_sets#add_asset_to_media_set
|
31
47
|
def media_set_add_assets(media_set_id, data)
|
32
48
|
post "media_sets/#{media_set_id}/add_assets", data
|
33
49
|
end
|
data/lib/voog_api/api/nodes.rb
CHANGED
@@ -1,23 +1,35 @@
|
|
1
1
|
module Voog
|
2
2
|
class API
|
3
|
+
|
4
|
+
# Voog Nodes API methods.
|
5
|
+
#
|
6
|
+
# @see http://www.voog.com/developers/api/resources/nodes
|
3
7
|
module Nodes
|
4
8
|
|
5
9
|
# List nodes
|
10
|
+
#
|
11
|
+
# @see http://www.voog.com/developers/api/resources/nodes#get_nodes
|
6
12
|
def nodes(params = {})
|
7
13
|
paginate 'nodes', {query: params}
|
8
14
|
end
|
9
15
|
|
10
16
|
# Get a single node
|
17
|
+
#
|
18
|
+
# @see http://www.voog.com/developers/api/resources/nodes#get_node
|
11
19
|
def node(id, params = {})
|
12
20
|
get "nodes/#{id}", {query: params}
|
13
21
|
end
|
14
22
|
|
15
23
|
# Update a node
|
24
|
+
#
|
25
|
+
# @see http://www.voog.com/developers/api/resources/nodes#update_node
|
16
26
|
def update_node(id, data)
|
17
27
|
put "nodes/#{id}", data
|
18
28
|
end
|
19
29
|
|
20
30
|
# Reorder a node
|
31
|
+
#
|
32
|
+
# @see http://www.voog.com/developers/api/resources/nodes#relocate_node
|
21
33
|
def move_node(node_id, params)
|
22
34
|
put "nodes/#{node_id}/move", nil, {query: params}
|
23
35
|
end
|
data/lib/voog_api/api/pages.rb
CHANGED
@@ -1,33 +1,49 @@
|
|
1
1
|
module Voog
|
2
2
|
class API
|
3
|
+
|
4
|
+
# Voog Pages API methods.
|
5
|
+
#
|
6
|
+
# @see http://www.voog.com/developers/api/resources/pages
|
3
7
|
module Pages
|
4
8
|
|
5
9
|
# List pages
|
10
|
+
#
|
11
|
+
# @see http://www.voog.com/developers/api/resources/pages#get_pages
|
6
12
|
def pages(params = {})
|
7
13
|
paginate 'pages', {query: params}
|
8
14
|
end
|
9
15
|
|
10
16
|
# Get a single page
|
17
|
+
#
|
18
|
+
# @see http://www.voog.com/developers/api/resources/pages#get_page
|
11
19
|
def page(id, params = {})
|
12
20
|
get "pages/#{id}", {query: params}
|
13
21
|
end
|
14
22
|
|
15
23
|
# Create a page
|
24
|
+
#
|
25
|
+
# @see http://www.voog.com/developers/api/resources/pages#create_pages
|
16
26
|
def create_page(data)
|
17
27
|
post 'pages', data
|
18
28
|
end
|
19
29
|
|
20
30
|
# Update a page
|
31
|
+
#
|
32
|
+
# @see http://www.voog.com/developers/api/resources/pages#update_page
|
21
33
|
def update_page(id, data)
|
22
34
|
put "pages/#{id}", data
|
23
35
|
end
|
24
36
|
|
25
37
|
# Patch a page
|
38
|
+
#
|
39
|
+
# @see http://www.voog.com/developers/api/resources/pages#patch_page
|
26
40
|
def patch_page(id, data)
|
27
41
|
patch "pages/#{id}", data
|
28
42
|
end
|
29
43
|
|
30
44
|
# Delete a page
|
45
|
+
#
|
46
|
+
# @see http://www.voog.com/developers/api/resources/pages#delete_page
|
31
47
|
def delete_page(id)
|
32
48
|
delete "pages/#{id}"
|
33
49
|
end
|
@@ -35,6 +51,8 @@ module Voog
|
|
35
51
|
# Update/create a key in page data field
|
36
52
|
#
|
37
53
|
# @param id [String] key in data field
|
54
|
+
#
|
55
|
+
# @see http://www.voog.com/developers/api/resources/pages#update_page_data_field
|
38
56
|
def update_page_data(page_id, id, data)
|
39
57
|
put "pages/#{page_id}/data/#{id}", {value: data}
|
40
58
|
end
|
@@ -42,6 +60,8 @@ module Voog
|
|
42
60
|
# Delete a key from page data field
|
43
61
|
#
|
44
62
|
# @param id [String] key in data field
|
63
|
+
#
|
64
|
+
# @see http://www.voog.com/developers/api/resources/pages#delete_page_data_field
|
45
65
|
def delete_page_data(page_id, id)
|
46
66
|
delete "pages/#{page_id}/data/#{id}"
|
47
67
|
end
|
@@ -49,26 +69,36 @@ module Voog
|
|
49
69
|
# Page contents
|
50
70
|
|
51
71
|
# List contents for page
|
72
|
+
#
|
73
|
+
# @see http://www.voog.com/developers/api/resources/contents#get_contents
|
52
74
|
def page_contents(id, params = {})
|
53
75
|
contents(Voog::API::Contents::ParentKind::Page, id, params)
|
54
76
|
end
|
55
77
|
|
56
78
|
# Get a single content for page
|
79
|
+
#
|
80
|
+
# @see http://www.voog.com/developers/api/resources/contents#get_content
|
57
81
|
def page_content(page_id, id, params = {})
|
58
82
|
content(Voog::API::Contents::ParentKind::Page, page_id, id, params)
|
59
83
|
end
|
60
84
|
|
61
85
|
# Create a page content for page
|
86
|
+
#
|
87
|
+
# @see http://www.voog.com/developers/api/resources/contents#create_content
|
62
88
|
def create_page_content(page_id, data)
|
63
89
|
create_content(Voog::API::Contents::ParentKind::Page, page_id, data)
|
64
90
|
end
|
65
91
|
|
66
92
|
# Delete a content from page
|
93
|
+
#
|
94
|
+
# @see http://www.voog.com/developers/api/resources/contents#delete_content
|
67
95
|
def delete_page_content(page_id, id)
|
68
96
|
delete_content(Voog::API::Contents::ParentKind::Page, page_id, id)
|
69
97
|
end
|
70
98
|
|
71
99
|
# Reorder/move page content inside/between content areas and parent objects
|
100
|
+
#
|
101
|
+
# @see http://www.voog.com/developers/api/resources/contents#relocate_content
|
72
102
|
def move_page_content(page_id, id, params = {})
|
73
103
|
move_content(Voog::API::Contents::ParentKind::Page, page_id, id, params)
|
74
104
|
end
|
data/lib/voog_api/api/people.rb
CHANGED
@@ -1,13 +1,21 @@
|
|
1
1
|
module Voog
|
2
2
|
class API
|
3
|
+
|
4
|
+
# Voog People API methods.
|
5
|
+
#
|
6
|
+
# @see http://www.voog.com/developers/api/resources/people
|
3
7
|
module People
|
4
8
|
|
5
9
|
# List people
|
10
|
+
#
|
11
|
+
# @see http://www.voog.com/developers/api/resources/people#get_people
|
6
12
|
def people(params = {})
|
7
13
|
paginate 'people', {query: params}
|
8
14
|
end
|
9
15
|
|
10
16
|
# Get a single person
|
17
|
+
#
|
18
|
+
# @see http://www.voog.com/developers/api/resources/people#get_person
|
11
19
|
def person(id, params = {})
|
12
20
|
get "people/#{id}", {query: params}
|
13
21
|
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Voog
|
2
|
+
class API
|
3
|
+
|
4
|
+
# Voog site Search API methods.
|
5
|
+
#
|
6
|
+
# @see http://www.voog.com/developers/api/resources/search
|
7
|
+
module Search
|
8
|
+
|
9
|
+
# Perform full text search over current public (and indexed) content.
|
10
|
+
#
|
11
|
+
# @see http://www.voog.com/developers/api/resources/search#get_search
|
12
|
+
def search(params = {})
|
13
|
+
paginate 'search', {query: params}
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
data/lib/voog_api/api/site.rb
CHANGED
@@ -1,18 +1,28 @@
|
|
1
1
|
module Voog
|
2
2
|
class API
|
3
|
+
|
4
|
+
# Voog Site API methods.
|
5
|
+
#
|
6
|
+
# @see http://www.voog.com/developers/api/resources/site
|
3
7
|
module Site
|
4
8
|
|
5
9
|
# Get site attributes
|
10
|
+
#
|
11
|
+
# @see http://www.voog.com/developers/api/resources/site#get_site
|
6
12
|
def site(params = {})
|
7
13
|
get 'site', {query: params}
|
8
14
|
end
|
9
15
|
|
10
16
|
# Update a site
|
17
|
+
#
|
18
|
+
# @see http://www.voog.com/developers/api/resources/site#update_sites
|
11
19
|
def update_site(data)
|
12
20
|
put "site", data
|
13
21
|
end
|
14
22
|
|
15
23
|
# Patch a site
|
24
|
+
#
|
25
|
+
# @see http://www.voog.com/developers/api/resources/site#patch_sites
|
16
26
|
def patch_site(data)
|
17
27
|
patch "site", data
|
18
28
|
end
|
@@ -20,6 +30,8 @@ module Voog
|
|
20
30
|
# Update/create a key in site data field
|
21
31
|
#
|
22
32
|
# @param id [String] key in data field
|
33
|
+
#
|
34
|
+
# @see http://www.voog.com/developers/api/resources/site#update_site_data
|
23
35
|
def update_site_data(id, data)
|
24
36
|
put "site/data/#{id}", {value: data}
|
25
37
|
end
|
@@ -27,6 +39,8 @@ module Voog
|
|
27
39
|
# Delete a key from site data field
|
28
40
|
#
|
29
41
|
# @param id [String] key in data field
|
42
|
+
#
|
43
|
+
# @see http://www.voog.com/developers/api/resources/site#delete_site_data_field
|
30
44
|
def delete_site_data(id)
|
31
45
|
delete "site/data/#{id}"
|
32
46
|
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
module Voog
|
2
|
+
class API
|
3
|
+
|
4
|
+
# Voog Site Users API methods. Manage users who have access to password protected pages.
|
5
|
+
#
|
6
|
+
# @see http://www.voog.com/support/guides/managing-your-website-pages/password-protected-pages
|
7
|
+
# @see http://www.voog.com/developers/api/resources/site_users
|
8
|
+
module SiteUsers
|
9
|
+
|
10
|
+
# List site users with access to password protected pages
|
11
|
+
#
|
12
|
+
# @see http://www.voog.com/developers/api/resources/site_users#get_site_users
|
13
|
+
def site_users(params = {})
|
14
|
+
paginate 'site_users', {query: params}
|
15
|
+
end
|
16
|
+
|
17
|
+
# Invite a new user to see password protected pages
|
18
|
+
#
|
19
|
+
# @see http://www.voog.com/developers/api/resources/site_users#create_site_user
|
20
|
+
def create_site_user(data)
|
21
|
+
post 'site_users', data
|
22
|
+
end
|
23
|
+
|
24
|
+
# Get a single site user
|
25
|
+
#
|
26
|
+
# @see http://www.voog.com/developers/api/resources/site_users#get_site_user
|
27
|
+
def site_user(id, params = {})
|
28
|
+
get "site_users/#{id}", {query: params}
|
29
|
+
end
|
30
|
+
|
31
|
+
# Delete a site user
|
32
|
+
#
|
33
|
+
# @see http://www.voog.com/developers/api/resources/site_users#remove_site_user
|
34
|
+
def delete_site_user(id)
|
35
|
+
delete "site_users/#{id}"
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
data/lib/voog_api/api/tags.rb
CHANGED
@@ -1,23 +1,35 @@
|
|
1
1
|
module Voog
|
2
2
|
class API
|
3
|
+
|
4
|
+
# Voog Tags API methods.
|
5
|
+
#
|
6
|
+
# @see http://www.voog.com/developers/api/resources/tags
|
3
7
|
module Tags
|
4
8
|
|
5
9
|
# List tags
|
10
|
+
#
|
11
|
+
# @see http://www.voog.com/developers/api/resources/tags#get_tags
|
6
12
|
def tags(params = {})
|
7
13
|
paginate 'tags', {query: params}
|
8
14
|
end
|
9
15
|
|
10
16
|
# Get a single tag
|
17
|
+
#
|
18
|
+
# @see http://www.voog.com/developers/api/resources/tags#get_tag
|
11
19
|
def tag(id, params = {})
|
12
20
|
get "tags/#{id}", {query: params}
|
13
21
|
end
|
14
22
|
|
15
23
|
# Update a tag
|
24
|
+
#
|
25
|
+
# @see http://www.voog.com/developers/api/resources/tags#update_tag
|
16
26
|
def update_tag(id, data)
|
17
27
|
put "tags/#{id}", data
|
18
28
|
end
|
19
29
|
|
20
30
|
# Delete a tag
|
31
|
+
#
|
32
|
+
# @see http://www.voog.com/developers/api/resources/tags#remove_tag
|
21
33
|
def delete_tag(id)
|
22
34
|
delete "tags/#{id}"
|
23
35
|
end
|
data/lib/voog_api/api/texts.rb
CHANGED
@@ -1,18 +1,28 @@
|
|
1
1
|
module Voog
|
2
2
|
class API
|
3
|
+
|
4
|
+
# Voog Text Contents API methods.
|
5
|
+
#
|
6
|
+
# @see http://www.voog.com/developers/api/resources/texts
|
3
7
|
module Texts
|
4
8
|
|
5
9
|
# List text contents
|
10
|
+
#
|
11
|
+
# @see http://www.voog.com/developers/api/resources/texts#get_texts
|
6
12
|
def texts(params = {})
|
7
13
|
paginate 'texts', {query: params}
|
8
14
|
end
|
9
15
|
|
10
16
|
# Get a single text content
|
17
|
+
#
|
18
|
+
# @see http://www.voog.com/developers/api/resources/texts#get_text
|
11
19
|
def text(id, params = {})
|
12
20
|
get "texts/#{id}", {query: params}
|
13
21
|
end
|
14
22
|
|
15
23
|
# Update a text content
|
24
|
+
#
|
25
|
+
# @see http://www.voog.com/developers/api/resources/texts#update_text
|
16
26
|
def update_text(id, data)
|
17
27
|
put "texts/#{id}", data
|
18
28
|
end
|
data/lib/voog_api/api/tickets.rb
CHANGED
@@ -1,26 +1,46 @@
|
|
1
1
|
module Voog
|
2
2
|
class API
|
3
|
+
|
4
|
+
# Voog Tickets API methods.
|
5
|
+
#
|
6
|
+
# @see http://www.voog.com/developers/api/resources/tickets
|
3
7
|
module Tickets
|
4
8
|
|
5
9
|
# List form tickets
|
10
|
+
#
|
11
|
+
# @see http://www.voog.com/developers/api/resources/tickets#get_tickets
|
6
12
|
def tickets(form_id, params = {})
|
7
13
|
paginate "forms/#{form_id}/tickets", {query: params}
|
8
14
|
end
|
9
15
|
|
10
16
|
# Get a single ticket for form
|
17
|
+
#
|
18
|
+
# @see http://www.voog.com/developers/api/resources/tickets#get_ticket
|
11
19
|
def ticket(form_id, id, params = {})
|
12
20
|
get "forms/#{form_id}/tickets/#{id}", {query: params}
|
13
21
|
end
|
14
22
|
|
15
23
|
# Delete a form ticket
|
24
|
+
#
|
25
|
+
# @see http://www.voog.com/developers/api/resources/tickets#remove_ticket
|
16
26
|
def delete_ticket(form_id, id)
|
17
27
|
delete "forms/#{form_id}/tickets/#{id}"
|
18
28
|
end
|
19
29
|
|
20
30
|
# Delete all spam ticket for form
|
31
|
+
#
|
32
|
+
# @see http://www.voog.com/developers/api/resources/tickets#delete_spam_tickets
|
21
33
|
def delete_spam_tickets(form_id)
|
22
34
|
delete "forms/#{form_id}/tickets/delete_spam"
|
23
35
|
end
|
36
|
+
|
37
|
+
# Delete all or set of ticket for form
|
38
|
+
#
|
39
|
+
# @option params [Array] :ticket_ids array of ticket id that should be removed. All tickets are deleted when this parameter is not provided.
|
40
|
+
# @see http://www.voog.com/developers/api/resources/tickets#delete_tickets
|
41
|
+
def delete_tickets(form_id, params = {})
|
42
|
+
delete "forms/#{form_id}/tickets/delete_tickets", {query: params}
|
43
|
+
end
|
24
44
|
end
|
25
45
|
end
|
26
46
|
end
|
data/lib/voog_api/client.rb
CHANGED
@@ -19,12 +19,17 @@ require 'voog_api/api/nodes'
|
|
19
19
|
require 'voog_api/api/site'
|
20
20
|
require 'voog_api/api/pages'
|
21
21
|
require 'voog_api/api/people'
|
22
|
+
require 'voog_api/api/search'
|
23
|
+
require 'voog_api/api/site_users'
|
22
24
|
require 'voog_api/api/tags'
|
23
25
|
require 'voog_api/api/texts'
|
24
26
|
require 'voog_api/api/tickets'
|
25
27
|
|
26
28
|
module Voog
|
27
|
-
|
29
|
+
|
30
|
+
# Voog API client.
|
31
|
+
#
|
32
|
+
# @see http://www.voog.com/developers/api
|
28
33
|
class Client
|
29
34
|
|
30
35
|
MAX_PER_PAGE = 250
|
@@ -44,12 +49,14 @@ module Voog
|
|
44
49
|
include Voog::API::Nodes
|
45
50
|
include Voog::API::Pages
|
46
51
|
include Voog::API::People
|
52
|
+
include Voog::API::Search
|
47
53
|
include Voog::API::Site
|
54
|
+
include Voog::API::SiteUsers
|
48
55
|
include Voog::API::Tags
|
49
56
|
include Voog::API::Texts
|
50
57
|
include Voog::API::Tickets
|
51
58
|
|
52
|
-
attr_reader :api_token, :host, :auto_paginate, :per_page
|
59
|
+
attr_reader :api_token, :host, :protocol, :auto_paginate, :per_page
|
53
60
|
|
54
61
|
# Initialize Voog API client.
|
55
62
|
#
|
@@ -96,7 +103,11 @@ module Voog
|
|
96
103
|
end
|
97
104
|
|
98
105
|
def api_endpoint
|
99
|
-
"#{
|
106
|
+
"#{host_with_protocol}/admin/api".freeze
|
107
|
+
end
|
108
|
+
|
109
|
+
def host_with_protocol
|
110
|
+
"#{protocol}://#{host}".freeze
|
100
111
|
end
|
101
112
|
|
102
113
|
def agent
|
@@ -128,6 +139,8 @@ module Voog
|
|
128
139
|
end
|
129
140
|
|
130
141
|
# Fetch all elements for requested API resource when {#auto_paginate} is turned on.
|
142
|
+
#
|
143
|
+
# @see http://www.voog.com/developers/api/basics/pagination
|
131
144
|
def paginate(url, options = {}, &block)
|
132
145
|
opts = options.dup
|
133
146
|
if @auto_paginate || @per_page
|
@@ -137,9 +150,7 @@ module Voog
|
|
137
150
|
data = request(:get, url, nil, opts)
|
138
151
|
|
139
152
|
if @auto_paginate
|
140
|
-
i = 0
|
141
153
|
while @last_response.rels[:next]
|
142
|
-
puts "Request: #{i += 1}"
|
143
154
|
@last_response = @last_response.rels[:next].get(headers: opts[:headers])
|
144
155
|
if block_given?
|
145
156
|
yield(data, @last_response)
|
@@ -161,7 +172,7 @@ module Voog
|
|
161
172
|
multipart_agent.post("#{api_endpoint}/#{path}", data) : \
|
162
173
|
agent.call(method, URI.encode(path.to_s), data, options.dup)
|
163
174
|
|
164
|
-
raise Voog::MovedPermanently.new(response
|
175
|
+
raise Voog::MovedPermanently.new(response, host_with_protocol) if response.status == 301
|
165
176
|
|
166
177
|
if multipart
|
167
178
|
parse_response(response.body)
|
data/lib/voog_api/error.rb
CHANGED
@@ -1,6 +1,13 @@
|
|
1
1
|
module Voog
|
2
2
|
|
3
3
|
# Raised when Voog API returns a 301 HTTP status code
|
4
|
-
class MovedPermanently < StandardError
|
4
|
+
class MovedPermanently < StandardError
|
5
|
+
attr_reader :response
|
6
|
+
|
7
|
+
def initialize(response, hostname)
|
8
|
+
@response = response
|
9
|
+
super("#{hostname} is permanently redirected to #{response.headers['location'] if response}")
|
10
|
+
end
|
11
|
+
end
|
5
12
|
|
6
13
|
end
|
data/lib/voog_api/version.rb
CHANGED
@@ -0,0 +1,30 @@
|
|
1
|
+
{
|
2
|
+
"result": [{
|
3
|
+
"title": "Having sample news pieces? — Formtest",
|
4
|
+
"description": "from the Blogs section below. By the way, you can add <em>any</em> <em>kind</em> <em>of</em> <em>content</em> to your blog post — text, pictures, tables, forms, and galleries.\n\nThe above is excerpt",
|
5
|
+
"type": "page",
|
6
|
+
"lang": "en",
|
7
|
+
"path": "/blog/having-sample-news-pieces",
|
8
|
+
"tags": [
|
9
|
+
"sample", "news"
|
10
|
+
],
|
11
|
+
"updated_at": "2013-12-13T09:19:04Z"
|
12
|
+
}, {
|
13
|
+
"title": "Formtest — Blog",
|
14
|
+
"description": ", you can add <em>any</em> <em>kind</em> <em>of</em> <em>content</em> to your blog post — text, pictures, tables, forms, and galleries.\n\nRead more →",
|
15
|
+
"type": "page",
|
16
|
+
"lang": "en",
|
17
|
+
"path": "/blog",
|
18
|
+
"tags": [],
|
19
|
+
"updated_at": "2016-01-01T15:59:18Z"
|
20
|
+
}, {
|
21
|
+
"title": "Formtest — Home page",
|
22
|
+
"description": ", delete, modify <em>any</em> text or pictures as you desire.© My Company 2012. Visit us at 1192 Cambridge Street, Cambridge, MA 02139Call us +1 617-576-1950 Email us at email@yourname.com",
|
23
|
+
"type": "page",
|
24
|
+
"lang": "en",
|
25
|
+
"path": "/en",
|
26
|
+
"tags": [],
|
27
|
+
"updated_at": "2016-01-01T15:59:18Z"
|
28
|
+
}],
|
29
|
+
"time_ms": 28
|
30
|
+
}
|
@@ -0,0 +1,20 @@
|
|
1
|
+
[
|
2
|
+
{
|
3
|
+
"id": 1,
|
4
|
+
"email": "test@test.ee",
|
5
|
+
"status": "active",
|
6
|
+
"created_at": "2015-11-05T07:45:02.000Z",
|
7
|
+
"updated_at": "2015-11-05T07:49:16.000Z",
|
8
|
+
"last_login_at": "2015-11-05T07:49:16.000Z",
|
9
|
+
"url": "http://voog.test/admin/api/site_users/1"
|
10
|
+
},
|
11
|
+
{
|
12
|
+
"id": 2,
|
13
|
+
"email": "test2@test.ee",
|
14
|
+
"status": "created",
|
15
|
+
"created_at": "2015-11-05T07:52:55.000Z",
|
16
|
+
"updated_at": "2015-11-05T07:52:55.000Z",
|
17
|
+
"last_login_at": null,
|
18
|
+
"url": "http://voog.test/admin/api/site_users/2"
|
19
|
+
}
|
20
|
+
]
|
@@ -23,7 +23,7 @@ describe Voog::API::Articles do
|
|
23
23
|
expect(client.article(2).title).to eq('How I wrote my first article')
|
24
24
|
end
|
25
25
|
|
26
|
-
it 'returns
|
26
|
+
it 'returns an article with the same id as in the request' do
|
27
27
|
expect(client.article(2).id).to eq(2)
|
28
28
|
end
|
29
29
|
end
|
@@ -23,7 +23,7 @@ describe Voog::API::Assets do
|
|
23
23
|
expect(client.asset(1).filename).to eq('Screen Shot 2014-01-28 at 10.53.26.png')
|
24
24
|
end
|
25
25
|
|
26
|
-
it 'returns
|
26
|
+
it 'returns an asset with the same id as in the request' do
|
27
27
|
expect(client.asset(1).id).to eq(1)
|
28
28
|
end
|
29
29
|
end
|
@@ -38,4 +38,16 @@ describe Voog::API::Forms do
|
|
38
38
|
expect(client.update_form(2, title: 'Updated title', submit_label: 'Send!').title).to eq('Updated title')
|
39
39
|
end
|
40
40
|
end
|
41
|
+
|
42
|
+
describe '#delete_form' do
|
43
|
+
|
44
|
+
before do
|
45
|
+
request_fixture(:delete, 'forms/2')
|
46
|
+
end
|
47
|
+
|
48
|
+
it 'calls delete method on form' do
|
49
|
+
client.delete_form(2)
|
50
|
+
assert_requested :delete, 'http://voog.test/admin/api/forms/2'
|
51
|
+
end
|
52
|
+
end
|
41
53
|
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Voog::API::Search do
|
4
|
+
|
5
|
+
let(:client) { voog_client }
|
6
|
+
|
7
|
+
describe '#people' do
|
8
|
+
before do
|
9
|
+
request_fixture(:get, 'search', request: {q: 'any kind of content'}, fixture: 'search/search')
|
10
|
+
end
|
11
|
+
|
12
|
+
it 'returns a list of search results' do
|
13
|
+
expect(client.search.result.length).to eql(3)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|