Commit a14bcdb2 authored by Nicolas Dular's avatar Nicolas Dular Committed by Ash McKenzie

Add target_path to broadcast API

As a follow-up to the MR that intrduced `target_path` to
`BroadcastMessage`, this MR adds the field to our API.
parent b13cf622
---
title: Add target_path to broadcast message API
merge_request: 21430
author:
type: added
......@@ -34,7 +34,8 @@ Example response:
"color":"#E75E40",
"font":"#FFFFFF",
"id":1,
"active": false
"active": false,
"target_path": "*/welcome"
}
]
```
......@@ -69,7 +70,8 @@ Example response:
"color":"#cecece",
"font":"#FFFFFF",
"id":1,
"active":false
"active":false,
"target_path": "*/welcome"
}
```
......@@ -107,7 +109,8 @@ Example response:
"color":"#cecece",
"font":"#FFFFFF",
"id":1,
"active": true
"active": true,
"target_path": "*/welcome"
}
```
......@@ -146,7 +149,8 @@ Example response:
"color":"#000",
"font":"#FFFFFF",
"id":1,
"active": true
"active": true,
"target_path": "*/welcome"
}
```
......
......@@ -32,11 +32,12 @@ module API
success Entities::BroadcastMessage
end
params do
requires :message, type: String, desc: 'Message to display'
requires :message, type: String, desc: 'Message to display'
optional :starts_at, type: DateTime, desc: 'Starting time', default: -> { Time.zone.now }
optional :ends_at, type: DateTime, desc: 'Ending time', default: -> { 1.hour.from_now }
optional :color, type: String, desc: 'Background color'
optional :font, type: String, desc: 'Foreground color'
optional :ends_at, type: DateTime, desc: 'Ending time', default: -> { 1.hour.from_now }
optional :color, type: String, desc: 'Background color'
optional :font, type: String, desc: 'Foreground color'
optional :target_path, type: String, desc: 'Target path'
end
post do
message = BroadcastMessage.create(declared_params(include_missing: false))
......@@ -66,12 +67,13 @@ module API
success Entities::BroadcastMessage
end
params do
requires :id, type: Integer, desc: 'Broadcast message ID'
optional :message, type: String, desc: 'Message to display'
requires :id, type: Integer, desc: 'Broadcast message ID'
optional :message, type: String, desc: 'Message to display'
optional :starts_at, type: DateTime, desc: 'Starting time'
optional :ends_at, type: DateTime, desc: 'Ending time'
optional :color, type: String, desc: 'Background color'
optional :font, type: String, desc: 'Foreground color'
optional :ends_at, type: DateTime, desc: 'Ending time'
optional :color, type: String, desc: 'Background color'
optional :font, type: String, desc: 'Foreground color'
optional :target_path, type: String, desc: 'Target path'
end
put ':id' do
message = find_message
......
......@@ -1217,7 +1217,7 @@ module API
end
class BroadcastMessage < Grape::Entity
expose :message, :starts_at, :ends_at, :color, :font
expose :message, :starts_at, :ends_at, :color, :font, :target_path
end
class ApplicationStatistics < Grape::Entity
......
......@@ -29,7 +29,7 @@ describe API::BroadcastMessages do
expect(response).to include_pagination_headers
expect(json_response).to be_kind_of(Array)
expect(json_response.first.keys)
.to match_array(%w(id message starts_at ends_at color font active))
.to match_array(%w(id message starts_at ends_at color font active target_path))
end
end
......@@ -52,7 +52,7 @@ describe API::BroadcastMessages do
expect(response).to have_gitlab_http_status(200)
expect(json_response['id']).to eq message.id
expect(json_response.keys)
.to match_array(%w(id message starts_at ends_at color font active))
.to match_array(%w(id message starts_at ends_at color font active target_path))
end
end
......@@ -100,6 +100,15 @@ describe API::BroadcastMessages do
expect(json_response['color']).to eq attrs[:color]
expect(json_response['font']).to eq attrs[:font]
end
it 'accepts a target path' do
attrs = attributes_for(:broadcast_message, target_path: "*/welcome")
post api('/broadcast_messages', admin), params: attrs
expect(response).to have_gitlab_http_status(201)
expect(json_response['target_path']).to eq attrs[:target_path]
end
end
end
......@@ -150,6 +159,15 @@ describe API::BroadcastMessages do
expect(response).to have_gitlab_http_status(200)
expect { message.reload }.to change { message.message }.to('new message')
end
it 'accepts a new target_path' do
attrs = { target_path: '*/welcome' }
put api("/broadcast_messages/#{message.id}", admin), params: attrs
expect(response).to have_gitlab_http_status(200)
expect(json_response['target_path']).to eq attrs[:target_path]
end
end
end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment