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