From 392cc887097bfd0c28b547700b9a67c32cf14e69 Mon Sep 17 00:00:00 2001 From: Tomasz Maczukin Date: Fri, 17 Nov 2017 02:43:55 +0100 Subject: Add new API endpoint - get a namespace by ID --- lib/api/namespaces.rb | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'lib/api/namespaces.rb') diff --git a/lib/api/namespaces.rb b/lib/api/namespaces.rb index f1eaff6b0eb..21dc5009d0e 100644 --- a/lib/api/namespaces.rb +++ b/lib/api/namespaces.rb @@ -19,6 +19,30 @@ module API present paginate(namespaces), with: Entities::Namespace, current_user: current_user end + + desc 'Get a namespace by ID' do + success Entities::Namespace + end + params do + requires :id, type: Integer, desc: "Namespace's ID" + end + get ':id' do + namespace = Namespace.find(params[:id]) + authenticate_get_namespace!(namespace) + + present namespace, with: Entities::Namespace, current_user: current_user + end + end + + helpers do + def authenticate_get_namespace!(namespace) + return if current_user.admin? + forbidden!('No access granted') unless user_can_access_namespace?(namespace) + end + + def user_can_access_namespace?(namespace) + namespace.has_owner?(current_user) + end end end end -- cgit v1.2.1 From dfbfd3c7d7d4677ac99a7f8147a673911e8d4e98 Mon Sep 17 00:00:00 2001 From: Tomasz Maczukin Date: Thu, 23 Nov 2017 14:32:16 +0100 Subject: Allow request namespace by ID or path --- lib/api/namespaces.rb | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) (limited to 'lib/api/namespaces.rb') diff --git a/lib/api/namespaces.rb b/lib/api/namespaces.rb index 21dc5009d0e..32b77aedba8 100644 --- a/lib/api/namespaces.rb +++ b/lib/api/namespaces.rb @@ -24,24 +24,10 @@ module API success Entities::Namespace end params do - requires :id, type: Integer, desc: "Namespace's ID" + requires :id, type: String, desc: "Namespace's ID or path" end get ':id' do - namespace = Namespace.find(params[:id]) - authenticate_get_namespace!(namespace) - - present namespace, with: Entities::Namespace, current_user: current_user - end - end - - helpers do - def authenticate_get_namespace!(namespace) - return if current_user.admin? - forbidden!('No access granted') unless user_can_access_namespace?(namespace) - end - - def user_can_access_namespace?(namespace) - namespace.has_owner?(current_user) + present user_namespace, with: Entities::Namespace, current_user: current_user end end end -- cgit v1.2.1