camper 0.0.7 → 0.1.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/.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' })
|