class MediumExport::ApiClient

Attributes

auth[R]
publish_status[R]

Public Class Methods

new(api_token:, publish_status:) click to toggle source

raise_on (400..599).to_a

# File lib/middleman-medium_export/api_client.rb, line 15
def initialize(api_token:, publish_status:)
  @auth = { Authorization: "Bearer #{api_token}" }
  @publish_status = publish_status
end

Public Instance Methods

me() click to toggle source
# File lib/middleman-medium_export/api_client.rb, line 44
def me
  self.class.get('/me', headers: auth)
end
publish(content:, title:, tags:) click to toggle source
# File lib/middleman-medium_export/api_client.rb, line 20
def publish(content:, title:, tags:)
  response = self.class.post(
    "/users/#{id}/posts",
    headers: auth,
    body: {
      "title": title,
      "contentFormat": "html",
      "content": content,
      "tags": tags,
      "publishStatus": publish_status
    }.to_json
  )
end
upload_image(image:) click to toggle source
# File lib/middleman-medium_export/api_client.rb, line 34
def upload_image(image:)
  response = self.class.post(
    "https://api.medium.com/v1/images",
    headers: auth,
    body: {
      "image": image
    }
  )
end

Private Instance Methods

id() click to toggle source
# File lib/middleman-medium_export/api_client.rb, line 50
def id
  @id ||= me['data']['id']
end