Commit 2ccde70b authored by GitLab Bot's avatar GitLab Bot

Add latest changes from gitlab-org/gitlab@master

parent 2e3cbf7d
---
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
......
......@@ -82,6 +82,7 @@ module Gitlab
grafana_integrated_projects: count(GrafanaIntegration.enabled),
groups: count(Group),
issues: count(Issue),
issues_created_from_gitlab_error_tracking_ui: count(SentryIssue),
issues_with_associated_zoom_link: count(ZoomMeeting.added_to_issue),
issues_using_zoom_quick_actions: count(ZoomMeeting.select(:issue_id).distinct),
issues_with_embedded_grafana_charts_approx: ::Gitlab::GrafanaEmbedUsageData.issue_count,
......
......@@ -27,6 +27,7 @@ describe Gitlab::UsageData do
create_list(:zoom_meeting, 2, project: projects[0], issue: projects[0].issues[1], issue_status: :removed)
create(:zoom_meeting, project: projects[0], issue: projects[0].issues[2], issue_status: :added)
create_list(:zoom_meeting, 2, project: projects[0], issue: projects[0].issues[2], issue_status: :removed)
create(:sentry_issue, issue: projects[0].issues[0])
# Enabled clusters
gcp_cluster = create(:cluster_provider_gcp, :created).cluster
......@@ -152,6 +153,7 @@ describe Gitlab::UsageData do
grafana_integrated_projects
groups
issues
issues_created_from_gitlab_error_tracking_ui
issues_with_associated_zoom_link
issues_using_zoom_quick_actions
issues_with_embedded_grafana_charts_approx
......@@ -212,6 +214,7 @@ describe Gitlab::UsageData do
expect(count_data[:projects_mattermost_active]).to eq(1)
expect(count_data[:projects_with_repositories_enabled]).to eq(3)
expect(count_data[:projects_with_error_tracking_enabled]).to eq(1)
expect(count_data[:issues_created_from_gitlab_error_tracking_ui]).to eq(1)
expect(count_data[:issues_with_associated_zoom_link]).to eq(2)
expect(count_data[:issues_using_zoom_quick_actions]).to eq(3)
expect(count_data[:issues_with_embedded_grafana_charts_approx]).to eq(2)
......
......@@ -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