162 lines
3.3 KiB
Ruby
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
|