class Rubytus::Middlewares::TusBarrier

Public Instance Methods

post_process(env, status, headers, body) click to toggle source
# File lib/rubytus/middlewares/tus_barrier.rb, line 7
def post_process(env, status, headers, body)
  request = Rubytus::Request.new(env)

  if request.collection?
    unless request.options? || request.post?
      status = STATUS_NOT_ALLOWED
      body   = "#{request.request_method} used against file creation url. Only POST is allowed."
      headers['Allow'] = 'POST'
    end
  end

  if request.resource?
    unless request.options? || request.head? || request.patch? || request.get?
      status  = STATUS_NOT_ALLOWED
      allowed = 'HEAD,PATCH'
      body    = "#{request.request_method} used against file creation url. Allowed: #{allowed}"
      headers['Allow'] = allowed
    end
  end

  if request.unknown?
    status = STATUS_NOT_FOUND
    body   = "Unknown url: #{request.path_info} - does not match file pattern"
  end

  [status, headers, body]
end