micropub-server-rails 0.1.7 → 0.1.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ed83a1d14d5de57e1f2fcd03ef0dc7e3ac5545f4
4
- data.tar.gz: b8ae968c47e3d4a2c79744896f457ed57dcdb92e
3
+ metadata.gz: 29c9fb9910a4330b00b3fb19e63935be0f91992b
4
+ data.tar.gz: 300dfa66ec27fdd0127038f02cec47834cc003ea
5
5
  SHA512:
6
- metadata.gz: 12d8c19e8ee8b6905f148bcdeb32c120e8f9560d46c4c6ed1a8aed135adcc005a8b524638683a71d5e4e5532740f74c49116dad7bf00ed30484ac5ac964d796c
7
- data.tar.gz: 27db1c852865e21a209724adc6b3e2dd83d05ed1f7df310af1510c777f9489a042ca0a2c59338c66ab97f4923b223daa98823daee6e8aa9af1afe0ca7e74ca34
6
+ metadata.gz: c50bfe29f6749d1433194c006540b46b5527e1e6cc3783bb3aa0ec1f8f72e9303c303576468e66fc2f9ad1b902eb25164b15f604468024b31ad0f272d2ca861d
7
+ data.tar.gz: 8782410070a75905028d3a2455e32d67ed73199b46b6e8810407e3d557d7874054c8f6066f6542fa75a7b5af3d758c65c713badcb99b51a64db35dc792d8cb84
@@ -3,6 +3,7 @@ require 'micropub'
3
3
  module Micropub::Server::Rails
4
4
  class Middleware
5
5
  class HTTPError < StandardError
6
+ attr_reader :status
6
7
  def initialize(env, status, body="")
7
8
  @env = env
8
9
  @status = status
@@ -17,15 +18,14 @@ module Micropub::Server::Rails
17
18
  def call(env)
18
19
  begin
19
20
  @params = request(env).params
20
- @headers = {"Content-Type" => "text/plain; charset=utf-8"}
21
+ @headers = {"Content-Type" => "application/x-www-form-urlencoded"}
21
22
  if env["PATH_INFO"] == "/micropub"
22
- check_token(env)
23
23
  micropub_call env
24
24
  else
25
25
  @app.call env
26
26
  end
27
- rescue
28
- error_response(401)
27
+ rescue HTTPError => env
28
+ error_response(env.status)
29
29
  end
30
30
  end
31
31
 
@@ -40,6 +40,21 @@ module Micropub::Server::Rails
40
40
  end
41
41
 
42
42
  def micropub_call(env)
43
+ case env["REQUEST_METHOD"]
44
+ when "GET" then syndicate_to env
45
+ when "POST" then post env
46
+ else
47
+ raise HTTPError.new env, 405
48
+ end
49
+ end
50
+
51
+ def syndicate_to(env)
52
+ # TODO: Remove hardcoded syndicate link
53
+ [200, @headers, ["syndicate-to[]=twitter.com%2fbookis"]]
54
+ end
55
+
56
+ def post(env)
57
+ check_token env
43
58
  router = Micropub::Homesteading::Router.new(@params)
44
59
  client = Micropub::Client.new(router.as, token: auth_token(env))
45
60
  response = client.post(@params.except("access_token"))
@@ -48,10 +63,6 @@ module Micropub::Server::Rails
48
63
 
49
64
  @headers["Location"] = response.location
50
65
 
51
- success_response
52
- end
53
-
54
- def success_response
55
66
  [201, @headers, [""]]
56
67
  end
57
68
 
@@ -1,7 +1,7 @@
1
1
  module Micropub
2
2
  module Server
3
3
  module Rails
4
- VERSION = "0.1.7"
4
+ VERSION = "0.1.8"
5
5
  end
6
6
  end
7
7
  end
@@ -2,9 +2,6 @@ require "micropub/server/rails/middleware"
2
2
  require 'webmock/rspec'
3
3
  require "rack/test"
4
4
 
5
- # How do we determine what host to hit?
6
- # Where does the code go which tells the mapping how to notes to work?
7
-
8
5
  Micropub.configure do |c|
9
6
  c.token_endpoint = "https://tokens.indieauth.com/token"
10
7
  c.me = "http://bookisworthy.com"
@@ -25,6 +22,18 @@ describe Micropub::Server::Rails::Middleware do
25
22
  end
26
23
  end
27
24
 
25
+ describe "GET /micropub?q=syndicate-to" do
26
+ it "returns a 200" do
27
+ get "/micropub", q: "synicate-to"
28
+ expect(last_response.status).to eq 200
29
+ end
30
+
31
+ it "returns an http array called syndicate-to" do
32
+ get "/micropub", q: "synicate-to"
33
+ expect(last_response.body).to match /syndicate-to/
34
+ end
35
+ end
36
+
28
37
  describe "POST /micropub" do
29
38
  before do
30
39
  expect(Micropub::Token).to receive(:new).with("1234").and_return(token)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: micropub-server-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.7
4
+ version: 0.1.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shane Becker
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-03-15 00:00:00.000000000 Z
12
+ date: 2015-03-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler