class MediumSdk::Client

Attributes

connection[RW]

Public Class Methods

new(opts = {}) click to toggle source
# File lib/medium_sdk/client.rb, line 5
def initialize(opts = {})
  if opts.key? :client_id
    @connection = MediumSdk::Connection::AuthCode.new opts
  elsif opts.key? :integration_token
    @connection = MediumSdk::Connection::IntegrationToken.new opts
  end
end

Public Instance Methods

body_key(res, key) click to toggle source
# File lib/medium_sdk/client.rb, line 19
def body_key(res, key)
  if res.status >= 400
    raise "HTTP Error #{res.status} " + res.pretty_inspect
  end
  return res.body.key?(key) ? res.body[key] : nil
end
get_url(url) click to toggle source
# File lib/medium_sdk/client.rb, line 13
def get_url(url)
  return @connection.http.get do |req|
    req.url url
  end
end
me(reload = nil) click to toggle source
# File lib/medium_sdk/client.rb, line 26
def me(reload = nil)
  if @_me.nil? || reload
    @_me = body_key get_url('me'), 'data'
  end
  return @_me
end
me_id() click to toggle source
# File lib/medium_sdk/client.rb, line 33
def me_id
  me unless @_me
  unless @_me.is_a?(Hash) && @_me.key?('id') && @_me['id'].to_s.length>0
    raise 'Authorized User Id is unknown'
  end
  return @_me['id']
end
post(post) click to toggle source
# File lib/medium_sdk/client.rb, line 47
def post(post)
  url = ''
  if post.key? :publicationId
    publication_id = post[:publicationId].clone
    post.delete :publicationId
    url = File.join 'publications', publication_id, 'posts'
  else
    url = File.join 'users', me_id(), 'posts'
  end
  res = @connection.http.post do |req|
    req.url url
    req.body = post
  end
  return body_key(res, 'data')
end
publication_contributors(publication_id) click to toggle source
# File lib/medium_sdk/client.rb, line 63
def publication_contributors(publication_id)
  res = get_url File.join 'publications', publication_id, 'contributors'
  return body_key(res, 'data')
end
user_publications(user_id = nil) click to toggle source
# File lib/medium_sdk/client.rb, line 41
def user_publications(user_id = nil)
  user_id = me_id if user_id.nil?
  res = get_url File.join 'users', user_id.to_s, 'publications'
  return body_key(res, 'data')
end