Skip to content

oluosiname/samcart_api

Repository files navigation

SamCart API

A Ruby gem for interacting with the SamCart API.

Installation

Add this line to your application's Gemfile:

gem 'samcart_api'

And then execute:

$ bundle install

Or install it yourself as:

$ gem install samcart_api

Usage

Configuration

SamcartApi.configure do |config|
  config.api_key = 'your_api_key'
end

Products

Finding a specific product

# Find a specific product
product = SamcartApi::Product.find('123')

# Access product attributes
product.id          # => "123"
product.name        # => "Test Product"
product.price       # => "99.99"
product.created_at  # => Time object

Retrieve All Products with Pagination

By default, SamcartApi::Product.all returns a Paginator object, allowing you to iterate through paginated results efficiently.

Using each_page to Iterate Over Paginated Results

SamcartApi::Product.all.each_page do |products|
  products.each do |product|
    puts "Product ID: #{product['id']}, Name: #{product['product_name']}"
  end
end

Filter Products

You can filter products using query parameters such as status, created_at_min, created_at_max, product_category, and pricing_type. See getProducts

Orders

Finding a specific order

# Find a specific order
order = SamcartApi::Order.find('123')

# Access order attributes
order.id          # => "123"
order.status      # => "completed"
order.total       # => "99.99"
order.created_at  # => Time object

Retrieve All Orders with Pagination

By default, SamcartApi::Order.all returns a Paginator object, allowing you to iterate through paginated results efficiently.

Using each_page to Iterate Over Paginated Results

SamcartApi::Order.all.each_page do |orders|
  orders.each do |order|
    puts "Order ID: #{order['id']}"
  end
end

Direct API Access

If you need to make custom API calls, you can use the client directly:

client = SamcartApi::Client.new('your_api_key')

# GET request
response = client.get('/products')

# POST request
response = client.post('/orders', { product_id: '123' })

# PUT request
response = client.put('/products/123', { name: 'Updated Name' })

# DELETE request
response = client.delete('/products/123')

Development

After checking out the repo, run bundle install to install dependencies. Then, run rake spec to run the tests.

To install this gem onto your local machine, run bundle exec rake install.

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b feature/my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin feature/my-new-feature)
  5. Create new Pull Request

License

The gem is available as open source under the terms of the MIT License.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages