Sha256: d7bf326d872a91dd886d4c969d3c5ab44583982b915b5e3dbf171d749e41fa9e

Contents?: true

Size: 877 Bytes

Versions: 1

Compression:

Stored size: 877 Bytes

Contents

module Bitmarkable
  class BitlyApiException < StandardError
  end

  class Bitly
    include HTTParty
    base_uri 'api.bitly.com'
    format :json

    def self.shorten(url)
      response = get('/v3/shorten', query: required_params.merge(longUrl: url))
      raise BitlyApiException,
            "#{response['status_code']}: #{response['status_text']}" unless response['status_code'] == 200
      response['data']['url']
    end

    def self.clicks(url)
      response = get('/v3/clicks', query: required_params.merge(shortUrl: url))
      raise BitlyApiException,
            "#{response['status_code']}: #{response['status_text']}" unless response['status_code'] == 200
      response['data']['clicks'][0]['user_clicks']
    end

    def self.required_params
      {version: "2.0.1", login: Bitmarkable.config.login, apiKey: Bitmarkable.config.api_key}
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
bitmarkable-0.1.2 lib/bitmarkable/bitly.rb