From 13d9c97501a7eb2c90ae48079c5455f0898c9dab Mon Sep 17 00:00:00 2001 From: Piotr Sarnacki Date: Wed, 11 May 2016 17:13:40 +0200 Subject: [PATCH] Revert "Merge pull request #257 from travis-ci/ps-current-build" This reverts commit 52bebad05c8bae462c17bdba38d031a19d8baa37, reversing changes made to 9d386efa4c169dcd821c0a19cecb48984aefeb55. --- lib/travis/api/v3/models/repository.rb | 9 ---- lib/travis/api/v3/queries/repositories.rb | 22 +-------- lib/travis/api/v3/query.rb | 11 +---- lib/travis/api/v3/renderer/repositories.rb | 11 ----- lib/travis/api/v3/renderer/repository.rb | 2 +- spec/v3/services/owner/find_spec.rb | 2 - .../repositories/for_current_user_spec.rb | 13 ----- .../services/repositories/for_owner_spec.rb | 26 ---------- spec/v3/services/repository/find_spec.rb | 49 ------------------- 9 files changed, 4 insertions(+), 141 deletions(-) diff --git a/lib/travis/api/v3/models/repository.rb b/lib/travis/api/v3/models/repository.rb index 652862d2..22c26d71 100644 --- a/lib/travis/api/v3/models/repository.rb +++ b/lib/travis/api/v3/models/repository.rb @@ -20,15 +20,6 @@ module Travis::API::V3 update_attributes! default_branch_name: 'master'.freeze unless default_branch_name end - def current_build - if self[:current_build_id] - Travis::API::V3::Models::Build.find(self[:current_build_id]) - else - builds.where(state: ['started', 'passed', 'errored', 'failed', 'canceled'], - event_type: ['push', 'api', 'cron']).order("id DESC").first - end - end - def slug @slug ||= "#{owner_name}/#{name}" end diff --git a/lib/travis/api/v3/queries/repositories.rb b/lib/travis/api/v3/queries/repositories.rb index 96eb8110..97d4cfc5 100644 --- a/lib/travis/api/v3/queries/repositories.rb +++ b/lib/travis/api/v3/queries/repositories.rb @@ -1,7 +1,7 @@ module Travis::API::V3 class Queries::Repositories < Query params :active, :private, :starred, prefix: :repository - sortable_by :id, :github_id, :owner_name, :name, active: sort_condition(:active), :'default_branch.last_build' => 'builds.started_at', :current_build => "current_build.id %{order} NULLS LAST" + sortable_by :id, :github_id, :owner_name, :name, active: sort_condition(:active), :'default_branch.last_build' => 'builds.started_at' def for_member(user, **options) all(user: user, **options).joins(:users).where(users: user_condition(user), invalidated_at: nil) @@ -36,25 +36,7 @@ module Travis::API::V3 list = list.includes(default_branch: :last_build) list = list.includes(default_branch: { last_build: :commit }) if includes? 'build.commit'.freeze - - sort add_current_build list - end - - # this will add SQL needed to fetch current_build along with the - # repositories list. It will probably go away soon, once we test the current - # build and use current_build_id column, just as we do with last_build for - # branches - def add_current_build(list) - join = " - LEFT OUTER JOIN builds as %{column_alias} - ON %{column_alias}.repository_id = repositories.id AND - %{column_alias}.event_type IN ('api', 'push', 'cron') AND - %{column_alias}.state IN ('started', 'errored', 'passed', 'finished', 'canceled')" - - list = list.joins(join % { column_alias: 'current_build' }) - list = list.joins(join % { column_alias: 'older_builds' }+ " AND current_build.id < older_builds.id") - list = list.where("older_builds.id IS NULL") - list.select("repositories.*, current_build.id as current_build_id") + sort list end end end diff --git a/lib/travis/api/v3/query.rb b/lib/travis/api/v3/query.rb index a9812e0c..97d803ba 100644 --- a/lib/travis/api/v3/query.rb +++ b/lib/travis/api/v3/query.rb @@ -150,7 +150,7 @@ module Travis::API::V3 def sort_by(collection, field, order: nil, first: false, sql: nil, **) raise ArgumentError, 'cannot sort by that' unless sort_by?(field, order) actual = sql || self.class.sort_by.fetch(field) - line = add_order(actual, order) + line = "#{actual} #{order.upcase}" if sort_join?(collection, actual) collection = collection.joins(actual.to_sym) @@ -181,14 +181,5 @@ module Travis::API::V3 else raise WrongParams end end - - def add_order(field, order) - order = order.upcase - if field =~ /%{order}/ - field % { order: order } - else - "#{field} #{order}" - end - end end end diff --git a/lib/travis/api/v3/renderer/repositories.rb b/lib/travis/api/v3/renderer/repositories.rb index 3f93c23b..defa29dc 100644 --- a/lib/travis/api/v3/renderer/repositories.rb +++ b/lib/travis/api/v3/renderer/repositories.rb @@ -2,16 +2,5 @@ module Travis::API::V3 class Renderer::Repositories < Renderer::CollectionRenderer type :repositories collection_key :repositories - - def render - preload - super - end - - def preload - # preload builds that we will need - current_build_ids = list.map { |r| r[:current_build_id] }.compact - Travis::API::V3::Models::Build.find(current_build_ids) - end end end diff --git a/lib/travis/api/v3/renderer/repository.rb b/lib/travis/api/v3/renderer/repository.rb index c1c3bf30..46072e36 100644 --- a/lib/travis/api/v3/renderer/repository.rb +++ b/lib/travis/api/v3/renderer/repository.rb @@ -3,7 +3,7 @@ require 'travis/api/v3/renderer/model_renderer' module Travis::API::V3 class Renderer::Repository < Renderer::ModelRenderer representation(:minimal, :id, :name, :slug) - representation(:standard, :id, :name, :slug, :description, :github_language, :active, :private, :owner, :default_branch, :starred, :current_build) + representation(:standard, :id, :name, :slug, :description, :github_language, :active, :private, :owner, :default_branch, :starred) def active !!model.active diff --git a/spec/v3/services/owner/find_spec.rb b/spec/v3/services/owner/find_spec.rb index 70357dd2..f47f0b89 100644 --- a/spec/v3/services/owner/find_spec.rb +++ b/spec/v3/services/owner/find_spec.rb @@ -81,7 +81,6 @@ describe Travis::API::V3::Services::Owner::Find do "@href" => "/v3/repo/#{repo.id}/branch/master", "@representation" => "minimal", "name" => "master"}, - "current_build" => nil, "starred" => false }] }} @@ -130,7 +129,6 @@ describe Travis::API::V3::Services::Owner::Find do "@href" => "/v3/repo/#{repo.id}/branch/master", "@representation"=> "minimal", "name" => "master"}, - "current_build" => nil, "starred" => false }] }} diff --git a/spec/v3/services/repositories/for_current_user_spec.rb b/spec/v3/services/repositories/for_current_user_spec.rb index 5a7dd8c5..d414783a 100644 --- a/spec/v3/services/repositories/for_current_user_spec.rb +++ b/spec/v3/services/repositories/for_current_user_spec.rb @@ -3,7 +3,6 @@ require 'spec_helper' describe Travis::API::V3::Services::Repositories::ForCurrentUser do let(:repo) { Travis::API::V3::Models::Repository.where(owner_name: 'svenfuchs', name: 'minimal').first } let(:build) { repo.builds.first } - let(:current_build) { repo.current_build } let(:jobs) { Travis::API::V3::Models::Build.find(build.id).jobs } let(:token) { Travis::Api::App::AccessToken.create(user: repo.owner, app_id: 1) } @@ -64,18 +63,6 @@ describe Travis::API::V3::Services::Repositories::ForCurrentUser do "@href" => "/v3/repo/#{repo.id}/branch/master", "@representation" => "minimal", "name" => "master"}, - "current_build" => { - "@type" => "build", - "@href" => "/v3/build/#{current_build.id}", - "@representation" => "minimal", - "id" => current_build.id.to_i, - "number" => current_build.number, - "state" => current_build.state, - "duration" => current_build.duration, - "event_type" => current_build.event_type, - "previous_state" => current_build.previous_state, - "started_at" => current_build.started_at.strftime("%Y-%m-%dT%H:%M:%SZ"), - "finished_at" => current_build.finished_at.strftime("%Y-%m-%dT%H:%M:%SZ")}, "starred" => false }] }} diff --git a/spec/v3/services/repositories/for_owner_spec.rb b/spec/v3/services/repositories/for_owner_spec.rb index 66963a71..953f57e1 100644 --- a/spec/v3/services/repositories/for_owner_spec.rb +++ b/spec/v3/services/repositories/for_owner_spec.rb @@ -3,7 +3,6 @@ require 'spec_helper' describe Travis::API::V3::Services::Repositories::ForOwner do let(:repo) { Travis::API::V3::Models::Repository.where(owner_name: 'svenfuchs', name: 'minimal').first } let(:build) { repo.builds.first } - let(:current_build) { repo.current_build } let(:jobs) { Travis::API::V3::Models::Build.find(build.id).jobs } let(:token) { Travis::Api::App::AccessToken.create(user: repo.owner, app_id: 1) } @@ -65,18 +64,6 @@ describe Travis::API::V3::Services::Repositories::ForOwner do "@href" => "/v3/repo/#{repo.id}/branch/master", "@representation" => "minimal", "name" => "master"}, - "current_build" => { - "@type" => "build", - "@href" => "/v3/build/#{current_build.id}", - "@representation" => "minimal", - "id" => current_build.id.to_i, - "number" => current_build.number, - "state" => current_build.state, - "duration" => current_build.duration, - "event_type" => current_build.event_type, - "previous_state" => current_build.previous_state, - "started_at" => current_build.started_at.strftime("%Y-%m-%dT%H:%M:%SZ"), - "finished_at" => current_build.finished_at.strftime("%Y-%m-%dT%H:%M:%SZ")}, "starred" => false }]}} end @@ -154,18 +141,6 @@ describe Travis::API::V3::Services::Repositories::ForOwner do "@href" => "/v3/repo/1/branch/master", "@representation"=>"minimal", "name" => "master" }, - "current_build" => { - "@type" => "build", - "@href" => "/v3/build/#{current_build.id}", - "@representation" => "minimal", - "id" => current_build.id.to_i, - "number" => current_build.number, - "state" => current_build.state, - "duration" => current_build.duration, - "event_type" => current_build.event_type, - "previous_state" => current_build.previous_state, - "started_at" => current_build.started_at.strftime("%Y-%m-%dT%H:%M:%SZ"), - "finished_at" => current_build.finished_at.strftime("%Y-%m-%dT%H:%M:%SZ")}, "starred" => false }, { "@type" => "repository", "@href" => "/v3/repo/#{repo2.id}", @@ -195,7 +170,6 @@ describe Travis::API::V3::Services::Repositories::ForOwner do "@href" => "/v3/repo/#{repo2.id}/branch/master", "@representation"=>"minimal", "name" =>"master" }, - "current_build" => nil, "starred"=>false}]} end end diff --git a/spec/v3/services/repository/find_spec.rb b/spec/v3/services/repository/find_spec.rb index 4105f6ca..b3c03556 100644 --- a/spec/v3/services/repository/find_spec.rb +++ b/spec/v3/services/repository/find_spec.rb @@ -3,7 +3,6 @@ require 'spec_helper' describe Travis::API::V3::Services::Repository::Find do let(:repo) { Travis::API::V3::Models::Repository.where(owner_name: 'svenfuchs', name: 'minimal').first } let(:build) { repo.builds.first } - let(:current_build) { repo.current_build } let(:jobs) { Travis::API::V3::Models::Build.find(build.id).jobs } let(:parsed_body) { JSON.load(body) } @@ -56,18 +55,6 @@ describe Travis::API::V3::Services::Repository::Find do "@href" => "/v3/repo/#{repo.id}/branch/master", "@representation" => "minimal", "name" => "master"}, - "current_build" => { - "@type" => "build", - "@href" => "/v3/build/#{current_build.id}", - "@representation" => "minimal", - "id" => current_build.id.to_i, - "number" => current_build.number, - "state" => current_build.state, - "duration" => current_build.duration, - "event_type" => current_build.event_type, - "previous_state" => current_build.previous_state, - "started_at" => current_build.started_at.strftime("%Y-%m-%dT%H:%M:%SZ"), - "finished_at" => current_build.finished_at.strftime("%Y-%m-%dT%H:%M:%SZ")}, "starred" => false }} end @@ -146,18 +133,6 @@ describe Travis::API::V3::Services::Repository::Find do "@href" => "/v3/repo/#{repo.id}/branch/master", "@representation" => "minimal", "name" => "master"}, - "current_build" => { - "@type" => "build", - "@href" => "/v3/build/#{current_build.id}", - "@representation" => "minimal", - "id" => current_build.id.to_i, - "number" => current_build.number, - "state" => current_build.state, - "duration" => current_build.duration, - "event_type" => current_build.event_type, - "previous_state" => current_build.previous_state, - "started_at" => current_build.started_at.strftime("%Y-%m-%dT%H:%M:%SZ"), - "finished_at" => current_build.finished_at.strftime("%Y-%m-%dT%H:%M:%SZ")}, "starred" => false }} end @@ -221,18 +196,6 @@ describe Travis::API::V3::Services::Repository::Find do "@href" => "/v3/repo/#{repo.id}/branch/master", "@representation" => "minimal", "name" => "master"}, - "current_build" => { - "@type" => "build", - "@href" => "/v3/build/#{current_build.id}", - "@representation" => "minimal", - "id" => current_build.id.to_i, - "number" => current_build.number, - "state" => current_build.state, - "duration" => current_build.duration, - "event_type" => current_build.event_type, - "previous_state" => current_build.previous_state, - "started_at" => current_build.started_at.strftime("%Y-%m-%dT%H:%M:%SZ"), - "finished_at" => current_build.finished_at.strftime("%Y-%m-%dT%H:%M:%SZ")}, "starred" => false }} end @@ -302,18 +265,6 @@ describe Travis::API::V3::Services::Repository::Find do "@href" => "/v3/repo/#{repo.id}/branch/master", "@representation" => "minimal", "name" => "master"}, - "current_build" => { - "@type" => "build", - "@href" => "/v3/build/#{current_build.id}", - "@representation" => "minimal", - "id" => current_build.id.to_i, - "number" => current_build.number, - "state" => current_build.state, - "duration" => current_build.duration, - "event_type" => current_build.event_type, - "previous_state" => current_build.previous_state, - "started_at" => current_build.started_at.strftime("%Y-%m-%dT%H:%M:%SZ"), - "finished_at" => current_build.finished_at.strftime("%Y-%m-%dT%H:%M:%SZ")}, "starred" => false }} end