voximplant_api 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/lib/voximplant_api/client.rb +77 -0
- data/lib/voximplant_api.rb +1 -0
- metadata +58 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 6690d5560e90499ba2be773ffc4da8ec6f7ebba7
|
4
|
+
data.tar.gz: 2630a669cf5678790777402614241404aff6cd60
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 0e854c45065a6d95d335b4030588a400dccd98bfe1641fe06ec766fe29a8437b38dc3c63d8f3f0701009922e5e01c7792eb5359670c20711c07aea0b67804b5f
|
7
|
+
data.tar.gz: 45ffa13e8073eeffa8b30ec5720745f2f62a8286826ff776729c9e0db1805c01a2756979bdf1782c270eb6dc4ab797a4c670a7dec437bcd4e660d336db5bfc6e
|
@@ -0,0 +1,77 @@
|
|
1
|
+
require 'rest_client'
|
2
|
+
|
3
|
+
module VoximplantApi
|
4
|
+
NO_METHOD_ERROR_CODE = 103
|
5
|
+
|
6
|
+
class Error < StandardError
|
7
|
+
attr_reader :code
|
8
|
+
|
9
|
+
def initialize(error)
|
10
|
+
super error["msg"]
|
11
|
+
@code = error["code"]
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
class Client
|
16
|
+
|
17
|
+
def initialize(options)
|
18
|
+
@account_id = options[:account_id]
|
19
|
+
@api_key = options[:api_key]
|
20
|
+
end
|
21
|
+
|
22
|
+
def create_child_account(options)
|
23
|
+
perform_request_as_parent("AddAccount", options)
|
24
|
+
end
|
25
|
+
|
26
|
+
def method_missing(name, *args)
|
27
|
+
method_name = name.to_s.split('_').collect(&:capitalize).join
|
28
|
+
options = args.first || {}
|
29
|
+
perform_request method_name, options
|
30
|
+
|
31
|
+
rescue VoximplantApi::Error => e
|
32
|
+
if e.code == NO_METHOD_ERROR_CODE
|
33
|
+
raise NoMethodError.new("unknown command '#{method_name}'.")
|
34
|
+
else
|
35
|
+
raise
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
protected
|
40
|
+
|
41
|
+
def auth_params
|
42
|
+
{account_id: @account_id,
|
43
|
+
api_key: @api_key}
|
44
|
+
end
|
45
|
+
|
46
|
+
def parent_auth_params
|
47
|
+
{parent_account_id: @account_id,
|
48
|
+
parent_account_api_key: @api_key}
|
49
|
+
end
|
50
|
+
|
51
|
+
def perform_request(name, params = {})
|
52
|
+
params = auth_params.merge params
|
53
|
+
self.class.perform_request(name, params)
|
54
|
+
end
|
55
|
+
|
56
|
+
def perform_request_as_parent(name, params = {})
|
57
|
+
params = parent_auth_params.merge params
|
58
|
+
self.class.perform_request(name, params)
|
59
|
+
end
|
60
|
+
|
61
|
+
class << self
|
62
|
+
def api_basic_url
|
63
|
+
"https://api.voximplant.com/platform_api"
|
64
|
+
end
|
65
|
+
|
66
|
+
def perform_request(name, params)
|
67
|
+
result = JSON.parse (RestClient.post "#{self.api_basic_url}/#{name}", params)
|
68
|
+
if result["error"]
|
69
|
+
raise Error.new(result["error"])
|
70
|
+
end
|
71
|
+
result
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
end
|
76
|
+
|
77
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
require_relative 'voximplant_api/client'
|
metadata
ADDED
@@ -0,0 +1,58 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: voximplant_api
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Vladimir Shushlin
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-03-24 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rest-client
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
description: VoxImplant.com HTTP API client
|
28
|
+
email: v.shushlin@insales.ru
|
29
|
+
executables: []
|
30
|
+
extensions: []
|
31
|
+
extra_rdoc_files: []
|
32
|
+
files:
|
33
|
+
- lib/voximplant_api.rb
|
34
|
+
- lib/voximplant_api/client.rb
|
35
|
+
homepage: https://github.com/insales/voximplant_api
|
36
|
+
licenses: []
|
37
|
+
metadata: {}
|
38
|
+
post_install_message:
|
39
|
+
rdoc_options: []
|
40
|
+
require_paths:
|
41
|
+
- lib
|
42
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - ">="
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '0'
|
47
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
48
|
+
requirements:
|
49
|
+
- - ">="
|
50
|
+
- !ruby/object:Gem::Version
|
51
|
+
version: '0'
|
52
|
+
requirements: []
|
53
|
+
rubyforge_project:
|
54
|
+
rubygems_version: 2.4.5
|
55
|
+
signing_key:
|
56
|
+
specification_version: 4
|
57
|
+
summary: VoxImplant.com HTTP API client
|
58
|
+
test_files: []
|