Class: BigcommerceProductAgent::Client::MetaField

Inherits:
AbstractClient show all
Defined in:
lib/client/meta_field.rb

Instance Method Summary collapse

Methods inherited from AbstractClient

#client, #get, #index, #initialize, #uri, uri_base, #uri_base

Constructor Details

This class inherits a constructor from BigcommerceProductAgent::Client::AbstractClient

Instance Method Details

#create(meta_field) ⇒ Object



13
14
15
16
17
18
19
20
# File 'lib/client/meta_field.rb', line 13

def create(meta_field)
  response = client.post(
    uri(product_id: meta_field[:resource_id]),
    meta_field.to_json
  )

  return response.body['data']
end

#delete(product_id, meta_field_id) ⇒ Object



44
45
46
47
48
49
50
# File 'lib/client/meta_field.rb', line 44

def delete(product_id, meta_field_id)
    begin
        client.delete(uri(product_id: product_id, meta_field_id: meta_field_id))
    rescue Faraday::Error::ClientError => e
        raise e, "\n#{e.message}\nFailed to delete meta_field with id = #{meta_field_id}\nfor product with id = #{product_id}\n", e.backtrace
    end
end

#get_for_product(product_id) ⇒ Object



6
7
8
9
10
11
# File 'lib/client/meta_field.rb', line 6

def get_for_product(product_id)
  return [] if product_id.blank?

  response = client.get(uri(product_id: product_id))
  return response.body['data']
end

#update(meta_field) ⇒ Object



22
23
24
25
26
27
28
29
# File 'lib/client/meta_field.rb', line 22

def update(meta_field)
  response = client.put(
    uri(product_id: meta_field[:resource_id], meta_field_id: meta_field[:id]),
    meta_field.to_json
  )

  return response.body['data']
end

#upsert(meta_field) ⇒ Object



31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/client/meta_field.rb', line 31

def upsert(meta_field)
  begin
    if meta_field[:id]
      return update(meta_field)
    else
      return create(meta_field)
    end
  rescue Faraday::Error::ClientError => e
    puts e.inspect
    raise e
  end
end