diff --git a/tests/workers/purge_cache_worker_tests.rb b/tests/workers/purge_cache_worker_tests.rb index 90be0da8..b07bc3c7 100644 --- a/tests/workers/purge_cache_worker_tests.rb +++ b/tests/workers/purge_cache_worker_tests.rb @@ -6,8 +6,8 @@ describe PurgeCacheWorker do end it 'throws exception without 200 or 404 http status' do - stub_request(:get, "http://#{@test_ip}/:cache/purge/test.jpg"). - with(headers: {'Host' => 'kyledrake.neocities.org'}) + stub_request(:head, "http://#{@test_ip}/test.jpg"). + with(headers: {'Host' => 'kyledrake.neocities.org', 'Cache-Purge' => '1'}) .to_return(status: 503) worker = PurgeCacheWorker.new @@ -18,8 +18,8 @@ describe PurgeCacheWorker do end it 'handles 404 without exception' do - stub_request(:get, "http://#{@test_ip}/:cache/purge/test.jpg"). - with(headers: {'Host' => 'kyledrake.neocities.org'}) + stub_request(:head, "http://#{@test_ip}/test.jpg"). + with(headers: {'Host' => 'kyledrake.neocities.org', 'Cache-Purge' => '1'}) .to_return(status: 404) worker = PurgeCacheWorker.new @@ -27,35 +27,35 @@ describe PurgeCacheWorker do end it 'sends a purge request' do - stub_request(:get, "http://#{@test_ip}/:cache/purge/test.jpg"). - with(headers: {'Host' => 'kyledrake.neocities.org'}) + stub_request(:head, "http://#{@test_ip}/test.jpg"). + with(headers: {'Host' => 'kyledrake.neocities.org', 'Cache-Purge' => '1'}) .to_return(status: 200) worker = PurgeCacheWorker.new worker.perform @test_ip, 'kyledrake', '/test.jpg' - assert_requested :get, "http://#{@test_ip}/:cache/purge/test.jpg" + assert_requested :head, "http://#{@test_ip}/test.jpg" end it 'handles spaces correctly' do - stub_request(:get, "http://#{@test_ip}/:cache/purge/te st.jpg"). - with(headers: {'Host' => 'kyledrake.neocities.org'}) + stub_request(:head, "http://#{@test_ip}/te st.jpg"). + with(headers: {'Host' => 'kyledrake.neocities.org', 'Cache-Purge' => '1'}) .to_return(status: 200) url = Addressable::URI.encode_component( - "http://#{@test_ip}/:cache/purge/te st.jpg", + "http://#{@test_ip}/te st.jpg", Addressable::URI::CharacterClasses::QUERY ) worker = PurgeCacheWorker.new worker.perform @test_ip, 'kyledrake', '/te st.jpg' - assert_requested :get, url + assert_requested :head, url end it 'works without forward slash' do - stub_request(:get, "http://#{@test_ip}/:cache/purge/test.jpg"). - with(headers: {'Host' => 'kyledrake.neocities.org'}) + stub_request(:head, "http://#{@test_ip}/test.jpg"). + with(headers: {'Host' => 'kyledrake.neocities.org', 'Cache-Purge' => '1'}) .to_return(status: 200) worker = PurgeCacheWorker.new diff --git a/workers/purge_cache_worker.rb b/workers/purge_cache_worker.rb index eaf123c9..b29e310a 100644 --- a/workers/purge_cache_worker.rb +++ b/workers/purge_cache_worker.rb @@ -15,12 +15,13 @@ class PurgeCacheWorker path = '/' + path if path[0] != '/' url = Addressable::URI.encode_component( - "http://#{proxy_ip}/:cache/purge#{path}", + "http://#{proxy_ip}#{path}", Addressable::URI::CharacterClasses::QUERY ) begin - RestClient::Request.execute method: :get, url: url, timeout: HTTP_TIMEOUT, headers: { - host: URI::encode("#{username}.neocities.org") + RestClient::Request.execute method: :head, url: url, timeout: HTTP_TIMEOUT, headers: { + host: URI::encode("#{username}.neocities.org"), + cache_purge: '1' } rescue RestClient::ResourceNotFound end