Commit 3e2a483accb48c7a76ff617ed933c46d236581be

Authored by Victor Costa
1 parent 3c7ef3f4
Exists in fix_sign_up_form

api: put roles endpoint inside profiles resource

Showing 2 changed files with 11 additions and 5 deletions   Show diff stats
app/api/v1/roles.rb
@@ -5,14 +5,15 @@ module Api @@ -5,14 +5,15 @@ module Api
5 5
6 MAX_PER_PAGE = 50 6 MAX_PER_PAGE = 50
7 7
8 - resource :organizations do  
9 - segment "/:organization_id" do 8 + resource :profiles do
  9 + segment "/:profile_id" do
10 resource :roles do 10 resource :roles do
11 11
12 paginate max_per_page: MAX_PER_PAGE 12 paginate max_per_page: MAX_PER_PAGE
13 get do 13 get do
14 - organization = environment.profiles.find(params[:organization_id])  
15 - roles = Profile::Roles.organization_roles(organization.environment.id, organization.id) 14 + profile = environment.profiles.find(params[:profile_id])
  15 + return forbidden! unless profile.kind_of?(Organization)
  16 + roles = Profile::Roles.organization_roles(profile.environment.id, profile.id)
16 present_partial paginate(roles), with: Entities::Role 17 present_partial paginate(roles), with: Entities::Role
17 end 18 end
18 19
test/api/roles_test.rb
@@ -16,8 +16,13 @@ class TolesTest < ActiveSupport::TestCase @@ -16,8 +16,13 @@ class TolesTest < ActiveSupport::TestCase
16 role1 = Role.create!(key: 'profile_administrator', name: 'admin', environment: environment) 16 role1 = Role.create!(key: 'profile_administrator', name: 'admin', environment: environment)
17 role2 = Role.new(key: 'profile_moderator', name: 'moderator', environment: environment) 17 role2 = Role.new(key: 'profile_moderator', name: 'moderator', environment: environment)
18 profile.custom_roles << role2 18 profile.custom_roles << role2
19 - get "/api/v1/organizations/#{profile.id}/roles?#{params.to_query}" 19 + get "/api/v1/profiles/#{profile.id}/roles?#{params.to_query}"
20 json = JSON.parse(last_response.body) 20 json = JSON.parse(last_response.body)
21 assert_equivalent [role1.id, role2.id], json['roles'].map {|r| r['id']} 21 assert_equivalent [role1.id, role2.id], json['roles'].map {|r| r['id']}
22 end 22 end
  23 +
  24 + should 'return forbidden status when profile is not an organization' do
  25 + get "/api/v1/profiles/#{person.id}/roles?#{params.to_query}"
  26 + assert_equal 403, last_response.status
  27 + end
23 end 28 end