Files
spree_burstnet/lib/burst_net/api.rb

162 lines
3.3 KiB
Ruby

require 'rubygems'
require 'httparty'
require 'json'
=begin BurstNet API methods
GET order
GET order/:id
GET order/active/
GET order/cancelled/
GET order/fraud/
GET order/pending/
GET product
GET product/:id
GET product/backup/
GET product/backup/:id
GET product/cp/
GET product/cp/:id
GET product/os/
GET product/os/:id
GET product/site/
GET product/site/:id
GET service
GET service/:id
GET service/active/
GET service/cancelled/
GET service/fraud/
GET service/pending/
GET service/suspended/
GET service/terminated/
POST order
POST service/:id
PUT service/:id
=end
module BurstNet
class API
include HTTParty
base_uri 'https://rsapi.burst.net'
format :json
headers 'Accept' => 'application/json', 'Content-Type' => 'application/json'
def self.configuration
@configuration ||= {}
end
def self.configure
yield(configuration) if block_given?
end
def initialize
self.class.default_options.merge!(self.class.configuration)
end
def get(path, options = {})
response = self.class.get(path, options)
if response.success?
response.parsed_response
else
raise response.response
end
end
def post(path, options = {})
response = self.class.post(path, options).parsed_response
if response.success?
response.parsed_response
else
raise response.response
end
end
def put(path, options = {})
response = self.class.put(path, options).parsed_response
if response.success?
response.parsed_response
else
raise response.response
end
end
def delete(path, options = {})
response = self.class.delete(path, options).parsed_response
if response.success?
response.parsed_response
else
raise response.response
end
end
def get_products
self.get('/product')
end
def get_product(id)
self.get("/product/#{id}")
end
def get_product_backup(id)
self.get("/product/backup/#{id}")
end
def get_product_cp(id)
self.get("/product/cp/#{id}")
end
def get_product_os(id)
self.get("/product/os/#{id}")
end
def get_product_site(id)
self.get("/product/site/#{id}")
end
def get_services
self.get('/service')
end
def get_service(id)
self.get("/service/#{id}")
end
def terminate_service(id)
self.delete("/service/#{id}")
end
def change_service(id, params)
options = {:body => params}
self.post(id, options)
end
def update_service(id, params)
options = {:body => params}
self.put(id, options)
end
def get_services_by_status(status)
possible_status = %w(active cancelled fraud pending suspended terminated)
raise('Unknown service status') unless possible_status.include?(status)
self.get("/service/#{status}")
end
def get_orders
self.get('/order')
end
def get_orders_by_status(status)
possible_status = %w(active cancelled fraud pending)
raise('Unknown order status') unless possible_status.include?(status)
self.get("/order/#{status}")
end
def get_order(id)
self.get("/order/#{id}")
end
def create_order(params)
options = {:body => params}
self.post(id, options)
end
end
end