Remove 'type' from payload

This commit is contained in:
Ana Rosas 2016-06-15 14:36:59 +02:00
parent 5949429f75
commit 41c274b222
6 changed files with 23 additions and 24 deletions

View File

@ -23,7 +23,7 @@ class Travis::Api::App
Metriks.meter("api.request.cancel_build").mark
if Travis::Features.owner_active?(:enqueue_to_hub, current_user)
service = Travis::Enqueue::Services::CancelModel.new(current_user, { id: params[:id], type: :build })
service = Travis::Enqueue::Services::CancelModel.new(current_user, { build_id: params[:id] })
else
service = self.service(:cancel_build, params.merge(source: 'api'))
end
@ -46,10 +46,11 @@ class Travis::Api::App
status 422
respond_with json
else
payload = { id: params[:id], user_id: current_user.id, source: 'api' }
if service.respond_to?(:push)
service.push
service.push("build:cancel", payload)
else
Travis::Sidekiq::BuildCancellation.perform_async(id: params[:id], user_id: current_user.id, source: 'api')
Travis::Sidekiq::BuildCancellation.perform_async(payload)
end
Metriks.meter("api.request.cancel_build.success").mark

View File

@ -30,7 +30,7 @@ class Travis::Api::App
Metriks.meter("api.request.cancel_job").mark
if Travis::Features.owner_active?(:enqueue_to_hub, current_user)
service = Travis::Enqueue::Services::CancelModel.new(current_user, { id: params[:id], type: :job })
service = Travis::Enqueue::Services::CancelModel.new(current_user, { job_id: params[:id] })
else
service = self.service(:cancel_job, params.merge(source: 'api'))
end
@ -53,10 +53,11 @@ class Travis::Api::App
status 422
respond_with json
else
payload = { id: params[:id], user_id: current_user.id, source: 'api' }
if service.respond_to?(:push)
service.push
service.push("job:cancel", payload)
else
Travis::Sidekiq::JobCancellation.perform_async(id: params[:id], user_id: current_user.id, source: 'api')
Travis::Sidekiq::JobCancellation.perform_async(payload)
end
Metriks.meter("api.request.cancel_job.success").mark

View File

@ -20,26 +20,27 @@ module Travis
messages
end
def push
def push(event, payload)
# target may have been retrieved with a :join query, so we need to reset the readonly status
if can_cancel?
::Sidekiq::Client.push(
'queue' => 'hub',
'class' => 'Travis::Hub::Sidekiq::Worker',
'args' => ["#{type}:cancel", @params]
#'args' => ["#{type}:cancel", @params]
'args' => [event, payload]
)
end
end
def type
@params[:type]
@type ||= @params[:build_id] ? :build : :job
end
def target
if type == :build
@target = Build.find(@params[:id])
@target = Build.find(@params[:build_id])
else
@target = Job.find(@params[:id])
@target = Job.find(@params[:job_id])
end
end
@ -47,6 +48,7 @@ module Travis
authorized? && target.cancelable?
end
# check on web
def authorized?
current_user.permission?(:pull, :repository_id => target.repository_id)
end

View File

@ -14,9 +14,8 @@ module Travis::API::V3
raise BuildNotCancelable if %w(passed failed canceled errored).include? find.state
payload = { id: id, user_id: user.id, source: 'api' }
if Travis::Features.owner_active?(:enqueue_to_hub, user)
payload[:type] = :build
service = Travis::Enqueue::Services::CancelModel.new(user, payload)
service.push
service = Travis::Enqueue::Services::CancelModel.new(user, { build_id: id })
service.push("build:cancel", payload)
else
perform_async(:build_cancellation, payload)
end

View File

@ -14,8 +14,8 @@ module Travis::API::V3
raise JobNotCancelable if %w(passed failed canceled errored).include? find.state
payload = { id: id, user_id: user.id, source: 'api' }
if Travis::Features.owner_active?(:enqueue_to_hub, user)
service = Travis::Enqueue::Services::CancelModel.new(user, payload)
service.push
service = Travis::Enqueue::Services::CancelModel.new(user, { job_id: id })
service.push("job:cancel", payload)
else
perform_async(:job_cancellation, payload)
end

View File

@ -256,8 +256,7 @@ describe Travis::API::V3::Services::Build::Cancel do
example { expect(sidekiq_payload).to be == {
"id" => "#{build.id}",
"user_id"=> repo.owner_id,
"source" => "api",
"type" => "build"}
"source" => "api"}
}
example { expect(Sidekiq::Client.last['queue']).to be == 'hub' }
@ -283,8 +282,7 @@ describe Travis::API::V3::Services::Build::Cancel do
example { expect(sidekiq_payload).to be == {
"id" => "#{build.id}",
"user_id"=> repo.owner_id,
"source" => "api",
"type" => "build"}
"source" => "api"}
}
example { expect(Sidekiq::Client.last['queue']).to be == 'hub' }
@ -310,8 +308,7 @@ describe Travis::API::V3::Services::Build::Cancel do
example { expect(sidekiq_payload).to be == {
"id" => "#{build.id}",
"user_id"=> repo.owner_id,
"source" => "api",
"type" => "build"}
"source" => "api"}
}
example { expect(Sidekiq::Client.last['queue']).to be == 'hub' }
@ -324,8 +321,7 @@ describe Travis::API::V3::Services::Build::Cancel do
example { expect(sidekiq_payload).to be == {
"id" => "#{build.id}",
"user_id"=> repo.owner_id,
"source" => "api",
"type" => "build"}
"source" => "api"}
}
end
end