Class: Micropub::Server::Rails::Middleware

Inherits:
Object
  • Object
show all
Defined in:
lib/micropub/server/rails/middleware.rb

Instance Method Summary collapse

Constructor Details

#initialize(app) ⇒ Middleware

Returns a new instance of Middleware.



5
6
7
# File 'lib/micropub/server/rails/middleware.rb', line 5

def initialize(app)
  @app = app
end

Instance Method Details

#auth_token(env) ⇒ Object



18
19
20
21
# File 'lib/micropub/server/rails/middleware.rb', line 18

def auth_token(env)
  input = env["HTTP_AUTHORIZATION"] || request(env).params["access_token"] || ""
  input.split("Bearer ").last
end

#bodyObject



31
32
33
# File 'lib/micropub/server/rails/middleware.rb', line 31

def body
  [""]
end

#call(env) ⇒ Object



9
10
11
12
13
14
15
16
# File 'lib/micropub/server/rails/middleware.rb', line 9

def call(env)
  if env["PATH_INFO"] == "/micropub"
    token = Micropub::Token.new(auth_token(env))
    token.valid? ? response : error_response
  else
    @app.call env
  end
end

#error_responseObject



27
28
29
# File 'lib/micropub/server/rails/middleware.rb', line 27

def error_response
  [401, {}, body]
end

#headersObject



39
40
41
42
43
44
# File 'lib/micropub/server/rails/middleware.rb', line 39

def headers
  {
    "Location"     => "http://bookisworthy.com/posts/1",
    "Content-Type" => "text/plain; charset=utf-8"
  }
end

#request(env) ⇒ Object



35
36
37
# File 'lib/micropub/server/rails/middleware.rb', line 35

def request(env)
  Rack::Request.new(env)
end

#responseObject



23
24
25
# File 'lib/micropub/server/rails/middleware.rb', line 23

def response
  [201, headers, body]
end