Class: Storenvy::Client

Inherits:
Object
  • Object
show all
Includes:
Order, Product, Store, Template, User
Defined in:
lib/storenvy/client.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Product

#create_product, #delete_product, #get_product, #get_products, #update_product

Methods included from User

#current_user

Methods included from Template

#get_templates, #update_template

Methods included from Store

#current_store, #update_store

Methods included from Order

#get_orders

Constructor Details

#initialize(url = 'https://api.storenvy.com', parallel_requests = 5) ⇒ Client

Creates a new instance of Storenvy::Client

Parameters:

  • url (String) (defaults to: 'https://api.storenvy.com')

    The url to Storenvy api (api.storenvy.com)

  • parallel_requests (Integer String) (defaults to: 5)

    The maximum parallel request to do (5)



30
31
32
33
# File 'lib/storenvy/client.rb', line 30

def initialize(url = 'https://api.storenvy.com', parallel_requests = 5)
  @url = url
  @parallel_requests = parallel_requests
end

Instance Attribute Details

#access_tokenObject

Returns the value of attribute access_token.



23
24
25
# File 'lib/storenvy/client.rb', line 23

def access_token
  @access_token
end

Instance Method Details

#delete(url, params) ⇒ Object

Does a DELETE request to the url with the params

Parameters:

  • url (String)

    the relative path in the Storenvy API



78
79
80
81
82
83
84
# File 'lib/storenvy/client.rb', line 78

def delete(url, params)
  params = convert_hash_keys(params)
  params[:access_token] = @access_token if @access_token
  preform(url, :delete) do
    return connection.delete(url)
  end
end

#get(url, params = {}) ⇒ Object

Does a GET request to the url with the params

Parameters:

  • url (String)

    the relative path in the Storenvy API

  • params (Hash) (defaults to: {})

    the url params that should be passed in the request



40
41
42
43
44
45
46
# File 'lib/storenvy/client.rb', line 40

def get(url, params = {})
  params = params.inject({}){|memo,(k,v)| memo[k.to_s] = v; memo}
  params[:access_token] = @access_token if @access_token
  preform(url, :get, params: params) do
    return connection.get(url, params)
  end
end

#in_parallelObject

Does a parallel request to the api for all of the requests in the block

Examples:

block

Storenvy.in_parallel do
  Storenvy.create_review(review_params)
  Storenvy.()
end


94
95
96
97
98
# File 'lib/storenvy/client.rb', line 94

def in_parallel
  connection.in_parallel do
    yield
  end
end

#post(url, params) ⇒ Object

Does a POST request to the url with the params

Parameters:

  • url (String)

    the relative path in the Storenvy API

  • params (Hash)

    the body of the request



53
54
55
56
57
58
59
# File 'lib/storenvy/client.rb', line 53

def post(url, params)
  params = convert_hash_keys(params)
  params[:access_token] = @access_token if @access_token
  preform(url, :post, params: params) do
    return connection.post(url, params)
  end
end

#put(url, params) ⇒ Object

Does a PUT request to the url with the params

Parameters:

  • url (String)

    the relative path in the Storenvy API

  • params (Hash)

    the body of the request



66
67
68
69
70
71
72
# File 'lib/storenvy/client.rb', line 66

def put(url, params)
  params = convert_hash_keys(params)
  params[:access_token] = @access_token if @access_token
  preform(url, :put, params: params) do
    return connection.put(url, params)
  end
end