diff --git a/lib/travis/api/v3/queries/builds.rb b/lib/travis/api/v3/queries/builds.rb new file mode 100644 index 00000000..0991f1b1 --- /dev/null +++ b/lib/travis/api/v3/queries/builds.rb @@ -0,0 +1,13 @@ +module Travis::API::V3 + class Queries::Builds < Query + def find(repository) + repository.builds + end + + def count(repository, time_frame) + find(repository). + where(event_type: 'api'.freeze, result: 'accepted'.freeze). + where('created_at > ?'.freeze, time_frame.ago).count + end + end +end diff --git a/lib/travis/api/v3/renderer/builds.rb b/lib/travis/api/v3/renderer/builds.rb new file mode 100644 index 00000000..d8aede4c --- /dev/null +++ b/lib/travis/api/v3/renderer/builds.rb @@ -0,0 +1,6 @@ +module Travis::API::V3 + class Renderer::Builds < Renderer::CollectionRenderer + type :builds + collection_key :builds + end +end diff --git a/lib/travis/api/v3/routes.rb b/lib/travis/api/v3/routes.rb index a828f295..49afbee0 100644 --- a/lib/travis/api/v3/routes.rb +++ b/lib/travis/api/v3/routes.rb @@ -39,6 +39,11 @@ module Travis::API::V3 get :for_current_user end + resource :builds do + route '/builds' + get :find + end + resource :build do capture id: :digit route '/build/{build.id}' diff --git a/lib/travis/api/v3/services.rb b/lib/travis/api/v3/services.rb index 9df67da4..4aabfb7c 100644 --- a/lib/travis/api/v3/services.rb +++ b/lib/travis/api/v3/services.rb @@ -5,6 +5,7 @@ module Travis::API::V3 Accounts = Module.new { extend Services } Branch = Module.new { extend Services } Build = Module.new { extend Services } + Builds = Module.new { extend Services } Organization = Module.new { extend Services } Organizations = Module.new { extend Services } Owner = Module.new { extend Services } diff --git a/lib/travis/api/v3/services/builds/find.rb b/lib/travis/api/v3/services/builds/find.rb new file mode 100644 index 00000000..b91029cd --- /dev/null +++ b/lib/travis/api/v3/services/builds/find.rb @@ -0,0 +1,7 @@ +module Travis::API::V3 + class Services::Builds::Find < Service + def run! + find(:builds, find(:repository)) + end + end +end