teamleader 0.12.0 → 0.13.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 +4 -4
- data/CHANGELOG.md +9 -0
- data/README.md +64 -0
- data/lib/teamleader/api/files.rb +28 -0
- data/lib/teamleader/api/projects.rb +30 -0
- data/lib/teamleader/api.rb +9 -1
- data/lib/teamleader/configuration.rb +8 -0
- data/lib/teamleader/version.rb +1 -1
- data/lib/teamleader.rb +13 -1
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 713b06675edb4fb8523c85d37d7a82458ed9ceeb
|
4
|
+
data.tar.gz: b9f28cfbe6608987d4ab1185b7ab68df148404d8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 32ec36b96ca6e6b8c937c2ebbf7efce59a75e6df201dbfbdf3d9cf60e2edbf1810b7ac671bb613221dd5535fd07e7b19f5fa9ce0b08e598d97e9dab25a624b0c
|
7
|
+
data.tar.gz: c7897fb48ef323c28770018e4942e617a625aa4e8b118d6b27c3b325e047e046365e21863ace31412eb80f4d9790381b608065cdf53db91e302c86b0f616dbb5
|
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,15 @@
|
|
1
1
|
# Changelog
|
2
2
|
All notable changes to this project will be documented in this file.
|
3
3
|
|
4
|
+
## [0.13.0] - 2018-05-14
|
5
|
+
### Added
|
6
|
+
- Allow configuration block
|
7
|
+
- Add 5 methods for `File` endpoint
|
8
|
+
- Add 5 methods for `Project` endpoint
|
9
|
+
|
10
|
+
### Fixed
|
11
|
+
- invalid param for `getDeals`
|
12
|
+
|
4
13
|
## [0.12.0] - 2018-03-28
|
5
14
|
### Added
|
6
15
|
- New methods related to subscriptions: `get_subscriptions`, `get_all_subscriptions`
|
data/README.md
CHANGED
@@ -30,6 +30,16 @@ teamleader = Teamleader.new('Your API group', 'Your API secret')
|
|
30
30
|
You can find your API key in your Teamleader account, under Settings > API & Webhooks. API access is available for every Teamleader account.
|
31
31
|
Note that you need to be admin to access this page.
|
32
32
|
|
33
|
+
### Configuration
|
34
|
+
For Rails application create a configuration file `config/initializers/teamleader.rb`. You can do this anywhere in your application before you make API calls using the gem.
|
35
|
+
|
36
|
+
```ruby
|
37
|
+
Teamleader.configure do |config|
|
38
|
+
config.api_group = '45678'
|
39
|
+
config.api_secret = '31e56cf3b3c259f56666ba4a6089ee91c3150683611834f7eb2f5a7a4f039a17910f1fa2d65d282e9c344abcf895dad80a89b13af8fe917dfed1e0798c83350c'
|
40
|
+
end
|
41
|
+
```
|
42
|
+
|
33
43
|
## Available methods
|
34
44
|
When a method expects a hash as argument, the hash keys have the same name as described in [Teamleader API documentation](http://apidocs.teamleader.be/).
|
35
45
|
|
@@ -102,6 +112,36 @@ teamleader.get_product({:product_id => 123})
|
|
102
112
|
teamleader.delete_product({:product_id => 123})
|
103
113
|
teamleader.get_products({:amount => 100, :pageno => 0}) # Pagination starts at 0
|
104
114
|
```
|
115
|
+
|
116
|
+
### Projects
|
117
|
+
|
118
|
+
```ruby
|
119
|
+
teamleader.get_project({ :project_id => 123 })
|
120
|
+
teamleader.get_projects_by_client({
|
121
|
+
contact_or_company: 'contact',
|
122
|
+
contact_or_company_id: '123',
|
123
|
+
deep_search: 1
|
124
|
+
})
|
125
|
+
|
126
|
+
teamleader.add_project({
|
127
|
+
:project_name => 123,
|
128
|
+
:project_budget => 300,
|
129
|
+
:project_responsible_user_id => 123,
|
130
|
+
:project_start_date => '12/01/2017',
|
131
|
+
:milestone_title => 'milestone title',
|
132
|
+
:milestone_budget => 200,
|
133
|
+
:milestone_invoiceable => 0,
|
134
|
+
:milestone_due_date => '12/03/2017',
|
135
|
+
:milestone_responsible_user_id => 123
|
136
|
+
})
|
137
|
+
teamleader.update_project({
|
138
|
+
:project_id => 123,
|
139
|
+
:track_changes => 0,
|
140
|
+
:title => "New Project Title"
|
141
|
+
})
|
142
|
+
teamleader.get_projects({ :amount => 50, pageno: 0 })
|
143
|
+
# Pagination starts at 0
|
144
|
+
```
|
105
145
|
### Tickets
|
106
146
|
|
107
147
|
Supported methods are: `add_ticket`, `update_ticket`, `add_ticket_message`, `get_tickets`, `get_ticket`, `get_ticket_messages`, `get_ticket_message`, `get_ticket_cloud_url`.
|
@@ -110,6 +150,30 @@ Supported methods are: `add_ticket`, `update_ticket`, `add_ticket_message`, `get
|
|
110
150
|
|
111
151
|
Supported methods are: `add_note`, `get_notes`
|
112
152
|
|
153
|
+
### Files
|
154
|
+
|
155
|
+
```ruby
|
156
|
+
teamleader.get_file_info({ :file_id => '1236412' })
|
157
|
+
|
158
|
+
teamleader.download_file({ :file_id => '1236412' })
|
159
|
+
|
160
|
+
teamleader.upload_file({
|
161
|
+
:object_type => 'company',
|
162
|
+
:object_id => '1236412',
|
163
|
+
:file_content => 'Base64 encoded version the file',
|
164
|
+
:file_name => 'file.rb'
|
165
|
+
})
|
166
|
+
|
167
|
+
teamleader.delete_file({ :file_id => '1236412' })
|
168
|
+
|
169
|
+
teamleader.get_files({
|
170
|
+
:amount => 100,
|
171
|
+
:pageno => 0,
|
172
|
+
:object_type => 'contact',
|
173
|
+
:object_id => '1234567')
|
174
|
+
# Pagination starts at 0
|
175
|
+
```
|
176
|
+
|
113
177
|
## License
|
114
178
|
The Teamleader GEM is released under the MIT License.
|
115
179
|
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Teamleader
|
2
|
+
module Files
|
3
|
+
def get_files(params={})
|
4
|
+
required_params(%i[amount pageno object_type object_id], params)
|
5
|
+
request '/getFiles.php', params
|
6
|
+
end
|
7
|
+
|
8
|
+
def get_file_info(params={})
|
9
|
+
required_params(%i[file_id], params)
|
10
|
+
request '/getFileInfo.php', params
|
11
|
+
end
|
12
|
+
|
13
|
+
def download_file(params={})
|
14
|
+
required_params(%i[file_id], params)
|
15
|
+
request '/downloadFile.php', params
|
16
|
+
end
|
17
|
+
|
18
|
+
def upload_file(params={})
|
19
|
+
required_params(%i[object_type object_id file_content file_name], params)
|
20
|
+
request '/uploadFile.php', params
|
21
|
+
end
|
22
|
+
|
23
|
+
def delete_file(params={})
|
24
|
+
required_params(%i[file_id], params)
|
25
|
+
request '/deleteFile.php', params
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module Teamleader
|
2
|
+
module Projects
|
3
|
+
def get_project(params={})
|
4
|
+
required_params(%i[project_id], params)
|
5
|
+
request '/getProject.php', params
|
6
|
+
end
|
7
|
+
|
8
|
+
def get_projects(params={})
|
9
|
+
required_params(%i[amount pageno], params)
|
10
|
+
request '/getProjects.php', params
|
11
|
+
end
|
12
|
+
|
13
|
+
def get_projects_by_client(params={})
|
14
|
+
required_params(%i[contact_or_company contact_or_company_id deep_search], params)
|
15
|
+
request '/getProjectsByClient.php', params
|
16
|
+
end
|
17
|
+
|
18
|
+
def add_project(params={})
|
19
|
+
required_params(%i[project_name project_budget project_responsible_user_id project_start_date
|
20
|
+
milestone_title milestone_budget milestone_invoiceable milestone_due_date
|
21
|
+
milestone_responsible_user_id], params)
|
22
|
+
request '/addProject.php', params
|
23
|
+
end
|
24
|
+
|
25
|
+
def update_project(params={})
|
26
|
+
required_params(%i[project_id track_changes title], params)
|
27
|
+
request '/updateProject.php', params
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
data/lib/teamleader/api.rb
CHANGED
@@ -7,6 +7,9 @@ module Teamleader
|
|
7
7
|
API_BASE_URL = "https://app.teamleader.eu/api"
|
8
8
|
|
9
9
|
class Api
|
10
|
+
include Teamleader::Files
|
11
|
+
include Teamleader::Projects
|
12
|
+
|
10
13
|
def initialize(group, secret)
|
11
14
|
@api_group = group
|
12
15
|
@api_secret = secret
|
@@ -98,7 +101,7 @@ module Teamleader
|
|
98
101
|
end
|
99
102
|
|
100
103
|
def get_deals(params={})
|
101
|
-
raise "
|
104
|
+
raise "amount is required" if params[:amount].nil?
|
102
105
|
raise "pageno is required" if params[:pageno].nil?
|
103
106
|
request "/getDeals.php", params
|
104
107
|
end
|
@@ -372,6 +375,7 @@ module Teamleader
|
|
372
375
|
end
|
373
376
|
|
374
377
|
private
|
378
|
+
|
375
379
|
def request(path, data={})
|
376
380
|
headers = {
|
377
381
|
"Content-Type" => "application/x-www-form-urlencoded"
|
@@ -399,5 +403,9 @@ module Teamleader
|
|
399
403
|
raise "HTTP Error #{code}: " + err
|
400
404
|
end
|
401
405
|
end
|
406
|
+
|
407
|
+
def required_params(attributes, params)
|
408
|
+
attributes.each { |attr| raise "#{attr} is required" if params[attr].nil? }
|
409
|
+
end
|
402
410
|
end
|
403
411
|
end
|
data/lib/teamleader/version.rb
CHANGED
data/lib/teamleader.rb
CHANGED
@@ -1,11 +1,23 @@
|
|
1
|
+
require File.expand_path(File.join(File.dirname(__FILE__), 'teamleader/api/files'))
|
2
|
+
require File.expand_path(File.join(File.dirname(__FILE__), 'teamleader/api/projects'))
|
1
3
|
require File.expand_path(File.join(File.dirname(__FILE__), 'teamleader/api'))
|
2
4
|
require File.expand_path(File.join(File.dirname(__FILE__), 'teamleader/extended_api'))
|
3
5
|
require File.expand_path(File.join(File.dirname(__FILE__), 'teamleader/version'))
|
6
|
+
require File.expand_path(File.join(File.dirname(__FILE__), 'teamleader/configuration'))
|
4
7
|
|
5
8
|
module Teamleader
|
6
9
|
extend self
|
10
|
+
attr_accessor :configuration
|
7
11
|
|
8
|
-
def
|
12
|
+
def configuration
|
13
|
+
@configuration ||= Configuration.new
|
14
|
+
end
|
15
|
+
|
16
|
+
def configure
|
17
|
+
yield(configuration)
|
18
|
+
end
|
19
|
+
|
20
|
+
def new(group = Teamleader.configuration.api_group, secret = Teamleader.configuration.api_secret)
|
9
21
|
ExtendedApi.new(group, secret)
|
10
22
|
end
|
11
23
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: teamleader
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.13.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pierre-Yves Orban
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-05-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -113,6 +113,9 @@ files:
|
|
113
113
|
- bin/setup
|
114
114
|
- lib/teamleader.rb
|
115
115
|
- lib/teamleader/api.rb
|
116
|
+
- lib/teamleader/api/files.rb
|
117
|
+
- lib/teamleader/api/projects.rb
|
118
|
+
- lib/teamleader/configuration.rb
|
116
119
|
- lib/teamleader/extended_api.rb
|
117
120
|
- lib/teamleader/version.rb
|
118
121
|
- teamleader.gemspec
|