cleaver_client 0.0.2
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/cleaver_client.rb +85 -0
- metadata +59 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: eb051c9481a15c822452f1e1ef5178baea3bc0c2
|
4
|
+
data.tar.gz: c1057e2212820cf569f78b4d16bbc3e3a6a9a842
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 1d89b6bff0f9a8665391f08568aa18d459a42a54b52d47ad823d5bdead8a34ea4ddc850c356b657f7233acde2b2f60b19304e2e7752eb8fc264c4d0789c2e44d
|
7
|
+
data.tar.gz: af1687d075792383adb56fbdd86622d5735fbd8883ac928022242574d4843553c2959f4bd751c2930eb984f8d5a0173e16c881a08d9b29e2dd9479feb476d919
|
@@ -0,0 +1,85 @@
|
|
1
|
+
%w{rest_client json}.each { |lib| require lib }
|
2
|
+
|
3
|
+
class Hash
|
4
|
+
def not_nils!
|
5
|
+
reject! { |k, v| v.nil? }
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
#This class creates a new cleaver client instance
|
10
|
+
class CleaverClient
|
11
|
+
|
12
|
+
# Cleaver Api Error class
|
13
|
+
class ApiError < StandardError
|
14
|
+
end
|
15
|
+
|
16
|
+
# Create a new connector instance
|
17
|
+
def initialize(login, password)
|
18
|
+
@token = nil
|
19
|
+
@api_url = 'https://cleaver.facetz.net/API/REST'
|
20
|
+
@login, @password = login, password
|
21
|
+
end
|
22
|
+
|
23
|
+
# Perform a login with login and password
|
24
|
+
def login
|
25
|
+
response = post "login", Username: @login, Password: @password
|
26
|
+
@token = response['Token']
|
27
|
+
end
|
28
|
+
|
29
|
+
# Perform logout
|
30
|
+
def logout(options = {})
|
31
|
+
require_auth!
|
32
|
+
get "#{@token}/logout", options
|
33
|
+
end
|
34
|
+
|
35
|
+
# Get available fields
|
36
|
+
def get_fields(options = {})
|
37
|
+
require_auth!
|
38
|
+
get "person/#{@token}/fields", options
|
39
|
+
end
|
40
|
+
|
41
|
+
# Get data
|
42
|
+
def get_data(options = {})
|
43
|
+
require_auth!
|
44
|
+
post "person/#{@token}/reports/Traffic/data/0/10000", options
|
45
|
+
end
|
46
|
+
|
47
|
+
# Pass post, get, delete, put and patch to the request method
|
48
|
+
def method_missing(method_name, *arguments, &block)
|
49
|
+
if method_name.to_s =~ /(post|get|put|patch|delete)/
|
50
|
+
request($1.to_sym, *arguments, &block)
|
51
|
+
else
|
52
|
+
super
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
# Let class instance respond to post, get, delete, put and patch
|
57
|
+
def respond_to?(method_name, *arguments, &block)
|
58
|
+
!!method_name.to_s.match(/(post|get|put|patch|delete)/) || super
|
59
|
+
end
|
60
|
+
|
61
|
+
def to_s
|
62
|
+
"#{@login}"
|
63
|
+
end
|
64
|
+
|
65
|
+
private
|
66
|
+
# Generic request method
|
67
|
+
def request(strategy, uri, data)
|
68
|
+
if strategy == :get
|
69
|
+
response = RestClient.get "#{@api_url}/#{uri}", params: data.to_json, :content_type => :json, :accept => :json
|
70
|
+
else
|
71
|
+
response = RestClient.send strategy, "#{@api_url}/#{uri}/", data.to_json, :content_type => :json, :accept => :json
|
72
|
+
end
|
73
|
+
response = JSON.parse response
|
74
|
+
response
|
75
|
+
end
|
76
|
+
|
77
|
+
def session_created?
|
78
|
+
@token != nil
|
79
|
+
end
|
80
|
+
|
81
|
+
def require_auth!
|
82
|
+
raise ApiError, "Must be logged in to log out" unless session_created?
|
83
|
+
end
|
84
|
+
|
85
|
+
end
|
metadata
ADDED
@@ -0,0 +1,59 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: cleaver_client
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.2
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- rekero
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-01-20 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: Cleaver API client
|
28
|
+
email: remurdo@gmail.com
|
29
|
+
executables: []
|
30
|
+
extensions: []
|
31
|
+
extra_rdoc_files: []
|
32
|
+
files:
|
33
|
+
- lib/cleaver_client.rb
|
34
|
+
homepage: http://rubygems.org/gems/cleaver_client
|
35
|
+
licenses:
|
36
|
+
- MIT
|
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.2.2
|
55
|
+
signing_key:
|
56
|
+
specification_version: 4
|
57
|
+
summary: Cleaver API client
|
58
|
+
test_files: []
|
59
|
+
has_rdoc:
|