Sha256: 2b21a065a21c4567680653703e80ba63676fee11c22086fc9b8836ec7a65b937

Contents?: true

Size: 1.08 KB

Versions: 4

Compression:

Stored size: 1.08 KB

Contents

module Conekta
  class Resource < ConektaObject

    attr_accessor :id

    def initialize(id=nil)
      @id = id
      super()
    end

    def self._url()
      "/#{CGI.escape(underscored_class)}s"
    end

    def _url
      if (id.nil? || id.to_s.empty?)
        exception = Error.new({
          "message" => I18n.t('error.resource.id',  { resource: self.class.class_name, locale: :en }),
          "message_to_purchaser" => I18n.t('error.resource.id_purchaser',  { locale: Conekta.locale.to_sym })
        })
        if Conekta.api_version == "2.0.0"
          error_list = Conekta::ErrorList.new
          error_list.details << exception
          exception = error_list
        end
        raise exception
      end

      return [self.class._url, id].join('/')
    end

    def self.underscored_class
      Conekta::Util.underscore(self.to_s)
    end

    def create_member_with_relation(member, params, parent)
      parent_klass = parent.class.underscored_class
      child = self.create_member(member, params)
      child.create_attr(parent_klass.to_s, parent)
      return child
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
conekta-2.0.0 lib/conekta/resource.rb
conekta-1.1.3 lib/conekta/resource.rb
conekta-1.1.2 lib/conekta/resource.rb
conekta-1.1.1 lib/conekta/resource.rb