Commit c218a18fb4e27e2171a1e63f7d307e457a997b8c
1 parent
7361f343
Exists in
master
and in
1 other branch
adding level enpoint
Showing
2 changed files
with
39 additions
and
1 deletions
Show diff stats
lib/gamification_plugin/api.rb
... | ... | @@ -6,6 +6,10 @@ class GamificationPlugin::API < Grape::API |
6 | 6 | get 'badges' do |
7 | 7 | present current_person.badges |
8 | 8 | end |
9 | + get 'level' do | |
10 | + {:level => current_person.level, :percent => current_person.gamification_plugin_level_percent} | |
11 | + end | |
12 | + | |
9 | 13 | end |
10 | 14 | |
11 | 15 | resource :people do |
... | ... | @@ -15,6 +19,12 @@ class GamificationPlugin::API < Grape::API |
15 | 19 | present person.badges |
16 | 20 | end |
17 | 21 | |
22 | + get ':id/level' do | |
23 | + person = environment.people.visible_for_person(current_person).find_by_id(params[:id]) | |
24 | + return not_found! if person.blank? | |
25 | + {:level => person.level, :percent => person.gamification_plugin_level_percent} | |
26 | + end | |
27 | + | |
18 | 28 | end |
19 | 29 | end |
20 | 30 | end | ... | ... |
test/unit/api_test.rb
... | ... | @@ -9,7 +9,7 @@ class APITest < ActiveSupport::TestCase |
9 | 9 | environment.enable_plugin(GamificationPlugin) |
10 | 10 | end |
11 | 11 | |
12 | - should 'get badges my own badges' do | |
12 | + should 'get my own badges' do | |
13 | 13 | badge = GamificationPlugin::Badge.create!(:owner => environment, :name => 'test_badge') |
14 | 14 | person.add_badge(badge.id) |
15 | 15 | get "/api/v1/gamification_plugin/my/badges?#{params.to_query}" |
... | ... | @@ -17,6 +17,15 @@ class APITest < ActiveSupport::TestCase |
17 | 17 | assert_equal 'test_badge', json.first['name'] |
18 | 18 | end |
19 | 19 | |
20 | + should 'get my level' do | |
21 | + badge = GamificationPlugin::Badge.create!(:owner => environment, :name => 'test_badge') | |
22 | + person.add_badge(badge.id) | |
23 | + get "/api/v1/gamification_plugin/my/level?#{params.to_query}" | |
24 | + json = JSON.parse(last_response.body) | |
25 | + assert_not_nil json['level'] | |
26 | + assert_not_nil json['percent'] | |
27 | + end | |
28 | + | |
20 | 29 | should 'get badges of the public person' do |
21 | 30 | badge = GamificationPlugin::Badge.create!(:owner => environment, :name => 'test_badge') |
22 | 31 | another_person = create(User, :environment => environment).person |
... | ... | @@ -28,6 +37,16 @@ class APITest < ActiveSupport::TestCase |
28 | 37 | assert_equal 'test_badge', json.first['name'] |
29 | 38 | end |
30 | 39 | |
40 | + should 'get level of the public person' do | |
41 | + another_person = create(User, :environment => environment).person | |
42 | + another_person.visible=true | |
43 | + another_person.save | |
44 | + get "/api/v1/gamification_plugin/people/#{another_person.id}/level?#{params.to_query}" | |
45 | + json = JSON.parse(last_response.body) | |
46 | + assert_not_nil json['level'] | |
47 | + assert_not_nil json['percent'] | |
48 | + end | |
49 | + | |
31 | 50 | should 'not get badges of the private person' do |
32 | 51 | badge = GamificationPlugin::Badge.create!(:owner => environment, :name => 'test_badge') |
33 | 52 | another_person = create(User, :environment_id => environment.id).person |
... | ... | @@ -39,4 +58,13 @@ class APITest < ActiveSupport::TestCase |
39 | 58 | assert_equal 404, last_response.status |
40 | 59 | end |
41 | 60 | |
61 | + should 'not get level of the private person' do | |
62 | + another_person = create(User, :environment_id => environment.id).person | |
63 | + another_person.visible=false | |
64 | + another_person.save | |
65 | + get "/api/v1/gamification_plugin/people/#{another_person.id}/level?#{params.to_query}" | |
66 | + json = JSON.parse(last_response.body) | |
67 | + assert_equal 404, last_response.status | |
68 | + end | |
69 | + | |
42 | 70 | end | ... | ... |