team_viewer 0.0.0 → 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +1 -0
- data/Gemfile.lock +3 -0
- data/README.md +71 -0
- data/VERSION +1 -1
- data/lib/team_viewer.rb +3 -163
- data/lib/team_viewer/client.rb +135 -0
- data/lib/team_viewer/connector.rb +24 -0
- data/shippable.yml +9 -0
- data/spec/spec_helper.rb +3 -1
- data/spec/team_viewer_spec.rb +4 -3
- data/team_viewer.gemspec +8 -5
- metadata +7 -4
- data/README.rdoc +0 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: db8bb68205af21a1a2eb23841205af50fe1f8bb0
|
4
|
+
data.tar.gz: 0586305e58cccd16c580c34eb1d71b3ca5dd480c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8143e98184efc503a22b0c390209befa9a49acca92c85586b167a0bfd1b407041768cae96b044ad594b14f50e2e462307f3f11e1f615fc5dc31b8555ca9f38e2
|
7
|
+
data.tar.gz: cb173aa3737bdbbd7db70f03b2622dd437e7208f98d7c7c961d7ab0250efa9d07eb749f8ba68cc20d6bb014460524e350545898247b89b2c4941dc1ff6b2a991
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -3,6 +3,8 @@ GEM
|
|
3
3
|
specs:
|
4
4
|
addressable (2.3.6)
|
5
5
|
builder (3.2.2)
|
6
|
+
codeclimate-test-reporter (0.4.1)
|
7
|
+
simplecov (>= 0.7.1, < 1.0.0)
|
6
8
|
descendants_tracker (0.0.4)
|
7
9
|
thread_safe (~> 0.3, >= 0.3.1)
|
8
10
|
diff-lcs (1.1.3)
|
@@ -67,6 +69,7 @@ PLATFORMS
|
|
67
69
|
|
68
70
|
DEPENDENCIES
|
69
71
|
bundler (~> 1.0)
|
72
|
+
codeclimate-test-reporter
|
70
73
|
jeweler (~> 2.0.1)
|
71
74
|
oauth2
|
72
75
|
rdoc (~> 3.12)
|
data/README.md
ADDED
@@ -0,0 +1,71 @@
|
|
1
|
+
[![Code Climate](https://codeclimate.com/github/kaspernj/team_viewer/badges/gpa.svg)](https://codeclimate.com/github/kaspernj/team_viewer)
|
2
|
+
[![Test Coverage](https://codeclimate.com/github/kaspernj/team_viewer/badges/coverage.svg)](https://codeclimate.com/github/kaspernj/team_viewer)
|
3
|
+
[![Gem Version](https://badge.fury.io/rb/team_viewer.svg)](http://badge.fury.io/rb/team_viewer)
|
4
|
+
|
5
|
+
# TeamViewer
|
6
|
+
|
7
|
+
TeamViewer API for Ruby.
|
8
|
+
|
9
|
+
Original code found here:
|
10
|
+
https://gist.github.com/theinventor/9918950
|
11
|
+
|
12
|
+
## Install
|
13
|
+
|
14
|
+
Enter this in your Gemfile and bundle:
|
15
|
+
```ruby
|
16
|
+
gem 'team_viewer'
|
17
|
+
```
|
18
|
+
|
19
|
+
## Usage
|
20
|
+
|
21
|
+
```ruby
|
22
|
+
conn = ::TeamViewer::Connector.new(client_id: "client_id", client_secret: "client_secret")
|
23
|
+
client = conn.client
|
24
|
+
team_viewer = ::TeamViewer::Client.new(client, "access_token")
|
25
|
+
```
|
26
|
+
|
27
|
+
### Add a session
|
28
|
+
|
29
|
+
```ruby
|
30
|
+
response = team_viewer.session_add(
|
31
|
+
groupname: "Test",
|
32
|
+
end_customer: {
|
33
|
+
name: "Some name",
|
34
|
+
email: "customer@email.com"
|
35
|
+
}
|
36
|
+
)
|
37
|
+
```
|
38
|
+
|
39
|
+
### Ping
|
40
|
+
|
41
|
+
```ruby
|
42
|
+
team_viewer.ping
|
43
|
+
```
|
44
|
+
|
45
|
+
### Get list of users
|
46
|
+
|
47
|
+
```ruby
|
48
|
+
team_viewer.users
|
49
|
+
```
|
50
|
+
|
51
|
+
### Add user
|
52
|
+
|
53
|
+
```ruby
|
54
|
+
team_viewer.user_add(data)
|
55
|
+
```
|
56
|
+
|
57
|
+
## Contributing to TeamViewer
|
58
|
+
|
59
|
+
* Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet.
|
60
|
+
* Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it.
|
61
|
+
* Fork the project.
|
62
|
+
* Start a feature/bugfix branch.
|
63
|
+
* Commit and push until you are happy with your contribution.
|
64
|
+
* Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
|
65
|
+
* Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.
|
66
|
+
|
67
|
+
## Copyright
|
68
|
+
|
69
|
+
Copyright (c) 2014 kaspernj. See LICENSE.txt for
|
70
|
+
further details.
|
71
|
+
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.1
|
data/lib/team_viewer.rb
CHANGED
@@ -1,164 +1,4 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
def initialize
|
6
|
-
@client = connection(credentials)
|
7
|
-
end
|
8
|
-
|
9
|
-
def credentials
|
10
|
-
# should be loaded from yml or something else
|
11
|
-
hash = {}
|
12
|
-
hash[:base_url] = 'https://webapi.teamviewer.com'
|
13
|
-
hash[:client_id] = '16787-ea8X6tmNYc8HxP0FMsni'
|
14
|
-
hash[:client_secret] = 'RqlaiDkVNoZR6vJuTDnB'
|
15
|
-
hash
|
16
|
-
end
|
17
|
-
|
18
|
-
def connection(credentials)
|
19
|
-
OAuth2::Client.new(
|
20
|
-
credentials[:client_id],
|
21
|
-
credentials[:client_secret],
|
22
|
-
:site => credentials[:base_url],
|
23
|
-
:authorize_url => '/api/v1/oauth2/authorize',
|
24
|
-
:token_url => '/api/v1/oauth2/token'
|
25
|
-
)
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
class Client
|
30
|
-
attr_reader :access_token
|
31
|
-
|
32
|
-
def initialize(client, token_str)
|
33
|
-
@client = client
|
34
|
-
@access_token = token(token_str)
|
35
|
-
end
|
36
|
-
|
37
|
-
def token(str)
|
38
|
-
OAuth2::AccessToken.new(@client, str)
|
39
|
-
end
|
40
|
-
|
41
|
-
|
42
|
-
#------------#
|
43
|
-
#--- Ping ---#
|
44
|
-
#------------#
|
45
|
-
|
46
|
-
def ping
|
47
|
-
get 'ping'
|
48
|
-
end
|
49
|
-
|
50
|
-
|
51
|
-
#-------------#
|
52
|
-
#--- Users ---#
|
53
|
-
#-------------#
|
54
|
-
|
55
|
-
def users(params = nil)
|
56
|
-
get 'users', params
|
57
|
-
end
|
58
|
-
|
59
|
-
def user_add(data)
|
60
|
-
post 'users', data
|
61
|
-
end
|
62
|
-
|
63
|
-
def user_get(id)
|
64
|
-
get "users/#{id}"
|
65
|
-
end
|
66
|
-
|
67
|
-
def user_update(id, data)
|
68
|
-
put "users/#{id}", data
|
69
|
-
end
|
70
|
-
|
71
|
-
|
72
|
-
#----------------#
|
73
|
-
#--- Sessions ---#
|
74
|
-
#----------------#
|
75
|
-
|
76
|
-
def sessions(params = nil)
|
77
|
-
get 'sessions', params
|
78
|
-
end
|
79
|
-
|
80
|
-
def session_add(data)
|
81
|
-
post 'sessions', data
|
82
|
-
end
|
83
|
-
|
84
|
-
def session_get(code)
|
85
|
-
get "sessions/#{code}"
|
86
|
-
end
|
87
|
-
|
88
|
-
def session_update(code)
|
89
|
-
put "sessions/#{code}", data
|
90
|
-
end
|
91
|
-
|
92
|
-
|
93
|
-
#--------------------------#
|
94
|
-
#--- Connection Reports ---#
|
95
|
-
#--------------------------#
|
96
|
-
|
97
|
-
def reports(params = nil)
|
98
|
-
get 'reports/connections', params
|
99
|
-
end
|
100
|
-
|
101
|
-
def report_update(id, data)
|
102
|
-
put "reports/connections/#{id}", data
|
103
|
-
end
|
104
|
-
|
105
|
-
def report_delete(id)
|
106
|
-
delete "reports/connections/#{id}"
|
107
|
-
end
|
108
|
-
|
109
|
-
|
110
|
-
#----------------#
|
111
|
-
#--- Meetings ---#
|
112
|
-
#----------------#
|
113
|
-
|
114
|
-
def meetings(params = nil)
|
115
|
-
get 'meetings', params
|
116
|
-
end
|
117
|
-
|
118
|
-
def meeting_get(id)
|
119
|
-
get "meetings/#{id}"
|
120
|
-
end
|
121
|
-
|
122
|
-
def meeting_invitation(id, params)
|
123
|
-
get "meetings/#{id}/invitation", params
|
124
|
-
end
|
125
|
-
|
126
|
-
def meeting_add(data)
|
127
|
-
post 'meetings', data
|
128
|
-
end
|
129
|
-
|
130
|
-
def meeting_update(id, data)
|
131
|
-
put "meetings/#{id}", data
|
132
|
-
end
|
133
|
-
|
134
|
-
def meeting_delete(id)
|
135
|
-
delete "meetings/#{id}"
|
136
|
-
end
|
137
|
-
|
138
|
-
private
|
139
|
-
|
140
|
-
def full_path(resource)
|
141
|
-
"api/v1/#{resource}"
|
142
|
-
end
|
143
|
-
|
144
|
-
def get(resource, params = nil)
|
145
|
-
response = @access_token.get( full_path(resource), :params => params )
|
146
|
-
response.parsed
|
147
|
-
end
|
148
|
-
|
149
|
-
def post(resource, data)
|
150
|
-
response = @access_token.post( full_path(resource), { body: data } )
|
151
|
-
response.status == 200 ? response.parsed : response.status
|
152
|
-
end
|
153
|
-
|
154
|
-
def put(resource, data)
|
155
|
-
response = @access_token.put( full_path(resource), { body: data } )
|
156
|
-
response.status
|
157
|
-
end
|
158
|
-
|
159
|
-
def delete(resource)
|
160
|
-
response = @access_token.delete( full_path(resource) )
|
161
|
-
response.status
|
162
|
-
end
|
163
|
-
end
|
1
|
+
class TeamViewer
|
2
|
+
autoload :Client, "#{File.dirname(__FILE__)}/team_viewer/client"
|
3
|
+
autoload :Connector, "#{File.dirname(__FILE__)}/team_viewer/connector"
|
164
4
|
end
|
@@ -0,0 +1,135 @@
|
|
1
|
+
class TeamViewer::Client
|
2
|
+
attr_reader :access_token
|
3
|
+
|
4
|
+
def initialize(client, token_str)
|
5
|
+
@client = client
|
6
|
+
@access_token = token(token_str)
|
7
|
+
end
|
8
|
+
|
9
|
+
def token(str)
|
10
|
+
OAuth2::AccessToken.new(@client, str)
|
11
|
+
end
|
12
|
+
|
13
|
+
|
14
|
+
#------------#
|
15
|
+
#--- Ping ---#
|
16
|
+
#------------#
|
17
|
+
|
18
|
+
def ping
|
19
|
+
get 'ping'
|
20
|
+
end
|
21
|
+
|
22
|
+
|
23
|
+
#-------------#
|
24
|
+
#--- Users ---#
|
25
|
+
#-------------#
|
26
|
+
|
27
|
+
def users(params = nil)
|
28
|
+
get 'users', params
|
29
|
+
end
|
30
|
+
|
31
|
+
def user_add(data)
|
32
|
+
post 'users', data
|
33
|
+
end
|
34
|
+
|
35
|
+
def user_get(id)
|
36
|
+
get "users/#{id}"
|
37
|
+
end
|
38
|
+
|
39
|
+
def user_update(id, data)
|
40
|
+
put "users/#{id}", data
|
41
|
+
end
|
42
|
+
|
43
|
+
|
44
|
+
#----------------#
|
45
|
+
#--- Sessions ---#
|
46
|
+
#----------------#
|
47
|
+
|
48
|
+
def sessions(params = nil)
|
49
|
+
get 'sessions', params
|
50
|
+
end
|
51
|
+
|
52
|
+
def session_add(data)
|
53
|
+
post 'sessions', data
|
54
|
+
end
|
55
|
+
|
56
|
+
def session_get(code)
|
57
|
+
get "sessions/#{code}"
|
58
|
+
end
|
59
|
+
|
60
|
+
def session_update(code, data)
|
61
|
+
put "sessions/#{code}", data
|
62
|
+
end
|
63
|
+
|
64
|
+
|
65
|
+
#--------------------------#
|
66
|
+
#--- Connection Reports ---#
|
67
|
+
#--------------------------#
|
68
|
+
|
69
|
+
def reports(params = nil)
|
70
|
+
get 'reports/connections', params
|
71
|
+
end
|
72
|
+
|
73
|
+
def report_update(id, data)
|
74
|
+
put "reports/connections/#{id}", data
|
75
|
+
end
|
76
|
+
|
77
|
+
def report_delete(id)
|
78
|
+
delete "reports/connections/#{id}"
|
79
|
+
end
|
80
|
+
|
81
|
+
|
82
|
+
#----------------#
|
83
|
+
#--- Meetings ---#
|
84
|
+
#----------------#
|
85
|
+
|
86
|
+
def meetings(params = nil)
|
87
|
+
get 'meetings', params
|
88
|
+
end
|
89
|
+
|
90
|
+
def meeting_get(id)
|
91
|
+
get "meetings/#{id}"
|
92
|
+
end
|
93
|
+
|
94
|
+
def meeting_invitation(id, params)
|
95
|
+
get "meetings/#{id}/invitation", params
|
96
|
+
end
|
97
|
+
|
98
|
+
def meeting_add(data)
|
99
|
+
post 'meetings', data
|
100
|
+
end
|
101
|
+
|
102
|
+
def meeting_update(id, data)
|
103
|
+
put "meetings/#{id}", data
|
104
|
+
end
|
105
|
+
|
106
|
+
def meeting_delete(id)
|
107
|
+
delete "meetings/#{id}"
|
108
|
+
end
|
109
|
+
|
110
|
+
private
|
111
|
+
|
112
|
+
def full_path(resource)
|
113
|
+
"api/v1/#{resource}"
|
114
|
+
end
|
115
|
+
|
116
|
+
def get(resource, params = nil)
|
117
|
+
response = @access_token.get(full_path(resource), params: params)
|
118
|
+
response.parsed
|
119
|
+
end
|
120
|
+
|
121
|
+
def post(resource, data)
|
122
|
+
response = @access_token.post(full_path(resource), body: data)
|
123
|
+
response.status == 200 ? response.parsed : response.status
|
124
|
+
end
|
125
|
+
|
126
|
+
def put(resource, data)
|
127
|
+
response = @access_token.put(full_path(resource), body: data)
|
128
|
+
response.status
|
129
|
+
end
|
130
|
+
|
131
|
+
def delete(resource)
|
132
|
+
response = @access_token.delete( full_path(resource) )
|
133
|
+
response.status
|
134
|
+
end
|
135
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
class TeamViewer::Connector
|
2
|
+
attr_reader :client
|
3
|
+
|
4
|
+
def initialize(args)
|
5
|
+
@args = args
|
6
|
+
@client = connection(credentials)
|
7
|
+
end
|
8
|
+
|
9
|
+
def credentials
|
10
|
+
{
|
11
|
+
base_url: 'https://webapi.teamviewer.com',
|
12
|
+
client_id: @args[:client_id],
|
13
|
+
client_secret: @args[:client_secret]
|
14
|
+
}
|
15
|
+
end
|
16
|
+
|
17
|
+
def connection(credentials)
|
18
|
+
OAuth2::Client.new(credentials[:client_id], credentials[:client_secret],
|
19
|
+
site: credentials[:base_url],
|
20
|
+
authorize_url: '/api/v1/oauth2/authorize',
|
21
|
+
token_url: '/api/v1/oauth2/token'
|
22
|
+
)
|
23
|
+
end
|
24
|
+
end
|
data/shippable.yml
ADDED
data/spec/spec_helper.rb
CHANGED
@@ -1,3 +1,6 @@
|
|
1
|
+
require "codeclimate-test-reporter"
|
2
|
+
CodeClimate::TestReporter.start
|
3
|
+
|
1
4
|
require 'simplecov'
|
2
5
|
|
3
6
|
module SimpleCov::Configuration
|
@@ -25,5 +28,4 @@ require 'team_viewer'
|
|
25
28
|
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
|
26
29
|
|
27
30
|
RSpec.configure do |config|
|
28
|
-
|
29
31
|
end
|
data/spec/team_viewer_spec.rb
CHANGED
@@ -1,7 +1,8 @@
|
|
1
|
-
require
|
1
|
+
require 'spec_helper'
|
2
2
|
|
3
3
|
describe "TeamViewer" do
|
4
|
-
it "
|
5
|
-
|
4
|
+
it "should autoload" do
|
5
|
+
TeamViewer::Client
|
6
|
+
TeamViewer::Connector
|
6
7
|
end
|
7
8
|
end
|
data/team_viewer.gemspec
CHANGED
@@ -2,21 +2,21 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: team_viewer 0.0.
|
5
|
+
# stub: team_viewer 0.0.1 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "team_viewer"
|
9
|
-
s.version = "0.0.
|
9
|
+
s.version = "0.0.1"
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
12
|
s.require_paths = ["lib"]
|
13
13
|
s.authors = ["kaspernj"]
|
14
|
-
s.date = "2014-
|
14
|
+
s.date = "2014-12-04"
|
15
15
|
s.description = "TeamViewer API for Ruby"
|
16
16
|
s.email = "k@spernj.org"
|
17
17
|
s.extra_rdoc_files = [
|
18
18
|
"LICENSE.txt",
|
19
|
-
"README.
|
19
|
+
"README.md"
|
20
20
|
]
|
21
21
|
s.files = [
|
22
22
|
".document",
|
@@ -24,10 +24,13 @@ Gem::Specification.new do |s|
|
|
24
24
|
"Gemfile",
|
25
25
|
"Gemfile.lock",
|
26
26
|
"LICENSE.txt",
|
27
|
-
"README.
|
27
|
+
"README.md",
|
28
28
|
"Rakefile",
|
29
29
|
"VERSION",
|
30
30
|
"lib/team_viewer.rb",
|
31
|
+
"lib/team_viewer/client.rb",
|
32
|
+
"lib/team_viewer/connector.rb",
|
33
|
+
"shippable.yml",
|
31
34
|
"spec/spec_helper.rb",
|
32
35
|
"spec/team_viewer_spec.rb",
|
33
36
|
"team_viewer.gemspec"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: team_viewer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- kaspernj
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-12-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: oauth2
|
@@ -100,17 +100,20 @@ executables: []
|
|
100
100
|
extensions: []
|
101
101
|
extra_rdoc_files:
|
102
102
|
- LICENSE.txt
|
103
|
-
- README.
|
103
|
+
- README.md
|
104
104
|
files:
|
105
105
|
- ".document"
|
106
106
|
- ".rspec"
|
107
107
|
- Gemfile
|
108
108
|
- Gemfile.lock
|
109
109
|
- LICENSE.txt
|
110
|
-
- README.
|
110
|
+
- README.md
|
111
111
|
- Rakefile
|
112
112
|
- VERSION
|
113
113
|
- lib/team_viewer.rb
|
114
|
+
- lib/team_viewer/client.rb
|
115
|
+
- lib/team_viewer/connector.rb
|
116
|
+
- shippable.yml
|
114
117
|
- spec/spec_helper.rb
|
115
118
|
- spec/team_viewer_spec.rb
|
116
119
|
- team_viewer.gemspec
|
data/README.rdoc
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
= team_viewer
|
2
|
-
|
3
|
-
Description goes here.
|
4
|
-
|
5
|
-
== Contributing to team_viewer
|
6
|
-
|
7
|
-
* Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet.
|
8
|
-
* Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it.
|
9
|
-
* Fork the project.
|
10
|
-
* Start a feature/bugfix branch.
|
11
|
-
* Commit and push until you are happy with your contribution.
|
12
|
-
* Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
|
13
|
-
* Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.
|
14
|
-
|
15
|
-
== Copyright
|
16
|
-
|
17
|
-
Copyright (c) 2014 kaspernj. See LICENSE.txt for
|
18
|
-
further details.
|
19
|
-
|