Merge branch 'api-star-restful' into 'master'
API: Moved `DELETE /projects/:id/star` to `POST /projects/:id/unstar` Closes #28328 See merge request !9328
This commit is contained in:
commit
5f0e4619dc
5 changed files with 13 additions and 8 deletions
4
changelogs/unreleased/api-star-restful.yml
Normal file
4
changelogs/unreleased/api-star-restful.yml
Normal file
|
@ -0,0 +1,4 @@
|
|||
---
|
||||
title: 'API: Moved `DELETE /projects/:id/star` to `POST /projects/:id/unstar`'
|
||||
merge_request: 9328
|
||||
author: Robert Schilling
|
|
@ -609,7 +609,7 @@ Example response:
|
|||
Unstars a given project. Returns status code `304` if the project is not starred.
|
||||
|
||||
```
|
||||
DELETE /projects/:id/star
|
||||
POST /projects/:id/unstar
|
||||
```
|
||||
|
||||
| Attribute | Type | Required | Description |
|
||||
|
@ -617,7 +617,7 @@ DELETE /projects/:id/star
|
|||
| `id` | integer/string | yes | The ID of the project or NAMESPACE/PROJECT_NAME |
|
||||
|
||||
```bash
|
||||
curl --request DELETE --header "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" "https://gitlab.example.com/api/v3/projects/5/star"
|
||||
curl --request POST --header "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" "https://gitlab.example.com/api/v3/projects/5/unstar"
|
||||
```
|
||||
|
||||
Example response:
|
||||
|
@ -1194,4 +1194,4 @@ Parameters:
|
|||
| --------- | ---- | -------- | ----------- |
|
||||
| `query` | string | yes | A string contained in the project name |
|
||||
| `order_by` | string | no | Return requests ordered by `id`, `name`, `created_at` or `last_activity_at` fields |
|
||||
| `sort` | string | no | Return requests sorted in `asc` or `desc` order |
|
||||
| `sort` | string | no | Return requests sorted in `asc` or `desc` order |
|
||||
|
|
|
@ -13,6 +13,7 @@ changes are in V4:
|
|||
- Project snippets do not return deprecated field `expires_at`
|
||||
- Endpoints under `projects/:id/keys` have been removed (use `projects/:id/deploy_keys`)
|
||||
- Status 409 returned for POST `project/:id/members` when a member already exists
|
||||
- Moved `DELETE /projects/:id/star` to `POST /projects/:id/unstar`
|
||||
- Removed the following deprecated Templates endpoints (these are still accessible with `/templates` prefix)
|
||||
- `/licences`
|
||||
- `/licences/:key`
|
||||
|
|
|
@ -266,7 +266,7 @@ module API
|
|||
desc 'Unstar a project' do
|
||||
success Entities::Project
|
||||
end
|
||||
delete ':id/star' do
|
||||
post ':id/unstar' do
|
||||
if current_user.starred?(user_project)
|
||||
current_user.toggle_star(user_project)
|
||||
user_project.reload
|
||||
|
|
|
@ -1235,7 +1235,7 @@ describe API::Projects, api: true do
|
|||
end
|
||||
end
|
||||
|
||||
describe 'DELETE /projects/:id/star' do
|
||||
describe 'POST /projects/:id/unstar' do
|
||||
context 'on a starred project' do
|
||||
before do
|
||||
user.toggle_star(project)
|
||||
|
@ -1243,16 +1243,16 @@ describe API::Projects, api: true do
|
|||
end
|
||||
|
||||
it 'unstars the project' do
|
||||
expect { delete api("/projects/#{project.id}/star", user) }.to change { project.reload.star_count }.by(-1)
|
||||
expect { post api("/projects/#{project.id}/unstar", user) }.to change { project.reload.star_count }.by(-1)
|
||||
|
||||
expect(response).to have_http_status(200)
|
||||
expect(response).to have_http_status(201)
|
||||
expect(json_response['star_count']).to eq(0)
|
||||
end
|
||||
end
|
||||
|
||||
context 'on an unstarred project' do
|
||||
it 'does not modify the star count' do
|
||||
expect { delete api("/projects/#{project.id}/star", user) }.not_to change { project.reload.star_count }
|
||||
expect { post api("/projects/#{project.id}/unstar", user) }.not_to change { project.reload.star_count }
|
||||
|
||||
expect(response).to have_http_status(304)
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue