Commit cdd1f702fef8c26321fb6855a774cddb25f71f0b
1 parent
a766ba55
Exists in
profile_api_improvements
and in
1 other branch
Ticket #85: Adding API endpoint to retrieve tags from a person
Showing
3 changed files
with
40 additions
and
0 deletions
Show diff stats
plugins/person_tags/lib/person_tags_plugin.rb
@@ -15,4 +15,8 @@ class PersonTagsPlugin < Noosfero::Plugin | @@ -15,4 +15,8 @@ class PersonTagsPlugin < Noosfero::Plugin | ||
15 | def profile_editor_extras | 15 | def profile_editor_extras |
16 | expanded_template('profile-editor-extras.html.erb').html_safe | 16 | expanded_template('profile-editor-extras.html.erb').html_safe |
17 | end | 17 | end |
18 | + | ||
19 | + def self.api_mount_points | ||
20 | + [PersonTagsPlugin::API] | ||
21 | + end | ||
18 | end | 22 | end |
@@ -0,0 +1,27 @@ | @@ -0,0 +1,27 @@ | ||
1 | +require_relative '../test_helper' | ||
2 | +require_relative '../../../../test/api/test_helper' | ||
3 | + | ||
4 | +class APITest < ActiveSupport::TestCase | ||
5 | + | ||
6 | + def setup | ||
7 | + create_and_activate_user | ||
8 | + environment.enable_plugin(PersonTagsPlugin) | ||
9 | + end | ||
10 | + | ||
11 | + should 'return tags for a person' do | ||
12 | + person = create_user('person').person | ||
13 | + person.interest_list.add('linux') | ||
14 | + person.save! | ||
15 | + person.reload | ||
16 | + get "/api/v1/people/#{person.id}/tags?#{params.to_query}" | ||
17 | + json = JSON.parse(last_response.body) | ||
18 | + assert_equal ['linux'], json | ||
19 | + end | ||
20 | + | ||
21 | + should 'return empty list if person has no tags' do | ||
22 | + person = create_user('person').person | ||
23 | + get "/api/v1/people/#{person.id}/tags?#{params.to_query}" | ||
24 | + json = JSON.parse(last_response.body) | ||
25 | + assert_equal [], json | ||
26 | + end | ||
27 | +end |