39 lines
984 B
Ruby
39 lines
984 B
Ruby
![]() |
module API
|
||
|
module V3
|
||
|
class Groups < Grape::API
|
||
|
include PaginationParams
|
||
|
|
||
|
before { authenticate! }
|
||
|
|
||
|
helpers do
|
||
|
params :statistics_params do
|
||
|
optional :statistics, type: Boolean, default: false, desc: 'Include project statistics'
|
||
|
end
|
||
|
|
||
|
def present_groups(groups, options = {})
|
||
|
options = options.reverse_merge(
|
||
|
with: ::API::Entities::Group,
|
||
|
current_user: current_user,
|
||
|
)
|
||
|
|
||
|
groups = groups.with_statistics if options[:statistics]
|
||
|
present paginate(groups), options
|
||
|
end
|
||
|
end
|
||
|
|
||
|
resource :groups do
|
||
|
desc 'Get list of owned groups for authenticated user' do
|
||
|
success ::API::Entities::Group
|
||
|
end
|
||
|
params do
|
||
|
use :pagination
|
||
|
use :statistics_params
|
||
|
end
|
||
|
get '/owned' do
|
||
|
present_groups current_user.owned_groups, statistics: params[:statistics]
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|