Skip to content

Commit

Permalink
Use POST for write web requests
Browse files Browse the repository at this point in the history
  • Loading branch information
such authored and marcelolx committed Jun 7, 2021
1 parent dc7f1f6 commit 00b8459
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 11 deletions.
4 changes: 2 additions & 2 deletions lib/sidekiq-scheduler/web.rb
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,13 @@ def self.registered(app)
erb File.read(File.join(VIEW_PATH, 'recurring_jobs.erb'))
end

app.get '/recurring-jobs/:name/enqueue' do
app.post '/recurring-jobs/:name/enqueue' do
schedule = Sidekiq.get_schedule(params[:name])
SidekiqScheduler::Scheduler.instance.enqueue_job(schedule)
redirect "#{root_path}recurring-jobs"
end

app.get '/recurring-jobs/:name/toggle' do
app.post '/recurring-jobs/:name/toggle' do
Sidekiq.reload_schedule!

SidekiqScheduler::Scheduler.instance.toggle_job_enabled(params[:name])
Expand Down
6 changes: 3 additions & 3 deletions spec/sidekiq-scheduler/web_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -93,11 +93,11 @@
end

describe '/recurring-jobs/:name/toggle' do
subject { get "/recurring-jobs/#{ERB::Util.url_encode(enabled_job_name)}/toggle" }
subject { post "/recurring-jobs/#{ERB::Util.url_encode(enabled_job_name)}/toggle" }

it 'toggles job enabled flag' do
expect { subject }
.to change { SidekiqScheduler::Scheduler.job_enabled?(enabled_job_name) }.from(true).to(false)
.to change { SidekiqScheduler::Scheduler.job_enabled?(enabled_job_name) }.from(true).to(false)
end

it 'reloads the schedule' do
Expand All @@ -108,7 +108,7 @@
end

describe 'GET /recurring-jobs/:name/enqueue' do
subject { get "/recurring-jobs/#{ERB::Util.url_encode(job_name)}/enqueue" }
subject { post "/recurring-jobs/#{ERB::Util.url_encode(job_name)}/enqueue" }

let(:job_name) { enabled_job_name }
let(:job) { jobs[job_name] }
Expand Down
2 changes: 2 additions & 0 deletions spec/spec_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@
# Load all support files
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }

$TESTING = true

RSpec.configure do |config|

config.after(:each) do
Expand Down
14 changes: 8 additions & 6 deletions web/views/recurring_jobs.erb
Original file line number Diff line number Diff line change
Expand Up @@ -34,12 +34,14 @@
</span>
</td>
<td class="text-center">
<a class="btn btn-warn btn-xs" href="<%= root_path %>recurring-jobs/<%= ERB::Util.url_encode(job.name) %>/enqueue">
<%= t('enqueue_now') %>
</a>
<a class="btn <%= job.enabled? ? "btn-primary" : "btn-warn"%> btn-xs" href="<%= root_path %>recurring-jobs/<%= ERB::Util.url_encode(job.name) %>/toggle">
<%= job.enabled? ? t('disable') : t('enable') %>
</a>
<form action="<%= root_path %>recurring-jobs/<%= ERB::Util.url_encode(job.name) %>/enqueue" method="post">
<%= csrf_tag %>
<input type="submit" class="btn btn-warn btn-xs" value="<%= t('enqueue_now') %>" />
</form>
<form action="<%= root_path %>recurring-jobs/<%= ERB::Util.url_encode(job.name) %>/toggle" method="post">
<%= csrf_tag %>
<input type="submit" class="btn <%= job.enabled? ? "btn-primary" : "btn-warn"%> btn-xs" value="<%= job.enabled? ? t('disable') : t('enable') %>" />
</form>
</td>
</tr>
<% end %>
Expand Down

0 comments on commit 00b8459

Please sign in to comment.