Sha256: 1413e2727a1560d9e60a6899e416324e8b0980c0937a647c45e876512d3efd36

Contents?: true

Size: 1.34 KB

Versions: 4

Compression:

Stored size: 1.34 KB

Contents

require 'json'

module PlaylyfeClient
  #grabbed from playlyfe-rub-sdk
  class Error < StandardError; end
  class ConnectionError < PlaylyfeClient::Error; end
  class GameError < PlaylyfeClient::Error; end
  class PlayerError < PlaylyfeClient::Error; end
  class LeaderboardError < PlaylyfeClient::Error; end
  class ActionError < PlaylyfeClient::Error; end
  class MetricError < PlaylyfeClient::Error; end
  class PlaylyfeClient::ActionRateLimitExceededError < PlaylyfeClient::ActionError; end
  class PlaylyfeClient::PlayerExistsError < PlaylyfeClient::PlayerError; end

  class Error < StandardError
    attr_accessor :name, :message
    def initialize(res=nil,uri=nil)
      @raw = res
      unless res.nil? || res == ""
        res = JSON.parse(res)
        @name = res['error']
        @message = res['error_description']
        @message+=" [request: #{uri}]" unless uri.nil?
      end  
    end
    
    def self.build(res=nil,uri=nil)
      err_class= PlaylyfeClient::ConnectionError
      unless res.nil? || res == ""
        res_h = JSON.parse(res)
        if res_h['error'] == "rate_limit_exceeded"
          err_class= PlaylyfeClient::ActionRateLimitExceededError
        elsif res_h['error'] == "player_exists"
          err_class= PlaylyfeClient::PlayerExistsError
              
        end  
      end  
      err_class.new(res, uri)
    end
  end

end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
playlyfe_client-1.0.6 lib/playlyfe_client/errors.rb
playlyfe_client-1.0.5 lib/playlyfe_client/errors.rb
playlyfe_client-1.0.4 lib/playlyfe_client/errors.rb
playlyfe_client-1.0.2 lib/playlyfe_client/errors.rb