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.
@@ -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
@@ -0,0 +1,4 @@
1
+ Source "http://rubygems.org"
2
+ # Specify your gem's dependencies in comagic_client.gemspec
3
+ gemspec
4
+
@@ -0,0 +1,9 @@
1
+ # Calltouch client
2
+
3
+ ## Installation
4
+ 1. Put this line to your Gemfile:
5
+ gem 'calltouch_client'
6
+ 2. Run in your console:
7
+ bundle install
8
+ ## Usage
9
+ TODO
@@ -0,0 +1,4 @@
1
+ require "bundler/gem_tasks"
2
+ task :console do
3
+ sh "irb -rubygems -I lib -r calltouch_client.rb"
4
+ end
@@ -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
@@ -0,0 +1,5 @@
1
+ require './calltouch_client'
2
+
3
+
4
+ call = CalltouchClient.new('2057978031ct1b06a49ddf5bf148ddcffb1120a2202d')
5
+ call.total_count 212, {dateFrom: '16/02/2015', dateTo: '16/02/2015'}
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: