From bd61d1e58e6b90e3bb9abd2c04be530fb1cc774d Mon Sep 17 00:00:00 2001 From: carlad Date: Thu, 10 Sep 2015 15:08:41 +0200 Subject: [PATCH] add broadcasts - initial work --- lib/travis/api/v3/queries/broadcasts.rb | 11 +++++++++++ lib/travis/api/v3/renderer/broadcast.rb | 8 ++++++++ lib/travis/api/v3/renderer/broadcasts.rb | 6 ++++++ lib/travis/api/v3/routes.rb | 10 ++++++++++ lib/travis/api/v3/services.rb | 4 +++- lib/travis/api/v3/services/branches/find.rb | 1 - .../api/v3/services/broadcasts/for_current_repo.rb | 7 +++++++ .../api/v3/services/broadcasts/for_current_user.rb | 7 +++++++ 8 files changed, 52 insertions(+), 2 deletions(-) create mode 100644 lib/travis/api/v3/queries/broadcasts.rb create mode 100644 lib/travis/api/v3/renderer/broadcast.rb create mode 100644 lib/travis/api/v3/renderer/broadcasts.rb create mode 100644 lib/travis/api/v3/services/broadcasts/for_current_repo.rb create mode 100644 lib/travis/api/v3/services/broadcasts/for_current_user.rb diff --git a/lib/travis/api/v3/queries/broadcasts.rb b/lib/travis/api/v3/queries/broadcasts.rb new file mode 100644 index 00000000..229e89c9 --- /dev/null +++ b/lib/travis/api/v3/queries/broadcasts.rb @@ -0,0 +1,11 @@ +module Travis::API::V3 + class Queries::Broadcasts < Query + def for_repo(repository) + Models::Broadcast.where(recipient_id: repository.id) + end + + def for_user(user) + Models::Broadcast.where(recipient_id: user.id) + end + end +end diff --git a/lib/travis/api/v3/renderer/broadcast.rb b/lib/travis/api/v3/renderer/broadcast.rb new file mode 100644 index 00000000..90b42776 --- /dev/null +++ b/lib/travis/api/v3/renderer/broadcast.rb @@ -0,0 +1,8 @@ +require 'travis/api/v3/renderer/model_renderer' + +module Travis::API::V3 + class Renderer::Broadcast < Renderer::ModelRenderer + representation(:minimal, :id, :recipient_id, :message, :created_at) + representation(:standard, :id, :recipient_id, :recipient_type, :kind, :message, :expired, :created_at, :updated_at) + end +end diff --git a/lib/travis/api/v3/renderer/broadcasts.rb b/lib/travis/api/v3/renderer/broadcasts.rb new file mode 100644 index 00000000..5ff114b1 --- /dev/null +++ b/lib/travis/api/v3/renderer/broadcasts.rb @@ -0,0 +1,6 @@ +module Travis::API::V3 + class Renderer::Broadcasts < Renderer::CollectionRenderer + type :broadcasts + collection_key :broadcasts + end +end diff --git a/lib/travis/api/v3/routes.rb b/lib/travis/api/v3/routes.rb index c2337f56..19b705e8 100644 --- a/lib/travis/api/v3/routes.rb +++ b/lib/travis/api/v3/routes.rb @@ -63,6 +63,11 @@ module Travis::API::V3 get :find end + resource :broadcasts do + route '/broadcasts' + get :for_current_repo + end + resource :builds do route '/builds' get :find @@ -80,6 +85,11 @@ module Travis::API::V3 route '/user' get :current get :find, '/{user.id}' + + resource :broadcasts do + route '/broadcasts' + get :for_current_user + end end end diff --git a/lib/travis/api/v3/services.rb b/lib/travis/api/v3/services.rb index 06b235e5..c43d482f 100644 --- a/lib/travis/api/v3/services.rb +++ b/lib/travis/api/v3/services.rb @@ -5,6 +5,8 @@ module Travis::API::V3 Accounts = Module.new { extend Services } Branch = Module.new { extend Services } Branches = Module.new { extend Services } + Broadcast = Module.new { extend Services } + Broadcasts = Module.new { extend Services } Build = Module.new { extend Services } Builds = Module.new { extend Services } Job = Module.new { extend Services } @@ -17,7 +19,7 @@ module Travis::API::V3 User = Module.new { extend Services } def result_type - @resul_type ||= name[/[^:]+$/].underscore.to_sym + @result_type ||= name[/[^:]+$/].underscore.to_sym end end end diff --git a/lib/travis/api/v3/services/branches/find.rb b/lib/travis/api/v3/services/branches/find.rb index 76e22c31..00779a0f 100644 --- a/lib/travis/api/v3/services/branches/find.rb +++ b/lib/travis/api/v3/services/branches/find.rb @@ -5,5 +5,4 @@ module Travis::API::V3 query.find(find(:repository)) end end - end diff --git a/lib/travis/api/v3/services/broadcasts/for_current_repo.rb b/lib/travis/api/v3/services/broadcasts/for_current_repo.rb new file mode 100644 index 00000000..52d8df7f --- /dev/null +++ b/lib/travis/api/v3/services/broadcasts/for_current_repo.rb @@ -0,0 +1,7 @@ +module Travis::API::V3 + class Services::Broadcasts::ForCurrentRepo < Service + def run! + query.for_repo(find(:repository)) + end + end +end diff --git a/lib/travis/api/v3/services/broadcasts/for_current_user.rb b/lib/travis/api/v3/services/broadcasts/for_current_user.rb new file mode 100644 index 00000000..980b7c62 --- /dev/null +++ b/lib/travis/api/v3/services/broadcasts/for_current_user.rb @@ -0,0 +1,7 @@ +module Travis::API::V3 + class Services::Broadcasts::ForCurrentUser < Service + def run! + query.for_user(find(:user)) + end + end +end