From 05d2e4767e960114b3d7e7cf0c7b8edca892a4da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steffen=20Ko=CC=88tte?= Date: Thu, 28 Jan 2016 13:00:21 +0100 Subject: [PATCH] adjust cron API path --- lib/travis/api/v3/routes.rb | 6 ++---- lib/travis/api/v3/routes/dsl.rb | 4 ++++ spec/v3/services/cron/create_spec.rb | 16 ++++++++-------- spec/v3/services/cron/delete_spec.rb | 8 ++++---- 4 files changed, 18 insertions(+), 16 deletions(-) diff --git a/lib/travis/api/v3/routes.rb b/lib/travis/api/v3/routes.rb index d71f0e53..db62dced 100644 --- a/lib/travis/api/v3/routes.rb +++ b/lib/travis/api/v3/routes.rb @@ -32,8 +32,7 @@ module Travis::API::V3 capture id: :digit route '/cron/{cron.id}' get :find - - post :delete, '/delete' + delete :delete end resource :job do @@ -88,8 +87,7 @@ module Travis::API::V3 resource :cron do route '/cron' get :for_branch - - post :create, '/create' + post :create end end diff --git a/lib/travis/api/v3/routes/dsl.rb b/lib/travis/api/v3/routes/dsl.rb index e71723d7..9a98ada0 100644 --- a/lib/travis/api/v3/routes/dsl.rb +++ b/lib/travis/api/v3/routes/dsl.rb @@ -60,6 +60,10 @@ module Travis::API::V3 current_resource.add_service('POST'.freeze, *args) end + def delete(*args) + current_resource.add_service('DELETE'.freeze, *args) + end + def draw_routes resources.each do |resource| prefix = resource.route diff --git a/spec/v3/services/cron/create_spec.rb b/spec/v3/services/cron/create_spec.rb index 3c618100..84efefd3 100644 --- a/spec/v3/services/cron/create_spec.rb +++ b/spec/v3/services/cron/create_spec.rb @@ -14,7 +14,7 @@ describe Travis::API::V3::Services::Cron::Create do describe "creating a cron job" do before { last_cron } 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(last_response).to be_ok } 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 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/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", options, headers) } it "only stores one" do expect(Travis::API::V3::Models::Cron.where(branch_id: branch.id).count).to eq(1) 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) } it "raises an error" do 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"') end end 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 == { "@type" => "error", "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 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 == { "@type" => "error", "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 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(parsed_body).to be == { "@type" => "error", @@ -104,7 +104,7 @@ describe Travis::API::V3::Services::Cron::Create 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 { 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(parsed_body).to be == { "@type" => "error", diff --git a/spec/v3/services/cron/delete_spec.rb b/spec/v3/services/cron/delete_spec.rb index cec551d9..cb09c415 100644 --- a/spec/v3/services/cron/delete_spec.rb +++ b/spec/v3/services/cron/delete_spec.rb @@ -10,7 +10,7 @@ describe Travis::API::V3::Services::Cron::Delete do describe "deleting a cron job by id" do 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(Travis::API::V3::Models::Cron.where(id: cron.id)).to be_empty } example { expect(parsed_body).to be == { @@ -40,7 +40,7 @@ describe Travis::API::V3::Services::Cron::Delete do end 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(parsed_body).to be == { "@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 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(parsed_body).to be == { "@type" => "error", @@ -69,7 +69,7 @@ describe Travis::API::V3::Services::Cron::Delete 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 { post("/v3/cron/999999999999999/delete", {}, headers) } + before { delete("/v3/cron/999999999999999", {}, headers) } example { expect(parsed_body).to be == { "@type" => "error", "error_type" => "not_found",