writeas 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/lib/writeas/client.rb +54 -4
- data/lib/writeas/client_error.rb +12 -0
- data/lib/writeas/markdown_response.rb +12 -0
- data/lib/writeas/post.rb +20 -0
- data/lib/writeas/response.rb +13 -0
- data/lib/writeas/version.rb +1 -1
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a4ed7eb398a6c8abbf99f9cf566ee21fb4d416e45727580b76d875d2868b7620
|
4
|
+
data.tar.gz: 5761bf82b6f4430ff9ce72088dc6c6a4d8c02c246ab8dcc801cdaf79db856716
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: da18f123d59604a7d4bf9539002a9568cd46d3b95cf566d13052bd304c749f4560e54af74a2d06c4aeb175c2cefd729f346275b4d5e281b149b1e0be0051797c
|
7
|
+
data.tar.gz: 3fd09fa0c9943e16aa8aa75dfa9bf5dcb5e77a355511558630c08eaf5a9093d410f6d106dacd76fdeb18a1b747cdd7e964b48a5ef043e44902c075db4bfba0d7
|
data/README.md
CHANGED
data/lib/writeas/client.rb
CHANGED
@@ -1,14 +1,17 @@
|
|
1
|
-
# lib/client.rb
|
2
1
|
require 'faraday'
|
3
2
|
require 'faraday_middleware'
|
4
|
-
|
3
|
+
require_relative './client_error'
|
4
|
+
require_relative './markdown_response'
|
5
|
+
require_relative './post'
|
5
6
|
|
6
7
|
module Writeas
|
7
8
|
class Client
|
9
|
+
attr_accessor :base_url, :conn
|
10
|
+
|
8
11
|
def initialize
|
9
12
|
@base_url = "https://write.as/"
|
10
13
|
|
11
|
-
@
|
14
|
+
@conn ||= Faraday.new(@base_url) do |conf|
|
12
15
|
conf.response :json
|
13
16
|
conf.request :json
|
14
17
|
conf.adapter Faraday.default_adapter
|
@@ -19,7 +22,54 @@ module Writeas
|
|
19
22
|
body = {
|
20
23
|
raw_body: raw_body
|
21
24
|
}
|
22
|
-
|
25
|
+
|
26
|
+
response = @conn.post('/api/markdown', body.to_json)
|
27
|
+
|
28
|
+
if error_response?(response)
|
29
|
+
raise ClientError.new(response.reason_phrase, response.status)
|
30
|
+
else
|
31
|
+
client_response = Writeas::MarkdownResponse.new(response.body)
|
32
|
+
end
|
33
|
+
|
34
|
+
return client_response
|
35
|
+
end
|
36
|
+
|
37
|
+
def publish_post(body:, title: nil, font: nil, lang: nil, rtl: nil, created: nil, crosspost: nil)
|
38
|
+
request_body = {
|
39
|
+
body: body,
|
40
|
+
title: title,
|
41
|
+
font: font,
|
42
|
+
lang: lang,
|
43
|
+
rtl: rtl,
|
44
|
+
created: created,
|
45
|
+
crosspost: crosspost
|
46
|
+
}
|
47
|
+
|
48
|
+
response = @conn.post('/api/posts', request_body.to_json)
|
49
|
+
|
50
|
+
if error_response?(response)
|
51
|
+
raise ClientError.new(response.reason_phrase, response.status)
|
52
|
+
else
|
53
|
+
post = Writeas::Post.new(response.body)
|
54
|
+
return post
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
def retrieve_post(post_id:)
|
59
|
+
response = @conn.get("/api/posts/#{post_id}")
|
60
|
+
|
61
|
+
if error_response?(response)
|
62
|
+
raise ClientError.new(response.reason_phrase, response.status)
|
63
|
+
else
|
64
|
+
post = Writeas::Post.new(response.body)
|
65
|
+
return post
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
private
|
70
|
+
|
71
|
+
def error_response?(response)
|
72
|
+
[400, 401, 403, 404, 405, 410, 429, 500, 502, 503].include? response.status
|
23
73
|
end
|
24
74
|
end
|
25
75
|
end
|
data/lib/writeas/post.rb
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
module Writeas
|
2
|
+
class Post < Response
|
3
|
+
attr_reader :id, :slug, :token, :appearance, :language, :rtl, :created,
|
4
|
+
:title, :body, :tags
|
5
|
+
|
6
|
+
def initialize(response_body)
|
7
|
+
super(response_body)
|
8
|
+
@id = @data["id"]
|
9
|
+
@slug = @data["slug"]
|
10
|
+
@token = @data["token"]
|
11
|
+
@appearance = @data["appearance"]
|
12
|
+
@language = @data["language"]
|
13
|
+
@rtl = @data["rtl"]
|
14
|
+
@created = @data["created"]
|
15
|
+
@title = @data["title"]
|
16
|
+
@body = @data["body"]
|
17
|
+
@tags = @data["tags"]
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
data/lib/writeas/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: writeas
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- George Thomas
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-01-
|
11
|
+
date: 2021-01-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -60,6 +60,10 @@ files:
|
|
60
60
|
- bin/setup
|
61
61
|
- lib/writeas.rb
|
62
62
|
- lib/writeas/client.rb
|
63
|
+
- lib/writeas/client_error.rb
|
64
|
+
- lib/writeas/markdown_response.rb
|
65
|
+
- lib/writeas/post.rb
|
66
|
+
- lib/writeas/response.rb
|
63
67
|
- lib/writeas/version.rb
|
64
68
|
- writeas.gemspec
|
65
69
|
homepage: https://github.com/thegeorgeous/writeas
|