Merge branch 'grapify-subscription-api' into 'master'
Grapify subscription API ## What are the relevant issue numbers? Related to #22928 See merge request !7380
This commit is contained in:
commit
763a89a301
1 changed files with 14 additions and 23 deletions
|
@ -9,23 +9,20 @@ module API
|
||||||
'labels' => proc { |id| find_project_label(id) },
|
'labels' => proc { |id| find_project_label(id) },
|
||||||
}
|
}
|
||||||
|
|
||||||
|
params do
|
||||||
|
requires :id, type: String, desc: 'The ID of a project'
|
||||||
|
requires :subscribable_id, type: String, desc: 'The ID of a resource'
|
||||||
|
end
|
||||||
resource :projects do
|
resource :projects do
|
||||||
subscribable_types.each do |type, finder|
|
subscribable_types.each do |type, finder|
|
||||||
type_singularized = type.singularize
|
type_singularized = type.singularize
|
||||||
type_id_str = :"#{type_singularized}_id"
|
|
||||||
entity_class = Entities.const_get(type_singularized.camelcase)
|
entity_class = Entities.const_get(type_singularized.camelcase)
|
||||||
|
|
||||||
# Subscribe to a resource
|
desc 'Subscribe to a resource' do
|
||||||
#
|
success entity_class
|
||||||
# Parameters:
|
end
|
||||||
# id (required) - The ID of a project
|
post ":id/#{type}/:subscribable_id/subscription" do
|
||||||
# subscribable_id (required) - The ID of a resource
|
resource = instance_exec(params[:subscribable_id], &finder)
|
||||||
# Example Request:
|
|
||||||
# POST /projects/:id/labels/:subscribable_id/subscription
|
|
||||||
# POST /projects/:id/issues/:subscribable_id/subscription
|
|
||||||
# POST /projects/:id/merge_requests/:subscribable_id/subscription
|
|
||||||
post ":id/#{type}/:#{type_id_str}/subscription" do
|
|
||||||
resource = instance_exec(params[type_id_str], &finder)
|
|
||||||
|
|
||||||
if resource.subscribed?(current_user)
|
if resource.subscribed?(current_user)
|
||||||
not_modified!
|
not_modified!
|
||||||
|
@ -35,17 +32,11 @@ module API
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# Unsubscribe from a resource
|
desc 'Unsubscribe from a resource' do
|
||||||
#
|
success entity_class
|
||||||
# Parameters:
|
end
|
||||||
# id (required) - The ID of a project
|
delete ":id/#{type}/:subscribable_id/subscription" do
|
||||||
# subscribable_id (required) - The ID of a resource
|
resource = instance_exec(params[:subscribable_id], &finder)
|
||||||
# Example Request:
|
|
||||||
# DELETE /projects/:id/labels/:subscribable_id/subscription
|
|
||||||
# DELETE /projects/:id/issues/:subscribable_id/subscription
|
|
||||||
# DELETE /projects/:id/merge_requests/:subscribable_id/subscription
|
|
||||||
delete ":id/#{type}/:#{type_id_str}/subscription" do
|
|
||||||
resource = instance_exec(params[type_id_str], &finder)
|
|
||||||
|
|
||||||
if !resource.subscribed?(current_user)
|
if !resource.subscribed?(current_user)
|
||||||
not_modified!
|
not_modified!
|
||||||
|
|
Loading…
Reference in a new issue