diff --git a/lib/api/entities.rb b/lib/api/entities.rb index fa76a54c2d89e463c1f87ba2565b39e1272dbee7..8d0664386b402f49910ff50817bde9eefd43ea76 100644 --- a/lib/api/entities.rb +++ b/lib/api/entities.rb @@ -270,5 +270,9 @@ module API class Contributor < Grape::Entity expose :name, :email, :commits, :additions, :deletions end + + class BroadcastMessage < Grape::Entity + expose :message, :starts_at, :ends_at, :color, :font + end end end diff --git a/lib/api/internal.rb b/lib/api/internal.rb index 7a89a26facc8d8f974b12c19bdda5811de3f51d8..b5542c1874b05274fb81dc9ac62003743f2177f0 100644 --- a/lib/api/internal.rb +++ b/lib/api/internal.rb @@ -69,6 +69,14 @@ module API gitlab_rev: Gitlab::REVISION, } end + + get "/broadcast_message" do + if message = BroadcastMessage.current + present message, with: Entities::BroadcastMessage + else + not_found! + end + end end end end diff --git a/spec/requests/api/internal_spec.rb b/spec/requests/api/internal_spec.rb index 4faa1f9b964337f128e0062c885d3c46553e5215..1e8e9eb38d67645374b991d676d35179183528db 100644 --- a/spec/requests/api/internal_spec.rb +++ b/spec/requests/api/internal_spec.rb @@ -16,6 +16,27 @@ describe API::API, api: true do end end + describe "GET /internal/broadcast_message" do + context "broadcast message exists" do + let!(:broadcast_message) { create(:broadcast_message, starts_at: Time.now.yesterday, ends_at: Time.now.tomorrow ) } + + it do + get api("/internal/broadcast_message"), secret_token: secret_token + + response.status.should == 200 + json_response["message"].should == broadcast_message.message + end + end + + context "broadcast message doesn't exist" do + it do + get api("/internal/broadcast_message"), secret_token: secret_token + + response.status.should == 404 + end + end + end + describe "GET /internal/discover" do it do get(api("/internal/discover"), key_id: key.id, secret_token: secret_token) @@ -37,7 +58,7 @@ describe API::API, api: true do pull(key, project) response.status.should == 200 - JSON.parse(response.body)["status"].should be_true + json_response["status"].should be_true end end @@ -46,7 +67,7 @@ describe API::API, api: true do push(key, project) response.status.should == 200 - JSON.parse(response.body)["status"].should be_true + json_response["status"].should be_true end end end @@ -61,7 +82,7 @@ describe API::API, api: true do pull(key, project) response.status.should == 200 - JSON.parse(response.body)["status"].should be_false + json_response["status"].should be_false end end @@ -70,7 +91,7 @@ describe API::API, api: true do push(key, project) response.status.should == 200 - JSON.parse(response.body)["status"].should be_false + json_response["status"].should be_false end end end @@ -87,7 +108,7 @@ describe API::API, api: true do pull(key, personal_project) response.status.should == 200 - JSON.parse(response.body)["status"].should be_false + json_response["status"].should be_false end end @@ -96,7 +117,7 @@ describe API::API, api: true do push(key, personal_project) response.status.should == 200 - JSON.parse(response.body)["status"].should be_false + json_response["status"].should be_false end end end @@ -114,7 +135,7 @@ describe API::API, api: true do pull(key, project) response.status.should == 200 - JSON.parse(response.body)["status"].should be_true + json_response["status"].should be_true end end @@ -123,7 +144,7 @@ describe API::API, api: true do push(key, project) response.status.should == 200 - JSON.parse(response.body)["status"].should be_false + json_response["status"].should be_false end end end @@ -140,7 +161,7 @@ describe API::API, api: true do archive(key, project) response.status.should == 200 - JSON.parse(response.body)["status"].should be_true + json_response["status"].should be_true end end @@ -149,7 +170,7 @@ describe API::API, api: true do archive(key, project) response.status.should == 200 - JSON.parse(response.body)["status"].should be_false + json_response["status"].should be_false end end end @@ -159,7 +180,7 @@ describe API::API, api: true do pull(key, OpenStruct.new(path_with_namespace: 'gitlab/notexists')) response.status.should == 200 - JSON.parse(response.body)["status"].should be_false + json_response["status"].should be_false end end @@ -168,7 +189,7 @@ describe API::API, api: true do pull(OpenStruct.new(id: 0), project) response.status.should == 200 - JSON.parse(response.body)["status"].should be_false + json_response["status"].should be_false end end end