Sha256: 2f95ff5214715e4fe5191eb3d88136faabbf5183f3d37a9ea8d46a779e3babfb

Contents?: true

Size: 718 Bytes

Versions: 14

Compression:

Stored size: 718 Bytes

Contents

# frozen_string_literal: true

module ZohoHub
  class Product < BaseRecord
    attributes :id, :description, :vendor_id, :owner_id, :active, :name

    attribute_translation(
      id: :id,
      active: :Product_Active,
      name: :Product_Name
    )

    def initialize(params)
      attributes.each do |attr|
        zoho_key = attr_to_zoho_key(attr)

        send("#{attr}=", params[zoho_key] || params[attr])
      end

      @owner_id ||= params.dig(:Owner, :id)
      @vendor_id ||= params.dig(:Vendor_Name, :id)
    end

    def to_params
      params = super

      params[:Owner] = { id: @owner_id } if @owner_id
      params[:Vendor_Name] = { id: @vendor_id } if @vendor_id

      params
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
zoho_hub-0.1.56 lib/zoho_hub/records/product.rb
zoho_hub-0.1.55 lib/zoho_hub/records/product.rb
zoho_hub-0.1.54 lib/zoho_hub/records/product.rb
zoho_hub-0.1.53 lib/zoho_hub/records/product.rb
zoho_hub-0.1.52 lib/zoho_hub/records/product.rb
zoho_hub-0.1.51 lib/zoho_hub/records/product.rb
zoho_hub-0.1.50 lib/zoho_hub/records/product.rb
zoho_hub-0.1.49 lib/zoho_hub/records/product.rb
zoho_hub-0.1.48 lib/zoho_hub/records/product.rb
zoho_hub-0.1.47 lib/zoho_hub/records/product.rb
zoho_hub-0.1.46 lib/zoho_hub/records/product.rb
zoho_hub-0.1.45 lib/zoho_hub/records/product.rb
zoho_hub-0.1.44 lib/zoho_hub/records/product.rb
zoho_hub-0.1.43 lib/zoho_hub/records/product.rb