diff options
| author | Robert Schilling <rschilling@student.tugraz.at> | 2016-04-08 15:03:34 +0200 |
|---|---|---|
| committer | Robert Schilling <rschilling@student.tugraz.at> | 2016-04-13 13:45:01 +0200 |
| commit | f875189b3962bde6e4b7b8c4ffdd18af83cbc922 (patch) | |
| tree | 3a97828c01963824d200c85b20195a6f9538fafa /lib/api | |
| parent | bd0be13f5b52b8eaee019d722980b29acbc55b05 (diff) | |
| download | gitlab-ce-f875189b3962bde6e4b7b8c4ffdd18af83cbc922.tar.gz | |
API: Ability to subscribe and unsubscribe from a merge request
Diffstat (limited to 'lib/api')
| -rw-r--r-- | lib/api/issues.rb | 4 | ||||
| -rw-r--r-- | lib/api/merge_requests.rb | 36 |
2 files changed, 38 insertions, 2 deletions
diff --git a/lib/api/issues.rb b/lib/api/issues.rb index 49911fa2988..049618c00f7 100644 --- a/lib/api/issues.rb +++ b/lib/api/issues.rb @@ -235,7 +235,7 @@ module API # Subscribes to a project issue # # Parameters: - # id (required) - The ID of a project + # id (required) - The ID of a project # issue_id (required) - The ID of a project issue # Example Request: # POST /projects/:id/issues/:issue_id @@ -270,7 +270,7 @@ module API # Unsubscribes from a project issue # # Parameters: - # id (required) - The ID of a project + # id (required) - The ID of a project # issue_id (required) - The ID of a project issue # Example Request: # POST /projects/:id/issues/:issue_id/unsubscribe diff --git a/lib/api/merge_requests.rb b/lib/api/merge_requests.rb index 4e7de8867b4..d166484ba54 100644 --- a/lib/api/merge_requests.rb +++ b/lib/api/merge_requests.rb @@ -327,6 +327,42 @@ module API issues = ::Kaminari.paginate_array(merge_request.closes_issues(current_user)) present paginate(issues), with: Entities::Issue, current_user: current_user end + + # Subscribes to a merge request + # + # Parameters: + # id (required) - The ID of a project + # merge_request_id (required) - The ID of a merge request + # Example Request: + # POST /projects/:id/issues/:merge_request_id/subscribe + post "#{path}/subscribe" do + merge_request = user_project.merge_requests.find(params[:merge_request_id]) + + if !merge_request.subscribed?(current_user) + merge_request.toggle_subscription(current_user) + present merge_request, with: Entities::MergeRequest, current_user: current_user + else + not_modified! + end + end + + # Unsubscribes from a merge request + # + # Parameters: + # id (required) - The ID of a project + # merge_request_id (required) - The ID of a merge request + # Example Request: + # POST /projects/:id/merge_requests/:merge_request_id/unsubscribe + post "#{path}/unsubscribe" do + merge_request = user_project.merge_requests.find(params[:merge_request_id]) + + if merge_request.subscribed?(current_user) + merge_request.unsubscribe(current_user) + present merge_request, with: Entities::MergeRequest, current_user: current_user + else + not_modified! + end + end end end end |
