troo 0.0.1 → 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 +4 -4
- data/.gitignore +7 -0
- data/.ruby-version +1 -0
- data/Gemfile +0 -1
- data/Guardfile +6 -0
- data/LICENSE.txt +1 -0
- data/README.md +46 -3
- data/Rakefile +11 -0
- data/bin/troo +12 -0
- data/configuration.yml.example +7 -0
- data/features/add_board.feature +1 -0
- data/features/add_card.feature +1 -0
- data/features/add_comment.feature +1 -0
- data/features/add_list.feature +1 -0
- data/features/cleanup.feature +0 -0
- data/features/move_card_to_list.feature +1 -0
- data/features/refresh.feature +1 -0
- data/features/set_default.feature +7 -0
- data/features/show_board.feature +1 -0
- data/features/show_boards.feature +1 -0
- data/features/show_card.feature +1 -0
- data/features/show_comments.feature +1 -0
- data/features/show_list.feature +1 -0
- data/features/status.feature +1 -0
- data/features/step_definitions/troo_steps.rb +0 -0
- data/features/support/env.rb +31 -0
- data/features/troo.feature +1 -0
- data/features/version.feature +8 -0
- data/lib/troo.rb +24 -2
- data/lib/troo/actions/create_board.rb +43 -0
- data/lib/troo/actions/create_card.rb +43 -0
- data/lib/troo/actions/create_comment.rb +44 -0
- data/lib/troo/actions/create_list.rb +41 -0
- data/lib/troo/actions/move_card.rb +36 -0
- data/lib/troo/actions/refresh_all.rb +79 -0
- data/lib/troo/actions/set_default.rb +35 -0
- data/lib/troo/cli/add_cli.rb +83 -0
- data/lib/troo/cli/default_cli.rb +37 -0
- data/lib/troo/cli/main_cli.rb +130 -0
- data/lib/troo/cli/show_cli.rb +83 -0
- data/lib/troo/cli/thor_fixes.rb +9 -0
- data/lib/troo/display/board_decorator.rb +58 -0
- data/lib/troo/display/board_presenter.rb +65 -0
- data/lib/troo/display/card_decorator.rb +105 -0
- data/lib/troo/display/card_presenter.rb +27 -0
- data/lib/troo/display/comment_decorator.rb +32 -0
- data/lib/troo/display/comment_presenter.rb +35 -0
- data/lib/troo/display/decorator_helpers.rb +76 -0
- data/lib/troo/display/list_decorator.rb +53 -0
- data/lib/troo/display/list_presenter.rb +43 -0
- data/lib/troo/display/member_decorator.rb +24 -0
- data/lib/troo/display/member_presenter.rb +59 -0
- data/lib/troo/external/board.rb +49 -0
- data/lib/troo/external/board_adaptor.rb +43 -0
- data/lib/troo/external/card.rb +70 -0
- data/lib/troo/external/card_adaptor.rb +78 -0
- data/lib/troo/external/comment.rb +64 -0
- data/lib/troo/external/comment_adaptor.rb +53 -0
- data/lib/troo/external/list.rb +58 -0
- data/lib/troo/external/list_adaptor.rb +48 -0
- data/lib/troo/external/member.rb +52 -0
- data/lib/troo/external/member_adaptor.rb +63 -0
- data/lib/troo/models/board.rb +26 -0
- data/lib/troo/models/board_persistence.rb +53 -0
- data/lib/troo/models/board_retrieval.rb +45 -0
- data/lib/troo/models/card.rb +54 -0
- data/lib/troo/models/card_persistence.rb +53 -0
- data/lib/troo/models/card_retrieval.rb +49 -0
- data/lib/troo/models/comment.rb +32 -0
- data/lib/troo/models/comment_persistence.rb +53 -0
- data/lib/troo/models/comment_retrieval.rb +32 -0
- data/lib/troo/models/list.rb +27 -0
- data/lib/troo/models/list_persistence.rb +53 -0
- data/lib/troo/models/list_retrieval.rb +45 -0
- data/lib/troo/models/member.rb +18 -0
- data/lib/troo/models/member_persistence.rb +53 -0
- data/lib/troo/models/member_retrieval.rb +36 -0
- data/lib/troo/models/model_helpers.rb +32 -0
- data/lib/troo/models/refresh.rb +23 -0
- data/lib/troo/presentation/template.rb +31 -0
- data/lib/troo/troo.rb +69 -0
- data/lib/troo/version.rb +2 -1
- data/lib/troo/views/card.erb +17 -0
- data/lib/troo/views/comment.erb +3 -0
- data/logs/.gitkeep +0 -0
- data/test/cassettes/board_by_id.yml +59 -0
- data/test/cassettes/boards_all.yml +118 -0
- data/test/cassettes/card_by_card_id.yml +58 -0
- data/test/cassettes/cards_by_board_id.yml +117 -0
- data/test/cassettes/cards_by_list_id.yml +114 -0
- data/test/cassettes/comments_by_board_id.yml +122 -0
- data/test/cassettes/comments_by_card_id.yml +114 -0
- data/test/cassettes/comments_by_list_id.yml +109 -0
- data/test/cassettes/create_board.yml +62 -0
- data/test/cassettes/create_card.yml +63 -0
- data/test/cassettes/create_comment.yml +67 -0
- data/test/cassettes/create_list.yml +60 -0
- data/test/cassettes/list_by_list_id.yml +56 -0
- data/test/cassettes/lists_by_board_id.yml +118 -0
- data/test/cassettes/member_by_member_id.yml +60 -0
- data/test/cassettes/members_by_board_id.yml +109 -0
- data/test/cassettes/move_card.yml +61 -0
- data/test/lib/troo/actions/create_board_test.rb +47 -0
- data/test/lib/troo/actions/create_card_test.rb +54 -0
- data/test/lib/troo/actions/create_comment_test.rb +49 -0
- data/test/lib/troo/actions/create_list_test.rb +49 -0
- data/test/lib/troo/actions/move_card_test.rb +46 -0
- data/test/lib/troo/actions/refresh_all_test.rb +68 -0
- data/test/lib/troo/actions/set_default_test.rb +44 -0
- data/test/lib/troo/cli/add_cli_test.rb +216 -0
- data/test/lib/troo/cli/default_cli_test.rb +79 -0
- data/test/lib/troo/cli/main_cli_test.rb +232 -0
- data/test/lib/troo/cli/show_cli_test.rb +221 -0
- data/test/lib/troo/cli/thor_fixes_test.rb +21 -0
- data/test/lib/troo/display/board_decorator_test.rb +126 -0
- data/test/lib/troo/display/board_presenter_test.rb +77 -0
- data/test/lib/troo/display/card_decorator_test.rb +221 -0
- data/test/lib/troo/display/card_presenter_test.rb +38 -0
- data/test/lib/troo/display/comment_decorator_test.rb +65 -0
- data/test/lib/troo/display/comment_presenter_test.rb +47 -0
- data/test/lib/troo/display/decorator_helpers_test.rb +7 -0
- data/test/lib/troo/display/list_decorator_test.rb +98 -0
- data/test/lib/troo/display/list_presenter_test.rb +48 -0
- data/test/lib/troo/display/member_decorator_test.rb +42 -0
- data/test/lib/troo/display/member_presenter_test.rb +70 -0
- data/test/lib/troo/external/board_adaptor_test.rb +36 -0
- data/test/lib/troo/external/board_test.rb +69 -0
- data/test/lib/troo/external/card_adaptor_test.rb +50 -0
- data/test/lib/troo/external/card_test.rb +108 -0
- data/test/lib/troo/external/comment_adaptor_test.rb +41 -0
- data/test/lib/troo/external/comment_test.rb +88 -0
- data/test/lib/troo/external/list_adaptor_test.rb +38 -0
- data/test/lib/troo/external/list_test.rb +65 -0
- data/test/lib/troo/external/member_adaptor_test.rb +44 -0
- data/test/lib/troo/external/member_test.rb +65 -0
- data/test/lib/troo/models/board_persistence_test.rb +61 -0
- data/test/lib/troo/models/board_retrieval_test.rb +93 -0
- data/test/lib/troo/models/board_test.rb +50 -0
- data/test/lib/troo/models/card_persistence_test.rb +60 -0
- data/test/lib/troo/models/card_retrieval_test.rb +101 -0
- data/test/lib/troo/models/card_test.rb +102 -0
- data/test/lib/troo/models/comment_persistence_test.rb +65 -0
- data/test/lib/troo/models/comment_retrieval_test.rb +46 -0
- data/test/lib/troo/models/comment_test.rb +59 -0
- data/test/lib/troo/models/list_persistence_test.rb +60 -0
- data/test/lib/troo/models/list_retrieval_test.rb +93 -0
- data/test/lib/troo/models/list_test.rb +53 -0
- data/test/lib/troo/models/member_persistence_test.rb +59 -0
- data/test/lib/troo/models/member_retrieval_test.rb +58 -0
- data/test/lib/troo/models/member_test.rb +44 -0
- data/test/lib/troo/models/model_helpers_test.rb +103 -0
- data/test/lib/troo/models/refresh_test.rb +45 -0
- data/test/lib/troo/presentation/template_test.rb +40 -0
- data/test/support/fabrication.rb +56 -0
- data/test/support/template.erb +3 -0
- data/test/support/vcr_setup.rb +36 -0
- data/test/test_helper.rb +30 -0
- data/troo.gemspec +24 -5
- metadata +501 -23
@@ -0,0 +1,43 @@
|
|
1
|
+
module Troo
|
2
|
+
class ListPresenter
|
3
|
+
class << self
|
4
|
+
def render_show(list, options = {})
|
5
|
+
new(list, options).render_show
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
include DecoratorHelpers
|
10
|
+
|
11
|
+
def initialize(list, options = {})
|
12
|
+
@list = list
|
13
|
+
@options = options
|
14
|
+
end
|
15
|
+
|
16
|
+
def render_show
|
17
|
+
spacing do
|
18
|
+
print BoardDecorator.new(board).short
|
19
|
+
|
20
|
+
indent do
|
21
|
+
print ListDecorator.new(list).short
|
22
|
+
|
23
|
+
if list.cards.any?
|
24
|
+
list.cards.each do |card|
|
25
|
+
indent do
|
26
|
+
print CardDecorator.new(card).short
|
27
|
+
end
|
28
|
+
end
|
29
|
+
else
|
30
|
+
print_error "No cards were found."
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
private
|
37
|
+
attr_reader :list
|
38
|
+
|
39
|
+
def board
|
40
|
+
list.board
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module Troo
|
2
|
+
class MemberDecorator
|
3
|
+
include DecoratorHelpers
|
4
|
+
|
5
|
+
def initialize(member)
|
6
|
+
@member = member
|
7
|
+
end
|
8
|
+
|
9
|
+
def username
|
10
|
+
["@", member.username].join
|
11
|
+
end
|
12
|
+
|
13
|
+
def name
|
14
|
+
member.full_name
|
15
|
+
end
|
16
|
+
|
17
|
+
def initials
|
18
|
+
member.initials
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
attr_reader :member
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
module Troo
|
2
|
+
class MemberPresenter
|
3
|
+
class << self
|
4
|
+
def render_show(card, options = {})
|
5
|
+
new(card, options).render_show
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
include DecoratorHelpers
|
10
|
+
|
11
|
+
def initialize(card, options = {})
|
12
|
+
@card = card
|
13
|
+
@options = options
|
14
|
+
end
|
15
|
+
|
16
|
+
def render_show
|
17
|
+
decorated_members
|
18
|
+
end
|
19
|
+
|
20
|
+
private
|
21
|
+
attr_reader :card
|
22
|
+
|
23
|
+
def decorated_members
|
24
|
+
if one_member?
|
25
|
+
members.first
|
26
|
+
elsif two_members?
|
27
|
+
members.join(" and ")
|
28
|
+
elsif many_members?
|
29
|
+
word_wrap([all_but_last_member, last_member].join(" and "))
|
30
|
+
else
|
31
|
+
"No members have been assigned."
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def members
|
36
|
+
@members ||= card.members.map { |member| MemberDecorator.new(member).username }
|
37
|
+
end
|
38
|
+
|
39
|
+
def one_member?
|
40
|
+
members.size == 1
|
41
|
+
end
|
42
|
+
|
43
|
+
def two_members?
|
44
|
+
members.size == 2
|
45
|
+
end
|
46
|
+
|
47
|
+
def many_members?
|
48
|
+
members.size > 2
|
49
|
+
end
|
50
|
+
|
51
|
+
def all_but_last_member
|
52
|
+
members[0...-1].join(", ")
|
53
|
+
end
|
54
|
+
|
55
|
+
def last_member
|
56
|
+
members[-1]
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
module Troo
|
2
|
+
module External
|
3
|
+
class Board
|
4
|
+
class << self
|
5
|
+
def fetch(external_id, options = {})
|
6
|
+
new(external_id, options).fetch_by_external_id.map do |resource|
|
7
|
+
Troo::BoardPersistence.for(resource) unless closed?(resource)
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
def fetch_all
|
12
|
+
new.fetch_all.map do |resource|
|
13
|
+
Troo::BoardPersistence.for(resource) unless closed?(resource)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
private
|
18
|
+
|
19
|
+
def closed?(resource)
|
20
|
+
resource.nil? || resource.closed?
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def initialize(external_id = nil, options = {})
|
25
|
+
@external_id = external_id
|
26
|
+
@options = options
|
27
|
+
end
|
28
|
+
|
29
|
+
def fetch_by_external_id
|
30
|
+
[Trello::Board.find(external_id)]
|
31
|
+
rescue Trello::InvalidAccessToken
|
32
|
+
raise Troo::InvalidAccessToken
|
33
|
+
rescue Trello::Error
|
34
|
+
[]
|
35
|
+
end
|
36
|
+
|
37
|
+
def fetch_all
|
38
|
+
Trello::Board.all
|
39
|
+
rescue Trello::InvalidAccessToken
|
40
|
+
raise Troo::InvalidAccessToken
|
41
|
+
rescue Trello::Error
|
42
|
+
[]
|
43
|
+
end
|
44
|
+
|
45
|
+
private
|
46
|
+
attr_reader :external_id
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
module Troo
|
2
|
+
module External
|
3
|
+
class BoardAdaptor
|
4
|
+
class << self
|
5
|
+
def adapt(resource)
|
6
|
+
new(resource).adapted
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
def initialize(resource)
|
11
|
+
@resource = resource
|
12
|
+
end
|
13
|
+
|
14
|
+
def adapted
|
15
|
+
{
|
16
|
+
external_board_id: external_board_id,
|
17
|
+
name: name,
|
18
|
+
description: description,
|
19
|
+
closed: closed,
|
20
|
+
}
|
21
|
+
end
|
22
|
+
|
23
|
+
private
|
24
|
+
attr_reader :resource
|
25
|
+
|
26
|
+
def external_board_id
|
27
|
+
resource.id
|
28
|
+
end
|
29
|
+
|
30
|
+
def name
|
31
|
+
resource.name
|
32
|
+
end
|
33
|
+
|
34
|
+
def description
|
35
|
+
resource.description
|
36
|
+
end
|
37
|
+
|
38
|
+
def closed
|
39
|
+
resource.closed.to_s
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,70 @@
|
|
1
|
+
module Troo
|
2
|
+
module External
|
3
|
+
class Card
|
4
|
+
class << self
|
5
|
+
def fetch(external_id, options = {})
|
6
|
+
new(external_id, options).fetch_by_external_id.map do |resource|
|
7
|
+
unless closed?(resource)
|
8
|
+
Troo::External::Comment.fetch(resource.id, { mode: :card }) if options.fetch(:comments, true)
|
9
|
+
Troo::CardPersistence.for(resource)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def closed?(resource)
|
17
|
+
resource.nil? || resource.closed?
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def initialize(external_id, options = {})
|
22
|
+
@external_id = external_id
|
23
|
+
@options = options
|
24
|
+
end
|
25
|
+
|
26
|
+
def fetch_by_external_id
|
27
|
+
case options.fetch(:mode)
|
28
|
+
when :board then board_mode
|
29
|
+
when :list then list_mode
|
30
|
+
when :card then card_mode
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
private
|
35
|
+
attr_reader :external_id
|
36
|
+
|
37
|
+
def options
|
38
|
+
defaults.merge!(@options)
|
39
|
+
end
|
40
|
+
|
41
|
+
def defaults
|
42
|
+
{ comments: true, mode: :board }
|
43
|
+
end
|
44
|
+
|
45
|
+
def board_mode
|
46
|
+
Trello::Board.find(external_id).cards
|
47
|
+
rescue Trello::InvalidAccessToken
|
48
|
+
raise Troo::InvalidAccessToken
|
49
|
+
rescue Trello::Error
|
50
|
+
[]
|
51
|
+
end
|
52
|
+
|
53
|
+
def list_mode
|
54
|
+
Trello::List.find(external_id).cards
|
55
|
+
rescue Trello::InvalidAccessToken
|
56
|
+
raise Troo::InvalidAccessToken
|
57
|
+
rescue Trello::Error
|
58
|
+
[]
|
59
|
+
end
|
60
|
+
|
61
|
+
def card_mode
|
62
|
+
[Trello::Card.find(external_id)]
|
63
|
+
rescue Trello::InvalidAccessToken
|
64
|
+
raise Troo::InvalidAccessToken
|
65
|
+
rescue Trello::Error
|
66
|
+
[]
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
@@ -0,0 +1,78 @@
|
|
1
|
+
module Troo
|
2
|
+
module External
|
3
|
+
class CardAdaptor
|
4
|
+
class << self
|
5
|
+
def adapt(resource)
|
6
|
+
new(resource).adapted
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
def initialize(resource)
|
11
|
+
@resource = resource
|
12
|
+
end
|
13
|
+
|
14
|
+
def adapted
|
15
|
+
{
|
16
|
+
external_board_id: external_board_id,
|
17
|
+
external_list_id: external_list_id,
|
18
|
+
external_card_id: external_card_id,
|
19
|
+
external_member_ids: external_member_ids,
|
20
|
+
short_id: short_id,
|
21
|
+
name: name,
|
22
|
+
desc: desc,
|
23
|
+
url: url,
|
24
|
+
position: position,
|
25
|
+
last_activity_date: last_activity_date,
|
26
|
+
closed: closed,
|
27
|
+
}
|
28
|
+
end
|
29
|
+
|
30
|
+
private
|
31
|
+
attr_reader :resource
|
32
|
+
|
33
|
+
def external_board_id
|
34
|
+
resource.board_id
|
35
|
+
end
|
36
|
+
|
37
|
+
def external_list_id
|
38
|
+
resource.list_id
|
39
|
+
end
|
40
|
+
|
41
|
+
def external_card_id
|
42
|
+
resource.id
|
43
|
+
end
|
44
|
+
|
45
|
+
def external_member_ids
|
46
|
+
resource.member_ids.to_s.gsub(" ", "")
|
47
|
+
end
|
48
|
+
|
49
|
+
def short_id
|
50
|
+
resource.short_id.to_s
|
51
|
+
end
|
52
|
+
|
53
|
+
def name
|
54
|
+
resource.name
|
55
|
+
end
|
56
|
+
|
57
|
+
def desc
|
58
|
+
resource.desc
|
59
|
+
end
|
60
|
+
|
61
|
+
def url
|
62
|
+
resource.url
|
63
|
+
end
|
64
|
+
|
65
|
+
def position
|
66
|
+
resource.pos.to_s
|
67
|
+
end
|
68
|
+
|
69
|
+
def last_activity_date
|
70
|
+
resource.last_activity_date.to_s
|
71
|
+
end
|
72
|
+
|
73
|
+
def closed
|
74
|
+
resource.closed.to_s
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
@@ -0,0 +1,64 @@
|
|
1
|
+
module Troo
|
2
|
+
module External
|
3
|
+
class Comment
|
4
|
+
class << self
|
5
|
+
def fetch(external_id, options = {})
|
6
|
+
new(external_id, options).fetch_by_external_id.map do |resource|
|
7
|
+
Troo::CommentPersistence.for(resource)
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
def initialize(external_id, options = {})
|
13
|
+
@external_id = external_id
|
14
|
+
@options = options
|
15
|
+
end
|
16
|
+
|
17
|
+
def fetch_by_external_id
|
18
|
+
case options.fetch(:mode)
|
19
|
+
when :board then board_mode
|
20
|
+
when :list then list_mode
|
21
|
+
when :card then card_mode
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
private
|
26
|
+
attr_reader :external_id
|
27
|
+
|
28
|
+
def options
|
29
|
+
defaults.merge!(@options)
|
30
|
+
end
|
31
|
+
|
32
|
+
def defaults
|
33
|
+
{ mode: :board }
|
34
|
+
end
|
35
|
+
|
36
|
+
def board_mode
|
37
|
+
Trello::Board.find(external_id).actions({ filter: "commentCard" }).
|
38
|
+
delete_if { |a| a.nil? || a.type != "commentCard" }
|
39
|
+
rescue Trello::InvalidAccessToken
|
40
|
+
raise Troo::InvalidAccessToken
|
41
|
+
rescue Trello::Error
|
42
|
+
[]
|
43
|
+
end
|
44
|
+
|
45
|
+
def list_mode
|
46
|
+
Trello::List.find(external_id).actions({ filter: "commentCard" }).
|
47
|
+
delete_if { |a| a.nil? || a.type != "commentCard" }
|
48
|
+
rescue Trello::InvalidAccessToken
|
49
|
+
raise Troo::InvalidAccessToken
|
50
|
+
rescue Trello::Error
|
51
|
+
[]
|
52
|
+
end
|
53
|
+
|
54
|
+
def card_mode
|
55
|
+
Trello::Card.find(external_id).actions({ filter: "commentCard" }).
|
56
|
+
delete_if { |a| a.nil? || a.type != "commentCard" }
|
57
|
+
rescue Trello::InvalidAccessToken
|
58
|
+
raise Troo::InvalidAccessToken
|
59
|
+
rescue Trello::Error
|
60
|
+
[]
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
module Troo
|
2
|
+
module External
|
3
|
+
class CommentAdaptor
|
4
|
+
class << self
|
5
|
+
def adapt(resource)
|
6
|
+
new(resource).adapted
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
def initialize(resource)
|
11
|
+
@resource = resource
|
12
|
+
end
|
13
|
+
|
14
|
+
def adapted
|
15
|
+
{
|
16
|
+
external_comment_id: external_comment_id,
|
17
|
+
external_board_id: external_board_id,
|
18
|
+
external_card_id: external_card_id,
|
19
|
+
external_member_id: external_member_id,
|
20
|
+
date: date,
|
21
|
+
text: text,
|
22
|
+
}
|
23
|
+
end
|
24
|
+
|
25
|
+
private
|
26
|
+
attr_reader :resource
|
27
|
+
|
28
|
+
def external_comment_id
|
29
|
+
resource.id
|
30
|
+
end
|
31
|
+
|
32
|
+
def external_board_id
|
33
|
+
resource.data.fetch("board", {}).fetch("id", "")
|
34
|
+
end
|
35
|
+
|
36
|
+
def external_card_id
|
37
|
+
resource.data.fetch("card", {}).fetch("id", "")
|
38
|
+
end
|
39
|
+
|
40
|
+
def external_member_id
|
41
|
+
resource.member_creator_id
|
42
|
+
end
|
43
|
+
|
44
|
+
def date
|
45
|
+
resource.date.to_s
|
46
|
+
end
|
47
|
+
|
48
|
+
def text
|
49
|
+
resource.data.fetch("text", "")
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|