class Writeas::Client
Attributes
base_url[RW]
conn[RW]
Public Class Methods
new()
click to toggle source
# File lib/writeas/client.rb, line 11 def initialize @base_url = "https://write.as/" @conn ||= Faraday.new(@base_url) do |conf| conf.response :json conf.request :json conf.adapter Faraday.default_adapter end end
Public Instance Methods
delete_post(post_id:, token:)
click to toggle source
# File lib/writeas/client.rb, line 89 def delete_post(post_id:, token:) response = @conn.delete("/api/posts/#{post_id}", {token: token}) if error_response?(response) raise ClientError.new(response.reason_phrase, response.status) else return true end end
publish_post(body:, title: nil, font: nil, lang: nil, rtl: nil, created: nil, crosspost: nil)
click to toggle source
# File lib/writeas/client.rb, line 37 def publish_post(body:, title: nil, font: nil, lang: nil, rtl: nil, created: nil, crosspost: nil) request_body = { body: body, title: title, font: font, lang: lang, rtl: rtl, created: created, crosspost: crosspost } response = @conn.post('/api/posts', request_body.to_json) if error_response?(response) raise ClientError.new(response.reason_phrase, response.status) else post = Writeas::Post.new(response.body) return post end end
render_markdown(raw_body)
click to toggle source
# File lib/writeas/client.rb, line 21 def render_markdown(raw_body) body = { raw_body: raw_body } response = @conn.post('/api/markdown', body.to_json) if error_response?(response) raise ClientError.new(response.reason_phrase, response.status) else client_response = Writeas::MarkdownResponse.new(response.body) end return client_response end
retrieve_post(post_id:)
click to toggle source
# File lib/writeas/client.rb, line 58 def retrieve_post(post_id:) response = @conn.get("/api/posts/#{post_id}") if error_response?(response) raise ClientError.new(response.reason_phrase, response.status) else post = Writeas::Post.new(response.body) return post end end
update_post(post_id:, body:, token:, title: nil, font: nil, lang: nil, rtl: nil)
click to toggle source
# File lib/writeas/client.rb, line 69 def update_post(post_id:, body:, token:, title: nil, font: nil, lang: nil, rtl: nil) request_body = { body: body, token: token, title: title, font: font, lang: lang, rtl: rtl } response = @conn.post("/api/posts/#{post_id}", request_body.to_json) if error_response?(response) raise ClientError.new(response.reason_phrase, response.status) else post = Writeas::Post.new(response.body) return post end end
Private Instance Methods
error_response?(response)
click to toggle source
# File lib/writeas/client.rb, line 101 def error_response?(response) [400, 401, 403, 404, 405, 410, 429, 500, 502, 503].include? response.status end