travis-api/lib/travis/api/app/middleware/rewrite.rb
2012-10-10 01:47:12 +02:00

31 lines
690 B
Ruby

require 'travis/api/app'
class Travis::Api::App
class Middleware
class Rewrite < Middleware
V1_REPO_URL = %r(^(/[^/]+/[^/]+(?:/builds(?:/[\d]+)?|/cc\.xml)?)$)
set(:setup) { ActiveRecord::Base.logger = Travis.logger }
after do
p not_found?
force_redirect("/repositories#{$1}") if response.status == 404 && version == 'v1' && request.path =~ V1_REPO_URL
end
private
def force_redirect(path)
response.body = ''
response['Content-Length'] = '0'
response['Content-Type'] = ''
redirect(path)
end
def version
API.version(request.accept.join)
end
end
end
end