camper 0.0.7 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -1
- data/.rubocop.yml +10 -0
- data/CHANGELOG.md +62 -1
- data/Gemfile.lock +22 -23
- data/README.md +16 -0
- data/camper.gemspec +1 -0
- data/examples/comments.rb +12 -1
- data/examples/message_types.rb +29 -0
- data/examples/messages.rb +13 -2
- data/examples/people.rb +11 -0
- data/examples/projects.rb +12 -0
- data/examples/recordings.rb +13 -0
- data/examples/todolists.rb +50 -0
- data/examples/todos.rb +21 -6
- data/lib/camper.rb +2 -0
- data/lib/camper/api/comments.rb +87 -0
- data/lib/camper/api/message_board.rb +23 -0
- data/lib/camper/api/message_types.rb +90 -0
- data/lib/camper/api/messages.rb +108 -0
- data/lib/camper/api/people.rb +99 -0
- data/lib/camper/api/projects.rb +120 -0
- data/lib/camper/api/recordings.rb +84 -0
- data/lib/camper/api/resource.rb +6 -4
- data/lib/camper/api/todolists.rb +95 -0
- data/lib/camper/api/todos.rb +176 -0
- data/lib/camper/client.rb +10 -5
- data/lib/camper/core_extensions/object.rb +156 -0
- data/lib/camper/error.rb +8 -0
- data/lib/camper/paginated_response.rb +2 -0
- data/lib/camper/recording_types.rb +22 -0
- data/lib/camper/request.rb +3 -13
- data/lib/camper/url_utils.rb +26 -0
- data/lib/camper/version.rb +1 -1
- metadata +34 -7
- data/lib/camper/api/comment.rb +0 -13
- data/lib/camper/api/message.rb +0 -9
- data/lib/camper/api/project.rb +0 -24
- data/lib/camper/api/todo.rb +0 -80
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a55ed04d219593d0ed46a16a84c1993eab9b51d1cbc6b55386bd23068f002668
|
4
|
+
data.tar.gz: 1bf654df624233c32289b132ee58dabe05158088f4fc970a8b2ebdf7ddfae229
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1a56723911f5687789ae0078d62dd2ffc3ce5df0af7edd844ec2a4942098f26dcec1931a21d9731983af62134d331e6958526d910df68a1959e5794e3fd9a292
|
7
|
+
data.tar.gz: c076b430f753ab8b2021b64e7811b05bfb9e7669a842638df47a7fd2ab6a0536c54ccdc449bbdf81b2a3be86950c3554e11866e45dbd8f2dd612fe18d499f2d5
|
data/.gitignore
CHANGED
data/.rubocop.yml
CHANGED
@@ -7,6 +7,7 @@ AllCops:
|
|
7
7
|
NewCops: enable
|
8
8
|
Exclude:
|
9
9
|
- 'camper.gemspec'
|
10
|
+
- 'lib/camper/core_extensions/object.rb'
|
10
11
|
|
11
12
|
Layout/LineLength:
|
12
13
|
Max: 120
|
@@ -14,6 +15,9 @@ Layout/LineLength:
|
|
14
15
|
- 'lib/camper/client/*'
|
15
16
|
- 'spec/**/*'
|
16
17
|
|
18
|
+
Layout/FirstHashElementIndentation:
|
19
|
+
EnforcedStyle: consistent
|
20
|
+
|
17
21
|
Metrics/BlockLength:
|
18
22
|
Exclude:
|
19
23
|
- 'spec/**/*'
|
@@ -24,6 +28,12 @@ Metrics/AbcSize:
|
|
24
28
|
Style/Documentation:
|
25
29
|
Enabled: false
|
26
30
|
|
31
|
+
Style/AsciiComments:
|
32
|
+
Enabled: false
|
33
|
+
|
34
|
+
Style/ParallelAssignment:
|
35
|
+
Enabled: false
|
36
|
+
|
27
37
|
Style/ClassAndModuleChildren:
|
28
38
|
Exclude:
|
29
39
|
- 'lib/camper/*'
|
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,67 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
-
## [
|
3
|
+
## [Unreleased](https://github.com/renehernandez/camper/tree/HEAD)
|
4
|
+
|
5
|
+
**Implemented enhancements:**
|
6
|
+
|
7
|
+
- Complete messages and message types APIs [\#66](https://github.com/renehernandez/camper/pull/66)
|
8
|
+
- Complete comments api [\#65](https://github.com/renehernandez/camper/pull/65)
|
9
|
+
|
10
|
+
**Merged pull requests:**
|
11
|
+
|
12
|
+
- Refactor check for valid basecamp url [\#67](https://github.com/renehernandez/camper/pull/67)
|
13
|
+
- Bump rspec from 3.9.0 to 3.10.0 [\#64](https://github.com/renehernandez/camper/pull/64)
|
14
|
+
- Rewrite API modules to use module nesting [\#63](https://github.com/renehernandez/camper/pull/63)
|
15
|
+
- Bump rubocop from 1.0.0 to 1.1.0 [\#48](https://github.com/renehernandez/camper/pull/48)
|
16
|
+
|
17
|
+
## [v0.0.11](https://github.com/renehernandez/camper/tree/v0.0.11) (2020-11-01)
|
18
|
+
|
19
|
+
**Implemented enhancements:**
|
20
|
+
|
21
|
+
- Implement trash\_todo endpoint [\#58](https://github.com/renehernandez/camper/issues/58)
|
22
|
+
- Implement trash\_todolist endpoint [\#57](https://github.com/renehernandez/camper/issues/57)
|
23
|
+
- To-do API is missing update\_todo endpoint [\#49](https://github.com/renehernandez/camper/issues/49)
|
24
|
+
- update\_todolist endpoint now sends the current description if none is specified [\#62](https://github.com/renehernandez/camper/pull/62)
|
25
|
+
- Add trash\_todolist endpoint [\#61](https://github.com/renehernandez/camper/pull/61)
|
26
|
+
- Add trash\_todo endpoint implementation [\#60](https://github.com/renehernandez/camper/pull/60)
|
27
|
+
- Add recordings api [\#53](https://github.com/renehernandez/camper/pull/53)
|
28
|
+
- Add update\_todo implementation [\#52](https://github.com/renehernandez/camper/pull/52)
|
29
|
+
|
30
|
+
**Fixed bugs:**
|
31
|
+
|
32
|
+
- return tag should mention PaginatedResponse instead of Array [\#56](https://github.com/renehernandez/camper/issues/56)
|
33
|
+
- Get endpoints params need to be set under query field [\#54](https://github.com/renehernandez/camper/issues/54)
|
34
|
+
- Update endpoints documentation to use PaginatedResponse [\#59](https://github.com/renehernandez/camper/pull/59)
|
35
|
+
- Fix query string generation in get endpoints [\#55](https://github.com/renehernandez/camper/pull/55)
|
36
|
+
|
37
|
+
**Documentation:**
|
38
|
+
|
39
|
+
- update\_todolist needs to call out that description will be cleared if not specified [\#50](https://github.com/renehernandez/camper/issues/50)
|
40
|
+
|
41
|
+
## [v0.0.10](https://github.com/renehernandez/camper/tree/v0.0.10) (2020-10-30)
|
42
|
+
|
43
|
+
**Implemented enhancements:**
|
44
|
+
|
45
|
+
- Complete projects api [\#51](https://github.com/renehernandez/camper/pull/51)
|
46
|
+
|
47
|
+
## [v0.0.9](https://github.com/renehernandez/camper/tree/v0.0.9) (2020-10-28)
|
48
|
+
|
49
|
+
**Implemented enhancements:**
|
50
|
+
|
51
|
+
- Split todos and todolists APIs [\#47](https://github.com/renehernandez/camper/pull/47)
|
52
|
+
|
53
|
+
**Merged pull requests:**
|
54
|
+
|
55
|
+
- Bump rubocop from 0.92.0 to 1.0.0 [\#44](https://github.com/renehernandez/camper/pull/44)
|
56
|
+
|
57
|
+
## [v0.0.8](https://github.com/renehernandez/camper/tree/v0.0.8) (2020-10-27)
|
58
|
+
|
59
|
+
**Implemented enhancements:**
|
60
|
+
|
61
|
+
- Add people API [\#46](https://github.com/renehernandez/camper/pull/46)
|
62
|
+
- Raise error if resource can't be commented [\#45](https://github.com/renehernandez/camper/pull/45)
|
63
|
+
|
64
|
+
## [v0.0.7](https://github.com/renehernandez/camper/tree/v0.0.7) (2020-10-04)
|
4
65
|
|
5
66
|
**Implemented enhancements:**
|
6
67
|
|
data/Gemfile.lock
CHANGED
@@ -1,14 +1,15 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
camper (0.0.
|
4
|
+
camper (0.0.11)
|
5
|
+
concurrent-ruby (~> 1.1)
|
5
6
|
httparty (~> 0.18)
|
6
7
|
rack-oauth2 (~> 1.14)
|
7
8
|
|
8
9
|
GEM
|
9
10
|
remote: https://rubygems.org/
|
10
11
|
specs:
|
11
|
-
activesupport (6.0.3.
|
12
|
+
activesupport (6.0.3.4)
|
12
13
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
13
14
|
i18n (>= 0.7, < 2)
|
14
15
|
minitest (~> 5.1)
|
@@ -20,7 +21,7 @@ GEM
|
|
20
21
|
bindata (2.4.8)
|
21
22
|
coderay (1.1.3)
|
22
23
|
concurrent-ruby (1.1.7)
|
23
|
-
diff-lcs (1.
|
24
|
+
diff-lcs (1.4.4)
|
24
25
|
httparty (0.18.1)
|
25
26
|
mime-types (~> 3.0)
|
26
27
|
multi_xml (>= 0.5.2)
|
@@ -38,7 +39,7 @@ GEM
|
|
38
39
|
minitest (5.14.2)
|
39
40
|
multi_xml (0.6.0)
|
40
41
|
parallel (1.19.2)
|
41
|
-
parser (2.7.
|
42
|
+
parser (2.7.2.0)
|
42
43
|
ast (~> 2.4.1)
|
43
44
|
pry (0.13.1)
|
44
45
|
coderay (~> 1.1)
|
@@ -52,44 +53,42 @@ GEM
|
|
52
53
|
rack (>= 2.1.0)
|
53
54
|
rainbow (3.0.0)
|
54
55
|
rake (13.0.1)
|
55
|
-
regexp_parser (1.8.
|
56
|
+
regexp_parser (1.8.2)
|
56
57
|
rexml (3.2.4)
|
57
|
-
rspec (3.
|
58
|
-
rspec-core (~> 3.
|
59
|
-
rspec-expectations (~> 3.
|
60
|
-
rspec-mocks (~> 3.
|
61
|
-
rspec-core (3.
|
62
|
-
rspec-support (~> 3.
|
63
|
-
rspec-expectations (3.
|
58
|
+
rspec (3.10.0)
|
59
|
+
rspec-core (~> 3.10.0)
|
60
|
+
rspec-expectations (~> 3.10.0)
|
61
|
+
rspec-mocks (~> 3.10.0)
|
62
|
+
rspec-core (3.10.0)
|
63
|
+
rspec-support (~> 3.10.0)
|
64
|
+
rspec-expectations (3.10.0)
|
64
65
|
diff-lcs (>= 1.2.0, < 2.0)
|
65
|
-
rspec-support (~> 3.
|
66
|
-
rspec-mocks (3.
|
66
|
+
rspec-support (~> 3.10.0)
|
67
|
+
rspec-mocks (3.10.0)
|
67
68
|
diff-lcs (>= 1.2.0, < 2.0)
|
68
|
-
rspec-support (~> 3.
|
69
|
-
rspec-support (3.
|
70
|
-
rubocop (
|
69
|
+
rspec-support (~> 3.10.0)
|
70
|
+
rspec-support (3.10.0)
|
71
|
+
rubocop (1.1.0)
|
71
72
|
parallel (~> 1.10)
|
72
73
|
parser (>= 2.7.1.5)
|
73
74
|
rainbow (>= 2.2.2, < 4.0)
|
74
|
-
regexp_parser (>= 1.
|
75
|
+
regexp_parser (>= 1.8)
|
75
76
|
rexml
|
76
|
-
rubocop-ast (>= 0.
|
77
|
+
rubocop-ast (>= 1.0.1)
|
77
78
|
ruby-progressbar (~> 1.7)
|
78
79
|
unicode-display_width (>= 1.4.0, < 2.0)
|
79
|
-
rubocop-ast (
|
80
|
+
rubocop-ast (1.1.0)
|
80
81
|
parser (>= 2.7.1.5)
|
81
|
-
strscan (>= 1.0.0)
|
82
82
|
rubocop-performance (1.8.1)
|
83
83
|
rubocop (>= 0.87.0)
|
84
84
|
rubocop-ast (>= 0.4.0)
|
85
85
|
ruby-progressbar (1.10.1)
|
86
|
-
strscan (1.0.3)
|
87
86
|
thread_safe (0.3.6)
|
88
87
|
tzinfo (1.2.7)
|
89
88
|
thread_safe (~> 0.1)
|
90
89
|
unicode-display_width (1.7.0)
|
91
90
|
yard (0.9.25)
|
92
|
-
zeitwerk (2.4.
|
91
|
+
zeitwerk (2.4.1)
|
93
92
|
|
94
93
|
PLATFORMS
|
95
94
|
ruby
|
data/README.md
CHANGED
@@ -24,6 +24,22 @@ Or install it yourself as:
|
|
24
24
|
$ gem install camper
|
25
25
|
```
|
26
26
|
|
27
|
+
## Status of API endpoints
|
28
|
+
|
29
|
+
The up-to-date list of Basecamp API endpoints can be found at [here](https://github.com/basecamp/bc3-api#api-endpoints).
|
30
|
+
|
31
|
+
Currently, Camper supports the following endpoints:
|
32
|
+
|
33
|
+
* [Comments](https://github.com/basecamp/bc3-api/blob/master/sections/comments.md): Implementation at [comments.rb](https://github.com/renehernandez/camper/blob/main/lib/camper/api/comments.rb) (Complete)
|
34
|
+
* [Message Types](https://github.com/basecamp/bc3-api/blob/master/sections/message_types.md): Implementation at [messages.rb](https://github.com/renehernandez/camper/blob/main/lib/camper/api/message_types.rb) (Complete)
|
35
|
+
* [Message Boards](https://github.com/basecamp/bc3-api/blob/master/sections/message_boards.md): Implementation at [message_boards.rb](https://github.com/renehernandez/camper/blob/main/lib/camper/api/message_boards.rb) (Complete)
|
36
|
+
* [Messages](https://github.com/basecamp/bc3-api/blob/master/sections/messages.md): Implementation at [messages.rb](https://github.com/renehernandez/camper/blob/main/lib/camper/api/messages.rb) (Complete)
|
37
|
+
* [People](https://github.com/basecamp/bc3-api/blob/master/sections/people.md): Implementation at [people.rb](https://github.com/renehernandez/camper/blob/main/lib/camper/api/people.rb) (Complete)
|
38
|
+
* [Projects](https://github.com/basecamp/bc3-api/blob/master/sections/projects.md): Implementation at [projects.rb](https://github.com/renehernandez/camper/blob/main/lib/camper/api/projects.rb) (Complete)
|
39
|
+
* [Recordings](https://github.com/basecamp/bc3-api/blob/master/sections/recordings.md): Implementation at [recordings.rb](https://github.com/renehernandez/camper/blob/main/lib/camper/api/recordings.rb) (Complete)
|
40
|
+
* [To-do list](https://github.com/basecamp/bc3-api/blob/master/sections/todolists.md): Implementation at [todolists.rb](https://github.com/renehernandez/camper/blob/main/lib/camper/api/todolists.rb) (Complete)
|
41
|
+
* [To-dos](https://github.com/basecamp/bc3-api/blob/master/sections/todos.md): Implementation at [todos.rb](https://github.com/renehernandez/camper/blob/main/lib/camper/api/todos.rb) (Complete)
|
42
|
+
|
27
43
|
## Usage
|
28
44
|
|
29
45
|
### Configuration
|
data/camper.gemspec
CHANGED
@@ -28,6 +28,7 @@ Gem::Specification.new do |spec|
|
|
28
28
|
|
29
29
|
spec.add_dependency 'httparty', '~> 0.18'
|
30
30
|
spec.add_dependency 'rack-oauth2', '~> 1.14'
|
31
|
+
spec.add_dependency 'concurrent-ruby', '~> 1.1'
|
31
32
|
|
32
33
|
spec.add_development_dependency 'rake', '~> 13.0'
|
33
34
|
spec.add_development_dependency 'rspec', '~> 3.9'
|
data/examples/comments.rb
CHANGED
@@ -25,11 +25,22 @@ projects.auto_paginate do |p|
|
|
25
25
|
# Adds a comment on the first todolist
|
26
26
|
list = client.todolists(todoset).first
|
27
27
|
puts "Todolist: #{list.title}, can be commented on: #{list.can_be_commented?}"
|
28
|
-
|
28
|
+
|
29
|
+
puts 'Create a new comment'
|
30
|
+
new_comment = client.create_comment(list, 'New temporary comment')
|
29
31
|
comments = client.comments(list)
|
30
32
|
idx = 0
|
31
33
|
comments.auto_paginate do |c|
|
32
34
|
puts "Comment #{idx} content: #{c.content}"
|
33
35
|
idx += 1
|
34
36
|
end
|
37
|
+
|
38
|
+
puts 'Get single comment'
|
39
|
+
single_comment = client.comment(list, new_comment.id)
|
40
|
+
|
41
|
+
puts 'Update comment'
|
42
|
+
client.update_comment(single_comment, 'New content')
|
43
|
+
|
44
|
+
puts 'Delete comment'
|
45
|
+
client.trash_comment(single_comment)
|
35
46
|
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'camper'
|
4
|
+
|
5
|
+
client = Camper.client
|
6
|
+
|
7
|
+
project = client.projects.first
|
8
|
+
|
9
|
+
puts 'List all messages types'
|
10
|
+
client.message_types(project).auto_paginate do |type|
|
11
|
+
puts "Name: #{type.name}; Icon: #{type.icon}"
|
12
|
+
end
|
13
|
+
|
14
|
+
puts 'Create new message type'
|
15
|
+
type = client.create_message_type(project, 'Farewell', '👋')
|
16
|
+
puts "Message Type:\n#{type.inspect}"
|
17
|
+
|
18
|
+
puts 'Update message type name'
|
19
|
+
type = client.update_message_type(project, type, name: 'Bye bye')
|
20
|
+
puts "Message Type:\n#{type.inspect}"
|
21
|
+
|
22
|
+
puts 'Update message type icon'
|
23
|
+
type = client.update_message_type(project, type, icon: '🙌')
|
24
|
+
puts "Message Type:\n#{type.inspect}"
|
25
|
+
|
26
|
+
puts 'Delete message type'
|
27
|
+
client.delete_message_type(project, type)
|
28
|
+
|
29
|
+
|
data/examples/messages.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'camper'
|
2
4
|
|
3
5
|
client = Camper.configure do |config|
|
@@ -16,9 +18,18 @@ projects.auto_paginate do |p|
|
|
16
18
|
message_board = client.message_board(p)
|
17
19
|
puts "Message Board: #{message_board.title}"
|
18
20
|
|
21
|
+
puts 'List messages using the message board'
|
19
22
|
messages = client.messages(message_board)
|
20
23
|
|
21
24
|
messages.auto_paginate do |msg|
|
22
|
-
puts msg.
|
25
|
+
puts "Title: #{msg.title}; Content: #{msg.content}"
|
26
|
+
end
|
27
|
+
|
28
|
+
puts 'List messages using the project'
|
29
|
+
messages = client.messages(p)
|
30
|
+
|
31
|
+
messages.auto_paginate do |msg|
|
32
|
+
puts "Title: #{msg.title}; Content: #{msg.content}"
|
33
|
+
puts "Message:\n#{msg.inspect}"
|
23
34
|
end
|
24
|
-
end
|
35
|
+
end
|
data/examples/people.rb
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'camper'
|
4
|
+
|
5
|
+
client = Camper.client
|
6
|
+
|
7
|
+
project = client.project(ENV['PROJECT_ID'])
|
8
|
+
|
9
|
+
puts "Project name: #{project.name}"
|
10
|
+
puts "Project description: #{project.description}"
|
11
|
+
|
12
|
+
client.update_project(project, name: 'Hermes Testing', description: 'Hermes integration testing')
|
@@ -0,0 +1,50 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'camper'
|
4
|
+
|
5
|
+
client = Camper.client
|
6
|
+
|
7
|
+
projects = client.projects
|
8
|
+
|
9
|
+
projects.auto_paginate do |p|
|
10
|
+
puts "Project: #{p.name}"
|
11
|
+
|
12
|
+
todoset = client.todoset(p)
|
13
|
+
|
14
|
+
puts "Ratio of completed Todos in Todoset: #{todoset.completed_ratio}"
|
15
|
+
|
16
|
+
puts 'Listing active todolists'
|
17
|
+
client.todolists(todoset).auto_paginate(5) do |list|
|
18
|
+
puts "Todolist: #{list.title}"
|
19
|
+
|
20
|
+
client.todos(list).auto_paginate do |todo|
|
21
|
+
puts "Todo: #{todo.title}"
|
22
|
+
puts "Get Todo using project id: #{client.todo(p.id, todo.id).title}"
|
23
|
+
puts "Get Todo using project resource: #{client.todo(p, todo.id).title}"
|
24
|
+
puts "Get Todo using todolist resource: #{client.todo(list, todo.id).title}"
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
begin
|
29
|
+
client.todolists(p)
|
30
|
+
rescue Camper::Error::InvalidParameter, NoMethodError
|
31
|
+
puts 'Cannot use a project p to get the todolists'
|
32
|
+
end
|
33
|
+
|
34
|
+
puts 'Listing archived todolists'
|
35
|
+
client.todolists(todoset, status: :archived).auto_paginate do |list|
|
36
|
+
client.todos(list).auto_paginate do |todo|
|
37
|
+
puts "Todo: #{todo.title}"
|
38
|
+
puts "Can be commented: #{todo.can_be_commented?}"
|
39
|
+
puts "It's completed: #{todo.completed}"
|
40
|
+
|
41
|
+
client.complete_todo(todo)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
puts 'Create a new todolist'
|
46
|
+
new_list = client.create_todolist(todoset, 'Temporary list')
|
47
|
+
puts "Todolist title: #{new_list.title}"
|
48
|
+
puts 'Trash list'
|
49
|
+
client.trash_todolist(new_list)
|
50
|
+
end
|
data/examples/todos.rb
CHANGED
@@ -10,18 +10,33 @@ end
|
|
10
10
|
|
11
11
|
projects = client.projects
|
12
12
|
|
13
|
-
|
14
|
-
puts "Project: #{p.inspect}"
|
13
|
+
selected_todo = nil
|
15
14
|
|
16
|
-
|
15
|
+
projects.auto_paginate do |p|
|
16
|
+
puts "Project: #{p.name}"
|
17
17
|
|
18
18
|
todoset = client.todoset(p)
|
19
19
|
|
20
|
+
puts "Ratio of completed Todos in Todoset: #{todoset.completed_ratio}"
|
21
|
+
|
20
22
|
client.todolists(todoset).auto_paginate(5) do |list|
|
21
23
|
puts "Todolist: #{list.title}"
|
22
24
|
|
23
|
-
client.todos(list).auto_paginate do |todo|
|
24
|
-
puts todo.
|
25
|
+
client.todos(list).auto_paginate(1) do |todo|
|
26
|
+
puts "Todo: #{todo.title}"
|
27
|
+
puts "Get Todo using project id: #{client.todo(p.id, todo.id).title}"
|
28
|
+
puts "Get Todo using project resource: #{client.todo(p, todo.id).title}"
|
29
|
+
puts "Get Todo using todolist resource: #{client.todo(list, todo.id).title}"
|
30
|
+
|
31
|
+
selected_todo = todo
|
25
32
|
end
|
33
|
+
|
34
|
+
puts 'Create new todo'
|
35
|
+
new_todo = client.create_todo(list, 'new todo')
|
36
|
+
puts "New Todo title: #{new_todo.title}"
|
37
|
+
puts 'Trash new todo'
|
38
|
+
client.trash_todo(new_todo)
|
26
39
|
end
|
27
|
-
end
|
40
|
+
end
|
41
|
+
|
42
|
+
client.update_todo(selected_todo, { description: 'New Description' })
|