adjust cron API path

This commit is contained in:
Steffen Kötte 2016-01-28 13:00:21 +01:00
parent 598ca6c2ca
commit 05d2e4767e
4 changed files with 18 additions and 16 deletions

View File

@ -32,8 +32,7 @@ module Travis::API::V3
capture id: :digit capture id: :digit
route '/cron/{cron.id}' route '/cron/{cron.id}'
get :find get :find
delete :delete
post :delete, '/delete'
end end
resource :job do resource :job do
@ -88,8 +87,7 @@ module Travis::API::V3
resource :cron do resource :cron do
route '/cron' route '/cron'
get :for_branch get :for_branch
post :create
post :create, '/create'
end end
end end

View File

@ -60,6 +60,10 @@ module Travis::API::V3
current_resource.add_service('POST'.freeze, *args) current_resource.add_service('POST'.freeze, *args)
end end
def delete(*args)
current_resource.add_service('DELETE'.freeze, *args)
end
def draw_routes def draw_routes
resources.each do |resource| resources.each do |resource|
prefix = resource.route prefix = resource.route

View File

@ -14,7 +14,7 @@ describe Travis::API::V3::Services::Cron::Create do
describe "creating a cron job" do describe "creating a cron job" do
before { last_cron } before { last_cron }
before { Travis::API::V3::Models::Permission.create(repository: repo, user: repo.owner, push: true) } before { Travis::API::V3::Models::Permission.create(repository: repo, user: repo.owner, push: true) }
before { post("/v3/repo/#{repo.id}/branch/#{branch.name}/cron/create", options, headers) } before { post("/v3/repo/#{repo.id}/branch/#{branch.name}/cron", options, headers) }
example { expect(current_cron == last_cron).to be_falsey } example { expect(current_cron == last_cron).to be_falsey }
example { expect(last_response).to be_ok } example { expect(last_response).to be_ok }
example { expect(parsed_body).to be == { example { expect(parsed_body).to be == {
@ -45,8 +45,8 @@ describe Travis::API::V3::Services::Cron::Create do
describe "creating multiple cron jobs for one branch" do describe "creating multiple cron jobs for one branch" do
before { Travis::API::V3::Models::Permission.create(repository: repo, user: repo.owner, push: true) } before { Travis::API::V3::Models::Permission.create(repository: repo, user: repo.owner, push: true) }
before { post("/v3/repo/#{repo.id}/branch/#{branch.name}/cron/create", options, headers) } before { post("/v3/repo/#{repo.id}/branch/#{branch.name}/cron", options, headers) }
before { post("/v3/repo/#{repo.id}/branch/#{branch.name}/cron/create", options, headers) } before { post("/v3/repo/#{repo.id}/branch/#{branch.name}/cron", options, headers) }
it "only stores one" do it "only stores one" do
expect(Travis::API::V3::Models::Cron.where(branch_id: branch.id).count).to eq(1) expect(Travis::API::V3::Models::Cron.where(branch_id: branch.id).count).to eq(1)
end end
@ -57,13 +57,13 @@ describe Travis::API::V3::Services::Cron::Create do
before { Travis::API::V3::Models::Permission.create(repository: repo, user: repo.owner, push: true) } before { Travis::API::V3::Models::Permission.create(repository: repo, user: repo.owner, push: true) }
it "raises an error" do it "raises an error" do
expect { expect {
post("/v3/repo/#{repo.id}/branch/#{branch.name}/cron/create", wrong_options, headers) post("/v3/repo/#{repo.id}/branch/#{branch.name}/cron", wrong_options, headers)
}.to raise_error(ArgumentError, 'interval must be "daily", "weekly" or "monthly"') }.to raise_error(ArgumentError, 'interval must be "daily", "weekly" or "monthly"')
end end
end end
describe "try creating a cron job without login" do describe "try creating a cron job without login" do
before { post("/v3/repo/#{repo.id}/branch/#{branch.name}/cron/create", options) } before { post("/v3/repo/#{repo.id}/branch/#{branch.name}/cron", options) }
example { expect(parsed_body).to be == { example { expect(parsed_body).to be == {
"@type" => "error", "@type" => "error",
"error_type" => "login_required", "error_type" => "login_required",
@ -73,7 +73,7 @@ describe Travis::API::V3::Services::Cron::Create do
describe "try creating a cron job with a user without permissions" do describe "try creating a cron job with a user without permissions" do
before { Travis::API::V3::Models::Permission.create(repository: repo, user: repo.owner, push: false) } before { Travis::API::V3::Models::Permission.create(repository: repo, user: repo.owner, push: false) }
before { post("/v3/repo/#{repo.id}/branch/#{branch.name}/cron/create", options, headers) } before { post("/v3/repo/#{repo.id}/branch/#{branch.name}/cron", options, headers) }
example { expect(parsed_body).to be == { example { expect(parsed_body).to be == {
"@type" => "error", "@type" => "error",
"error_type" => "insufficient_access", "error_type" => "insufficient_access",
@ -92,7 +92,7 @@ describe Travis::API::V3::Services::Cron::Create do
describe "creating cron on a non-existing repository by slug" do describe "creating cron on a non-existing repository by slug" do
before { Travis::API::V3::Models::Permission.create(repository: repo, user: repo.owner, push: false) } before { Travis::API::V3::Models::Permission.create(repository: repo, user: repo.owner, push: false) }
before { post("/v3/repo/svenfuchs%2Fminimal1/branch/master/cron/create", options, headers) } before { post("/v3/repo/svenfuchs%2Fminimal1/branch/master/cron", options, headers) }
example { expect(last_response).to be_not_found } example { expect(last_response).to be_not_found }
example { expect(parsed_body).to be == { example { expect(parsed_body).to be == {
"@type" => "error", "@type" => "error",
@ -104,7 +104,7 @@ describe Travis::API::V3::Services::Cron::Create do
describe "creating cron on a non-existing branch" do describe "creating cron on a non-existing branch" do
before { Travis::API::V3::Models::Permission.create(repository: repo, user: repo.owner, push: false) } before { Travis::API::V3::Models::Permission.create(repository: repo, user: repo.owner, push: false) }
before { post("/v3/repo/#{repo.id}/branch/hopefullyNonExistingBranch/cron/create", options, headers) } before { post("/v3/repo/#{repo.id}/branch/hopefullyNonExistingBranch/cron", options, headers) }
example { expect(last_response).to be_not_found } example { expect(last_response).to be_not_found }
example { expect(parsed_body).to be == { example { expect(parsed_body).to be == {
"@type" => "error", "@type" => "error",

View File

@ -10,7 +10,7 @@ describe Travis::API::V3::Services::Cron::Delete do
describe "deleting a cron job by id" do describe "deleting a cron job by id" do
before { Travis::API::V3::Models::Permission.create(repository: repo, user: repo.owner, push: true) } before { Travis::API::V3::Models::Permission.create(repository: repo, user: repo.owner, push: true) }
before { post("/v3/cron/#{cron.id}/delete", {}, headers) } before { delete("/v3/cron/#{cron.id}", {}, headers) }
example { expect(last_response).to be_ok } example { expect(last_response).to be_ok }
example { expect(Travis::API::V3::Models::Cron.where(id: cron.id)).to be_empty } example { expect(Travis::API::V3::Models::Cron.where(id: cron.id)).to be_empty }
example { expect(parsed_body).to be == { example { expect(parsed_body).to be == {
@ -40,7 +40,7 @@ describe Travis::API::V3::Services::Cron::Delete do
end end
describe "try deleting a cron job without login" do describe "try deleting a cron job without login" do
before { post("/v3/cron/#{cron.id}/delete") } before { delete("/v3/cron/#{cron.id}") }
example { expect(Travis::API::V3::Models::Cron.where(id: cron.id)).to exist } example { expect(Travis::API::V3::Models::Cron.where(id: cron.id)).to exist }
example { expect(parsed_body).to be == { example { expect(parsed_body).to be == {
"@type" => "error", "@type" => "error",
@ -51,7 +51,7 @@ describe Travis::API::V3::Services::Cron::Delete do
describe "try deleting a cron job with a user without permissions" do describe "try deleting a cron job with a user without permissions" do
before { Travis::API::V3::Models::Permission.create(repository: repo, user: repo.owner, push: false) } before { Travis::API::V3::Models::Permission.create(repository: repo, user: repo.owner, push: false) }
before { post("/v3/cron/#{cron.id}/delete", {}, headers) } before { delete("/v3/cron/#{cron.id}", {}, headers) }
example { expect(Travis::API::V3::Models::Cron.where(id: cron.id)).to exist } example { expect(Travis::API::V3::Models::Cron.where(id: cron.id)).to exist }
example { expect(parsed_body).to be == { example { expect(parsed_body).to be == {
"@type" => "error", "@type" => "error",
@ -69,7 +69,7 @@ describe Travis::API::V3::Services::Cron::Delete do
describe "try deleting a non-existing cron job" do describe "try deleting a non-existing cron job" do
before { Travis::API::V3::Models::Permission.create(repository: repo, user: repo.owner, push: false) } before { Travis::API::V3::Models::Permission.create(repository: repo, user: repo.owner, push: false) }
before { post("/v3/cron/999999999999999/delete", {}, headers) } before { delete("/v3/cron/999999999999999", {}, headers) }
example { expect(parsed_body).to be == { example { expect(parsed_body).to be == {
"@type" => "error", "@type" => "error",
"error_type" => "not_found", "error_type" => "not_found",