Sha256: 4563a9a65600d0f197e297185b8c41c462cbda49cc0b3234f5395bd1ce05b6df

Contents?: true

Size: 1.17 KB

Versions: 3

Compression:

Stored size: 1.17 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
      ensure_id

      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

    private
    def ensure_id
      if (id.nil? || id.to_s.empty?)
        exception = Error.error_handler({
          "details" => [{
            "debug_message" => I18n.t(
              'error.resource.id',
              { resource: self.class.class_name, locale: :en }
            ),
            "message" => I18n.t(
              'error.resource.id_purchaser',
              { locale: Conekta.locale.to_sym }
            ),
            "param" => "id",
            "code" => "error.resource.id"
          }]
        }, -2)

        raise exception
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
conekta-2.4.1 lib/conekta/resource.rb
conekta-2.4.0 lib/conekta/resource.rb
conekta-2.3.0 lib/conekta/resource.rb