class TwitterAds::Creative::CardsFetch

Constants

FETCH_ID
FETCH_URI

Attributes

account[R]

Public Class Methods

new(account) click to toggle source
# File lib/twitter-ads/creative/cards_fetch.rb, line 113
def initialize(account)
  @account = account
  self
end

Public Instance Methods

all(*) click to toggle source
# File lib/twitter-ads/creative/cards_fetch.rb, line 79
def all(*)
  raise ArgumentError.new(
    "'CardsFetch' object has no attribute 'all'")
end
load(account, card_uris = nil, card_id = nil, with_deleted = nil, opts = {}) click to toggle source
# File lib/twitter-ads/creative/cards_fetch.rb, line 84
def load(account, card_uris = nil, card_id = nil, with_deleted = nil, opts = {})
  if (card_uris && card_id) || (card_uris.nil? && card_id.nil?)
    raise ArgumentError.new('card_uris and card_id are exclusive parameters. ' \
                       'Please supply one or the other, but not both.')
  end

  params = {}.merge!(opts)

  if with_deleted && TwitterAds::Utils.to_bool(with_deleted)
    params = { with_deleted: true }.merge!(params)
  end

  if card_uris
    params = { card_uris: Array(card_uris).join(',') }.merge!(params)
    resource = FETCH_URI % { account_id: account.id }
    request = Request.new(account.client, :get, resource, params: params)
    return Cursor.new(self.class, request, init_with: [account])
  else
    params = { card_id: card_id }.merge!(params)
    resource = FETCH_ID % { account_id: account.id, id: card_id }
    response = Request.new(account.client, :get, resource, params: params).perform
    return from_response(response.body[:data])
  end
end
reload!() click to toggle source
# File lib/twitter-ads/creative/cards_fetch.rb, line 109
def reload!
  load(@account, card_id: @id) if @id
end