Sha256: c93eb9873ad78705f3bdadfb0ca2c1808793676b111760710333058af1ae0110

Contents?: true

Size: 1.13 KB

Versions: 9

Compression:

Stored size: 1.13 KB

Contents

require "kinja/post"
require "kinja/blog"
require "kinja/author"
require "kinja/analytics"
require "kinja/tag"
require "kinja/helpers"
require 'httparty'

module Kinja
  class Client
    attr_accessor :user
    include Kinja::Post
    include Kinja::Blog
    include Kinja::Author
    include Kinja::Analytics
    include Kinja::Tag
    include Kinja::Helper

    def initialize(opts={})
      if opts.has_key? :user and opts.has_key? :password
        @username = opts[:user]
        @pass = opts[:password]
      end
    end

    def login
      response = HTTParty.post("#{API_ROOT}#{LOGIN_PATH}",
        body: {
          screenName: URI.encode(@username),
          token: @pass
        }.to_json,
        headers: { 'Content-Type' => 'application/json' }
      )
      @user = response["data"]
      response
    end

    def get_api_token(response)
      @api_token = HTTParty.post("#{API_ROOT}#{TOKEN_PATH}",
        cookies: {KinjaSession: session_token(response)}
                  )['data']['token']
    end

    def session_token(response)
      re = /KinjaSession=([\w-]+);/
      response.headers["set-cookie"].match(re)[1]
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
kinja-0.0.23 lib/kinja/client.rb
kinja-0.0.22 lib/kinja/client.rb
kinja-0.0.21 lib/kinja/client.rb
kinja-0.0.20 lib/kinja/client.rb
kinja-0.0.19 lib/kinja/client.rb
kinja-0.0.18 lib/kinja/client.rb
kinja-0.0.17 lib/kinja/client.rb
kinja-0.0.16 lib/kinja/client.rb
kinja-0.0.15 lib/kinja/client.rb