class Bliss::Client::Collection

Public Class Methods

all() click to toggle source
# File lib/bliss/client/collection.rb, line 14
def self.all
  response = Client.connection.get('collections')
  if response.success?
    response.body.map { |attr| new attr }
  else
    raise JSON.parse(response.body).fetch('message')
  end
end
find(ids, options = {}) click to toggle source

Fetch collections and their children.

@param [Array<Integer>] ids The ids of the collections to fetch @param [Hash] options @option options [Boolean] (false) :include_programs Whether to fetch

programs for each collection

@option options [Boolean] (false) :include_colors Whether to fetch

colors for each program

@option options [Boolean] (false) :include_styles Whether to fetch

styles for each program

@option options [Boolean] (false) :include_articles Whether to fetch

articles for each style

@option options [Boolean] (false) :include_prices Whether to fetch

prices for each style

@return [Array<Collection>]

@example Fetch collections 88 and 90 with programs, styles and prices

collections = Bliss::Client::Collection.find(
  [88, 90],
  include_programs: true,
  include_styles: true,
  include_prices: true
)
# File lib/bliss/client/collection.rb, line 48
def self.find(ids, options = {})
  options = {
    include_programs: false,
    include_styles: false,
    include_articles: false,
    include_colors: false,
    include_prices: false
  }.merge(options)

  c = Client.connection
  responses_hash = {}

  c.in_parallel do
    ids.each do |id|
      responses_hash[id] = c.get("collections/#{id}", options)
    end
  end

  responses = responses_hash.values

  if (failed_response = responses.find { |r| !r.success? })
    raise JSON.parse(failed_response.body).fetch('message')
  end

  responses.map { |r| new r.body }
end

Public Instance Methods

keylooks() click to toggle source

@return [Array<Look>] All keylooks for this collection

# File lib/bliss/client/collection.rb, line 76
def keylooks
  @keylooks ||= Look.for_collection(id, type: :keylook)
end
studiolooks() click to toggle source

@return [Array<Look>] All studiolooks for this collection

# File lib/bliss/client/collection.rb, line 81
def studiolooks
  @studiolooks ||= Look.for_collection(id, type: :studiolook)
end