Accept a username for User-level Events API
This commit is contained in:
parent
ad3e180ed3
commit
3c15f0eae7
3 changed files with 12 additions and 3 deletions
|
@ -129,7 +129,7 @@ Parameters:
|
||||||
|
|
||||||
| Attribute | Type | Required | Description |
|
| Attribute | Type | Required | Description |
|
||||||
| --------- | ---- | -------- | ----------- |
|
| --------- | ---- | -------- | ----------- |
|
||||||
| `id` | integer | yes | The ID of the user |
|
| `id` | integer | yes | The ID or Username of the user |
|
||||||
| `action` | string | no | Include only events of a particular [action type][action-types] |
|
| `action` | string | no | Include only events of a particular [action type][action-types] |
|
||||||
| `target_type` | string | no | Include only events of a particular [target type][target-types] |
|
| `target_type` | string | no | Include only events of a particular [target type][target-types] |
|
||||||
| `before` | date | no | Include only events created before a particular date. Please see [here for the supported format][date-formatting] |
|
| `before` | date | no | Include only events created before a particular date. Please see [here for the supported format][date-formatting] |
|
||||||
|
|
|
@ -42,7 +42,7 @@ module API
|
||||||
end
|
end
|
||||||
|
|
||||||
params do
|
params do
|
||||||
requires :id, type: Integer, desc: 'The ID of the user'
|
requires :id, type: String, desc: 'The ID or Username of the user'
|
||||||
end
|
end
|
||||||
resource :users do
|
resource :users do
|
||||||
desc 'Get the contribution events of a specified user' do
|
desc 'Get the contribution events of a specified user' do
|
||||||
|
@ -55,7 +55,7 @@ module API
|
||||||
use :sort_params
|
use :sort_params
|
||||||
end
|
end
|
||||||
get ':id/events' do
|
get ':id/events' do
|
||||||
user = User.find_by(id: params[:id])
|
user = find_user(params[:id])
|
||||||
not_found!('User') unless user
|
not_found!('User') unless user
|
||||||
|
|
||||||
events = EventsFinder.new(params.merge(source: user, current_user: current_user)).execute.preload(:author, :target)
|
events = EventsFinder.new(params.merge(source: user, current_user: current_user)).execute.preload(:author, :target)
|
||||||
|
|
|
@ -41,6 +41,15 @@ describe API::Events, api: true do
|
||||||
end
|
end
|
||||||
|
|
||||||
context "as a user that can see the event's project" do
|
context "as a user that can see the event's project" do
|
||||||
|
it 'accepts a username' do
|
||||||
|
get api("/users/#{user.username}/events", user)
|
||||||
|
|
||||||
|
expect(response).to have_http_status(200)
|
||||||
|
expect(response).to include_pagination_headers
|
||||||
|
expect(json_response).to be_an Array
|
||||||
|
expect(json_response.size).to eq(1)
|
||||||
|
end
|
||||||
|
|
||||||
it 'returns the events' do
|
it 'returns the events' do
|
||||||
get api("/users/#{user.id}/events", user)
|
get api("/users/#{user.id}/events", user)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue