calltouch_client 0.0.1
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/Gemfile +4 -0
- data/README.md +9 -0
- data/Rakefile +4 -0
- data/calltouch_client.gemspec +22 -0
- data/lib/calltouch_client.rb +155 -0
- data/lib/test.rb +5 -0
- metadata +92 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: be277ecb700f6bacaa8959c78056cb1e2314ea6d
|
4
|
+
data.tar.gz: 3a6d28fe7887e006201b16dfa526d2122667d219
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 91e05b20464085da5b4df4539c53b28301131bae5be3f670a4765219c24727dc0a755cc24e5c3402a62f755bf4f9ed534689cfb569ff34297849ce9a6bba8834
|
7
|
+
data.tar.gz: a1c654a81d94dd350fe4be5153104fa1a98a3f45f95240e5b6976f02a15762a1ee637af1cad4c5682eac9c51385f8264c3dacf775b66ea232a374b41239e203a
|
data/Gemfile
ADDED
data/README.md
ADDED
data/Rakefile
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), 'lib', 'calltouch_client')
|
2
|
+
|
3
|
+
Gem::Specification.new do |s|
|
4
|
+
s.name = 'calltouch_client'
|
5
|
+
s.version = CalltouchClient::VERSION
|
6
|
+
s.date = '2015-02-17'
|
7
|
+
s.summary = 'Calltouch API client'
|
8
|
+
s.description = 'Calltouch API client'
|
9
|
+
s.authors = ['Tatiana Podimova']
|
10
|
+
s.homepage = 'http://rubygems.org/gems/calltouch_client'
|
11
|
+
s.license = 'MIT'
|
12
|
+
|
13
|
+
s.files = `git ls-files`.split("\n")
|
14
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
15
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
16
|
+
s.require_paths = ["lib"]
|
17
|
+
|
18
|
+
s.add_dependency "rest-client"
|
19
|
+
|
20
|
+
s.add_development_dependency 'rake'
|
21
|
+
s.add_development_dependency 'rspec'
|
22
|
+
end
|
@@ -0,0 +1,155 @@
|
|
1
|
+
%w{rest_client json}.each { |lib| require lib }
|
2
|
+
|
3
|
+
|
4
|
+
class CalltouchClient
|
5
|
+
VERSION = '0.0.1'
|
6
|
+
|
7
|
+
class ApiError < StandardError
|
8
|
+
end
|
9
|
+
|
10
|
+
|
11
|
+
def initialize(client_api_id)
|
12
|
+
@client_api_id = client_api_id
|
13
|
+
@session_id = nil
|
14
|
+
@api_url = 'http://api.calltouch.ru/calls-service/RestAPI'
|
15
|
+
@options = { clientApiId: client_api_id }
|
16
|
+
end
|
17
|
+
|
18
|
+
|
19
|
+
|
20
|
+
# Request
|
21
|
+
def set_request options = {}
|
22
|
+
get 'requests/orders/register', options.merge!(@options)
|
23
|
+
end
|
24
|
+
|
25
|
+
# Order by calling
|
26
|
+
def set_order options = {}
|
27
|
+
get 'orders/register', options.merge!(@options)
|
28
|
+
end
|
29
|
+
|
30
|
+
# Search
|
31
|
+
def search options = {}
|
32
|
+
get 'requests', options.merge!(@options)
|
33
|
+
end
|
34
|
+
|
35
|
+
# Get request
|
36
|
+
def get_request id, options = {}
|
37
|
+
get "requests/#{id}", options.merge!(@options)
|
38
|
+
end
|
39
|
+
|
40
|
+
# Get order
|
41
|
+
def get_order id, options = {}
|
42
|
+
get "requests/orders/#{id}", options.merge!(@options)
|
43
|
+
end
|
44
|
+
|
45
|
+
# Approve order
|
46
|
+
def approved id, options = {}
|
47
|
+
get "requests/orders/#{id}/approve", options.merge!(@options)
|
48
|
+
end
|
49
|
+
|
50
|
+
# Cancel order
|
51
|
+
def canceled id, options = {}
|
52
|
+
get "requests/orders/#{id}/cancel", options.merge!(@options)
|
53
|
+
end
|
54
|
+
|
55
|
+
# Reject order
|
56
|
+
def rejected id, options = {}
|
57
|
+
get "requests/orders/#{id}/reject", options.merge!(@options)
|
58
|
+
end
|
59
|
+
|
60
|
+
# Complete order
|
61
|
+
def completed id, options = {}
|
62
|
+
get "requests/orders/#{id}/complete", options.merge!(@options)
|
63
|
+
end
|
64
|
+
|
65
|
+
|
66
|
+
|
67
|
+
|
68
|
+
# Calls by sources
|
69
|
+
|
70
|
+
# clientApiId - required
|
71
|
+
# dateFrom - required
|
72
|
+
# dateTo - required
|
73
|
+
# clientId
|
74
|
+
# source.value
|
75
|
+
# source.filterMode
|
76
|
+
# medium.value
|
77
|
+
# medium.filterMode
|
78
|
+
# utmSource.value
|
79
|
+
# utmSource.filterMode
|
80
|
+
# utmMedium.value
|
81
|
+
# utmMedium.filterMode
|
82
|
+
# utmTerm.value
|
83
|
+
# utmTerm.filterMode
|
84
|
+
# utmContent.value
|
85
|
+
# utmContent.filterMode
|
86
|
+
# utmCampaign.value
|
87
|
+
# utmCampaign.filterMode
|
88
|
+
# keyword.value
|
89
|
+
# keyword.filterMode
|
90
|
+
# ani.value
|
91
|
+
# ani.filterMode
|
92
|
+
# phoneNumber.value
|
93
|
+
# phoneNumber.filterMode
|
94
|
+
# uniqueOnly
|
95
|
+
# callId
|
96
|
+
# withMapVisits
|
97
|
+
def calls site_id, options = {}
|
98
|
+
get "#{site_id}/calls-diary/calls", options.merge!(@options)
|
99
|
+
end
|
100
|
+
|
101
|
+
|
102
|
+
# Total calls count
|
103
|
+
# access_token - required
|
104
|
+
# dateFrom
|
105
|
+
# dateTo
|
106
|
+
def calls_count site_id, options = {}
|
107
|
+
get "statistics/#{site_id}/calls/total-count", options.merge!({ access_token: @client_api_id })
|
108
|
+
end
|
109
|
+
|
110
|
+
|
111
|
+
# Total calls count by date
|
112
|
+
# access_token - required
|
113
|
+
# dateFrom
|
114
|
+
# dateTo
|
115
|
+
def calls_by_date site_id, options = {}
|
116
|
+
get "statistics/#{site_id}/calls/count-by-date", options.merge!({ access_token: @client_api_id })
|
117
|
+
end
|
118
|
+
|
119
|
+
|
120
|
+
|
121
|
+
|
122
|
+
# Pass post, get, delete, put and patch to the request method
|
123
|
+
def method_missing(method_name, *arguments, &block)
|
124
|
+
if method_name.to_s =~ /(post|get|put|patch|delete)/
|
125
|
+
request($1.to_sym, *arguments, &block)
|
126
|
+
else
|
127
|
+
super
|
128
|
+
end
|
129
|
+
end
|
130
|
+
|
131
|
+
|
132
|
+
private
|
133
|
+
|
134
|
+
|
135
|
+
# Generic request method
|
136
|
+
def request(strategy, uri, data)
|
137
|
+
if strategy == :get
|
138
|
+
response = RestClient.get "#{@api_url}/#{uri}/", params: data, accept: 'application/json'
|
139
|
+
else
|
140
|
+
response = RestClient.send strategy, "#{@api_url}/#{uri}/", data, accept: 'application/json'
|
141
|
+
end
|
142
|
+
response = JSON.parse response
|
143
|
+
#require_success! response
|
144
|
+
response
|
145
|
+
end
|
146
|
+
|
147
|
+
#def require_success!(response)
|
148
|
+
#raise ApiError, response['message'] unless response['success']
|
149
|
+
#response
|
150
|
+
#end
|
151
|
+
|
152
|
+
|
153
|
+
|
154
|
+
|
155
|
+
end
|
data/lib/test.rb
ADDED
metadata
ADDED
@@ -0,0 +1,92 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: calltouch_client
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Tatiana Podimova
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-02-17 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
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
description: Calltouch API client
|
56
|
+
email:
|
57
|
+
executables: []
|
58
|
+
extensions: []
|
59
|
+
extra_rdoc_files: []
|
60
|
+
files:
|
61
|
+
- Gemfile
|
62
|
+
- README.md
|
63
|
+
- Rakefile
|
64
|
+
- calltouch_client.gemspec
|
65
|
+
- lib/calltouch_client.rb
|
66
|
+
- lib/test.rb
|
67
|
+
homepage: http://rubygems.org/gems/calltouch_client
|
68
|
+
licenses:
|
69
|
+
- MIT
|
70
|
+
metadata: {}
|
71
|
+
post_install_message:
|
72
|
+
rdoc_options: []
|
73
|
+
require_paths:
|
74
|
+
- lib
|
75
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
76
|
+
requirements:
|
77
|
+
- - ">="
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: '0'
|
80
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
81
|
+
requirements:
|
82
|
+
- - ">="
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
version: '0'
|
85
|
+
requirements: []
|
86
|
+
rubyforge_project:
|
87
|
+
rubygems_version: 2.2.2
|
88
|
+
signing_key:
|
89
|
+
specification_version: 4
|
90
|
+
summary: Calltouch API client
|
91
|
+
test_files: []
|
92
|
+
has_rdoc:
|