tacokit 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +16 -0
- data/.pryrc +7 -0
- data/.rspec +2 -0
- data/.travis.yml +18 -0
- data/Gemfile +28 -0
- data/Guardfile +12 -0
- data/LICENSE +22 -0
- data/README.md +134 -0
- data/Rakefile +8 -0
- data/config.ru +7 -0
- data/lib/tacokit/authorization.rb +46 -0
- data/lib/tacokit/client/actions.rb +54 -0
- data/lib/tacokit/client/boards.rb +124 -0
- data/lib/tacokit/client/cards.rb +143 -0
- data/lib/tacokit/client/checklists.rb +59 -0
- data/lib/tacokit/client/labels.rb +44 -0
- data/lib/tacokit/client/lists.rb +54 -0
- data/lib/tacokit/client/members.rb +91 -0
- data/lib/tacokit/client/notifications.rb +48 -0
- data/lib/tacokit/client/organizations.rb +79 -0
- data/lib/tacokit/client/searches.rb +20 -0
- data/lib/tacokit/client/tokens.rb +41 -0
- data/lib/tacokit/client/types.rb +11 -0
- data/lib/tacokit/client/webhooks.rb +43 -0
- data/lib/tacokit/client.rb +169 -0
- data/lib/tacokit/configuration.rb +60 -0
- data/lib/tacokit/error.rb +31 -0
- data/lib/tacokit/middleware/boom.rb +26 -0
- data/lib/tacokit/middleware/debug.rb +22 -0
- data/lib/tacokit/middleware.rb +15 -0
- data/lib/tacokit/resource.rb +114 -0
- data/lib/tacokit/response.rb +23 -0
- data/lib/tacokit/transform.rb +97 -0
- data/lib/tacokit/utils.rb +51 -0
- data/lib/tacokit/version.rb +3 -0
- data/lib/tacokit.rb +20 -0
- data/script/console +6 -0
- data/spec/cassettes/Tacokit_Client/_connection/authorized_GET_request_with_app_key_and_token_params.json +1 -0
- data/spec/cassettes/Tacokit_Client_Actions/_action/returns_a_token_authorized_action.json +1 -0
- data/spec/cassettes/Tacokit_Client_Actions/_action/returns_oauth_authorized_board.json +1 -0
- data/spec/cassettes/Tacokit_Client_Actions/_action_field/returns_a_hash.json +1 -0
- data/spec/cassettes/Tacokit_Client_Actions/_action_field/returns_a_resource.json +1 -0
- data/spec/cassettes/Tacokit_Client_Actions/_action_field/returns_a_value.json +1 -0
- data/spec/cassettes/Tacokit_Client_Actions/_action_resource/returns_action_board.json +1 -0
- data/spec/cassettes/Tacokit_Client_Actions/_action_resource/returns_action_entities.json +1 -0
- data/spec/cassettes/Tacokit_Client_Actions/_action_resource/returns_action_memberships.json +1 -0
- data/spec/cassettes/Tacokit_Client_Actions/_delete_action/deletes_an_action.json +1 -0
- data/spec/cassettes/Tacokit_Client_Actions/_update_action/updates_a_action.json +1 -0
- data/spec/cassettes/Tacokit_Client_Actions/_update_action/updates_an_action.json +1 -0
- data/spec/cassettes/Tacokit_Client_Actions/_update_action_text/updates_an_action.json +1 -0
- data/spec/cassettes/Tacokit_Client_Boards/_add_board_member/adds_invites_member_to_board.json +1 -0
- data/spec/cassettes/Tacokit_Client_Boards/_board/returns_a_token_authorized_board.json +1 -0
- data/spec/cassettes/Tacokit_Client_Boards/_board/returns_oauth_authorized_board.json +1 -0
- data/spec/cassettes/Tacokit_Client_Boards/_board_field/returns_a_hash.json +1 -0
- data/spec/cassettes/Tacokit_Client_Boards/_board_field/returns_a_value.json +1 -0
- data/spec/cassettes/Tacokit_Client_Boards/_board_field/returns_an_array.json +1 -0
- data/spec/cassettes/Tacokit_Client_Boards/_board_resource/returns_board_actions.json +1 -0
- data/spec/cassettes/Tacokit_Client_Boards/_board_resource/returns_board_cards.json +1 -0
- data/spec/cassettes/Tacokit_Client_Boards/_board_resource/returns_board_members.json +1 -0
- data/spec/cassettes/Tacokit_Client_Boards/_create_board/creates_a_board.json +1 -0
- data/spec/cassettes/Tacokit_Client_Boards/_create_board_resource/creates_a_board_calendar_key.json +1 -0
- data/spec/cassettes/Tacokit_Client_Boards/_create_board_resource/creates_a_board_label.json +1 -0
- data/spec/cassettes/Tacokit_Client_Boards/_create_board_resource/creates_a_board_resource.json +1 -0
- data/spec/cassettes/Tacokit_Client_Boards/_update_board/updates_a_board.json +1 -0
- data/spec/cassettes/Tacokit_Client_Boards/_update_board/updates_nested_resource.json +1 -0
- data/spec/cassettes/Tacokit_Client_Boards/_update_board_field/updates_a_board_field.json +1 -0
- data/spec/cassettes/Tacokit_Client_Boards/_update_board_resource/updates_member.json +1 -0
- data/spec/cassettes/Tacokit_Client_Cards/_card/returns_a_card_by_id.json +1 -0
- data/spec/cassettes/Tacokit_Client_Cards/_card/returns_a_card_by_short_link.json +1 -0
- data/spec/cassettes/Tacokit_Client_Cards/_card_field/returns_a_hash.json +1 -0
- data/spec/cassettes/Tacokit_Client_Cards/_card_field/returns_a_value.json +1 -0
- data/spec/cassettes/Tacokit_Client_Cards/_card_field/returns_an_array.json +1 -0
- data/spec/cassettes/Tacokit_Client_Cards/_card_resource/returns_card_actions.json +1 -0
- data/spec/cassettes/Tacokit_Client_Cards/_card_resource/returns_card_board.json +1 -0
- data/spec/cassettes/Tacokit_Client_Cards/_card_resource/returns_card_check_item_states.json +1 -0
- data/spec/cassettes/Tacokit_Client_Cards/_create_card/creates_a_card.json +1 -0
- data/spec/cassettes/Tacokit_Client_Cards/_create_card_attachment/attaches_external_url.json +1 -0
- data/spec/cassettes/Tacokit_Client_Cards/_create_card_attachment/uploads_local_file.json +1 -0
- data/spec/cassettes/Tacokit_Client_Cards/_create_card_comment/creates_a_comment.json +1 -0
- data/spec/cassettes/Tacokit_Client_Cards/_delete_card/deletes_a_card.json +1 -0
- data/spec/cassettes/Tacokit_Client_Cards/_delete_card_resource/deletes_resource.json +1 -0
- data/spec/cassettes/Tacokit_Client_Cards/_update_card/updates_a_card.json +1 -0
- data/spec/cassettes/Tacokit_Client_Checklists/_checklist/returns_a_checklist_by_id.json +1 -0
- data/spec/cassettes/Tacokit_Client_Checklists/_checklist_field/returns_a_value.json +1 -0
- data/spec/cassettes/Tacokit_Client_Checklists/_checklist_resource/returns_checklist_actions.json +1 -0
- data/spec/cassettes/Tacokit_Client_Checklists/_checklist_resource/returns_checklist_board.json +1 -0
- data/spec/cassettes/Tacokit_Client_Checklists/_checklist_resource/returns_checklist_prefs.json +1 -0
- data/spec/cassettes/Tacokit_Client_Checklists/_create_checklist/creates_a_checklist.json +1 -0
- data/spec/cassettes/Tacokit_Client_Checklists/_delete_checklist/deletes_a_checklist.json +1 -0
- data/spec/cassettes/Tacokit_Client_Checklists/_update_checklist/updates_a_checklist.json +1 -0
- data/spec/cassettes/Tacokit_Client_Labels/_create_label/creates_a_label.json +1 -0
- data/spec/cassettes/Tacokit_Client_Labels/_delete_label/deletes_a_label.json +1 -0
- data/spec/cassettes/Tacokit_Client_Labels/_label/returns_a_label_by_id.json +1 -0
- data/spec/cassettes/Tacokit_Client_Labels/_label_resource/returns_a_board.json +1 -0
- data/spec/cassettes/Tacokit_Client_Labels/_labels/returns_a_label_by_id.json +1 -0
- data/spec/cassettes/Tacokit_Client_Labels/_update_label/updates_a_label.json +1 -0
- data/spec/cassettes/Tacokit_Client_Lists/_create_list/creates_a_list.json +1 -0
- data/spec/cassettes/Tacokit_Client_Lists/_list/returns_a_list_by_id.json +1 -0
- data/spec/cassettes/Tacokit_Client_Lists/_list_field/returns_a_value.json +1 -0
- data/spec/cassettes/Tacokit_Client_Lists/_list_resource/returns_list_actions.json +1 -0
- data/spec/cassettes/Tacokit_Client_Lists/_list_resource/returns_list_board.json +1 -0
- data/spec/cassettes/Tacokit_Client_Lists/_list_resource/returns_list_cards.json +1 -0
- data/spec/cassettes/Tacokit_Client_Lists/_update_list/updates_a_list.json +1 -0
- data/spec/cassettes/Tacokit_Client_Members/_member/authenticated/returns_self.json +1 -0
- data/spec/cassettes/Tacokit_Client_Members/_member/raises_error_for_missing_token.json +1 -0
- data/spec/cassettes/Tacokit_Client_Members/_member/returns_a_member.json +1 -0
- data/spec/cassettes/Tacokit_Client_Members/_member/returns_self.json +1 -0
- data/spec/cassettes/Tacokit_Client_Members/_member/supports_query_fields_as_string_or_array.json +1 -0
- data/spec/cassettes/Tacokit_Client_Members/_member_field/returns_a_hash.json +1 -0
- data/spec/cassettes/Tacokit_Client_Members/_member_field/returns_a_member_field.json +1 -0
- data/spec/cassettes/Tacokit_Client_Members/_member_field/returns_a_resource.json +1 -0
- data/spec/cassettes/Tacokit_Client_Members/_member_field/returns_a_value.json +1 -0
- data/spec/cassettes/Tacokit_Client_Members/_member_field/returns_an_array.json +1 -0
- data/spec/cassettes/Tacokit_Client_Members/_member_resource/returns_member_actions.json +1 -0
- data/spec/cassettes/Tacokit_Client_Members/_member_resource/returns_member_board_stars.json +1 -0
- data/spec/cassettes/Tacokit_Client_Members/_member_resource/returns_member_boards.json +1 -0
- data/spec/cassettes/Tacokit_Client_Members/_update_member/updates_a_member.json +1 -0
- data/spec/cassettes/Tacokit_Client_Members/_update_member/updates_nested_resource.json +1 -0
- data/spec/cassettes/Tacokit_Client_Notifications/_notification/returns_a_notification_by_id.json +1 -0
- data/spec/cassettes/Tacokit_Client_Notifications/_notification_field/returns_a_hash.json +1 -0
- data/spec/cassettes/Tacokit_Client_Notifications/_notification_field/returns_a_resource.json +1 -0
- data/spec/cassettes/Tacokit_Client_Notifications/_notification_field/returns_a_value.json +1 -0
- data/spec/cassettes/Tacokit_Client_Notifications/_notification_resource/returns_action_entities.json +1 -0
- data/spec/cassettes/Tacokit_Client_Notifications/_notification_resource/returns_notification_board.json +1 -0
- data/spec/cassettes/Tacokit_Client_Notifications/_update_notification/updates_a_notification.json +1 -0
- data/spec/cassettes/Tacokit_Client_Organizations/_create_organization/creates_a_organization.json +1 -0
- data/spec/cassettes/Tacokit_Client_Organizations/_delete_organization/deletes_a_organization.json +1 -0
- data/spec/cassettes/Tacokit_Client_Organizations/_organization/returns_an_organization_by_id.json +1 -0
- data/spec/cassettes/Tacokit_Client_Organizations/_organization_field/returns_a_hash.json +1 -0
- data/spec/cassettes/Tacokit_Client_Organizations/_organization_field/returns_a_resource.json +1 -0
- data/spec/cassettes/Tacokit_Client_Organizations/_organization_field/returns_a_value.json +1 -0
- data/spec/cassettes/Tacokit_Client_Organizations/_organization_field/returns_an_array.json +1 -0
- data/spec/cassettes/Tacokit_Client_Organizations/_organization_resource/returns_organization_actions.json +1 -0
- data/spec/cassettes/Tacokit_Client_Organizations/_organization_resource/returns_organization_boards.json +1 -0
- data/spec/cassettes/Tacokit_Client_Organizations/_organization_resource/returns_organization_members.json +1 -0
- data/spec/cassettes/Tacokit_Client_Organizations/_update_organization/updates_a_organization.json +1 -0
- data/spec/cassettes/Tacokit_Client_Searches/_search/returns_search_result.json +1 -0
- data/spec/cassettes/Tacokit_Client_Tokens/_delete_token/deletes_a_token.json +1 -0
- data/spec/cassettes/Tacokit_Client_Tokens/_token/returns_a_token_for_token_string.json +1 -0
- data/spec/cassettes/Tacokit_Client_Tokens/_token_field/returns_a_value.json +1 -0
- data/spec/cassettes/Tacokit_Client_Tokens/_token_field/returns_an_array.json +1 -0
- data/spec/cassettes/Tacokit_Client_Tokens/_token_resource/returns_token_member.json +1 -0
- data/spec/cassettes/Tacokit_Client_Tokens/_token_resource/returns_token_webhooks.json +1 -0
- data/spec/cassettes/Tacokit_Client_Types/_type/returns_a_type_by_id.json +1 -0
- data/spec/cassettes/Tacokit_Client_Webhooks/_create_webhook/creates_a_webhook.json +1 -0
- data/spec/cassettes/Tacokit_Client_Webhooks/_delete_webhook/deletes_a_webhook.json +1 -0
- data/spec/cassettes/Tacokit_Client_Webhooks/_update_webhook/updates_a_webhook.json +1 -0
- data/spec/cassettes/Tacokit_Client_Webhooks/_webhook/returns_a_webhook_by_short_link.json +1 -0
- data/spec/cassettes/Tacokit_Client_Webhooks/_webhook_field/returns_a_value.json +1 -0
- data/spec/fixtures/taco.png +0 -0
- data/spec/spec_helper.rb +162 -0
- data/spec/tacokit/authorization_spec.rb +47 -0
- data/spec/tacokit/client/actions_spec.rb +100 -0
- data/spec/tacokit/client/boards_spec.rb +168 -0
- data/spec/tacokit/client/cards_spec.rb +192 -0
- data/spec/tacokit/client/checklists_spec.rb +87 -0
- data/spec/tacokit/client/labels_spec.rb +70 -0
- data/spec/tacokit/client/lists_spec.rb +81 -0
- data/spec/tacokit/client/members_spec.rb +114 -0
- data/spec/tacokit/client/notifications_spec.rb +52 -0
- data/spec/tacokit/client/organizations_spec.rb +100 -0
- data/spec/tacokit/client/searches_spec.rb +13 -0
- data/spec/tacokit/client/tokens_spec.rb +49 -0
- data/spec/tacokit/client/types_spec.rb +12 -0
- data/spec/tacokit/client/webhooks_spec.rb +70 -0
- data/spec/tacokit/client_spec.rb +28 -0
- data/spec/tacokit/configuration_spec.rb +51 -0
- data/spec/tacokit/middleware/boom_spec.rb +35 -0
- data/spec/tacokit/resource_spec.rb +26 -0
- data/spec/tacokit/transform_spec.rb +131 -0
- data/spec/tacokit_spec.rb +16 -0
- data/tacokit.gemspec +28 -0
- metadata +436 -0
@@ -0,0 +1,60 @@
|
|
1
|
+
module Tacokit
|
2
|
+
class Configuration
|
3
|
+
|
4
|
+
API_URL = "https://api.trello.com".freeze
|
5
|
+
WEB_URL = "https://trello.com".freeze
|
6
|
+
|
7
|
+
API_VERSION = "1".freeze
|
8
|
+
|
9
|
+
def self.keys
|
10
|
+
[
|
11
|
+
:app_key,
|
12
|
+
:app_secret,
|
13
|
+
:app_token,
|
14
|
+
:oauth_token,
|
15
|
+
:oauth_secret,
|
16
|
+
:api_endpoint,
|
17
|
+
:web_endpoint
|
18
|
+
]
|
19
|
+
end
|
20
|
+
|
21
|
+
attr_accessor(*keys)
|
22
|
+
|
23
|
+
def initialize(opts = {})
|
24
|
+
self.options = defaults.merge(opts)
|
25
|
+
end
|
26
|
+
|
27
|
+
def options=(opts)
|
28
|
+
opts.each { |key, value| instance_variable_set("@#{key}", value) }
|
29
|
+
end
|
30
|
+
|
31
|
+
def user_authenticated?
|
32
|
+
app_key && oauth_token
|
33
|
+
end
|
34
|
+
|
35
|
+
def user_credentials
|
36
|
+
{ consumer_key: app_key, token: oauth_token }.delete_if { |k, v| v.nil? }
|
37
|
+
end
|
38
|
+
|
39
|
+
def app_authenticated?
|
40
|
+
app_key && app_token
|
41
|
+
end
|
42
|
+
|
43
|
+
def app_credentials
|
44
|
+
{ key: app_key, token: app_token }.delete_if { |k,v| v.nil? }
|
45
|
+
end
|
46
|
+
|
47
|
+
private
|
48
|
+
|
49
|
+
def defaults
|
50
|
+
{
|
51
|
+
api_endpoint: File.join(API_URL, API_VERSION),
|
52
|
+
web_endpoint: File.join(WEB_URL, API_VERSION),
|
53
|
+
app_key: ENV['TRELLO_APP_KEY'],
|
54
|
+
app_secret: ENV['TRELLO_APP_SECRET'],
|
55
|
+
app_token: ENV['TRELLO_APP_TOKEN']
|
56
|
+
}
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
60
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module Tacokit
|
2
|
+
class Error < StandardError
|
3
|
+
ConfigurationError = Class.new(Error)
|
4
|
+
|
5
|
+
ClientError = Class.new(Error)
|
6
|
+
|
7
|
+
# Errors
|
8
|
+
# Code - Message
|
9
|
+
|
10
|
+
Unauthorized = Class.new(ClientError)
|
11
|
+
|
12
|
+
# 401 - invalid token
|
13
|
+
InvalidToken = Class.new(Unauthorized)
|
14
|
+
|
15
|
+
# 401 - invalid key
|
16
|
+
InvalidKey = Class.new(Unauthorized)
|
17
|
+
|
18
|
+
# 401 - unauthorized permission requested
|
19
|
+
UnauthorizedPermissionRequested = Class.new(Unauthorized)
|
20
|
+
|
21
|
+
# 403 - Bad member type
|
22
|
+
|
23
|
+
# 404 - model not found
|
24
|
+
ResourceNotFound = Class.new(ClientError)
|
25
|
+
|
26
|
+
# 407
|
27
|
+
ConnectionFailed = Class.new(ClientError)
|
28
|
+
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module Tacokit
|
2
|
+
module Middleware
|
3
|
+
class Boom < Faraday::Response::Middleware
|
4
|
+
ClientErrorStatuses = 400...600
|
5
|
+
|
6
|
+
def on_complete(env)
|
7
|
+
case env[:status]
|
8
|
+
when 401
|
9
|
+
raise Tacokit::Error::Unauthorized.new(error_message(env))
|
10
|
+
when 404
|
11
|
+
raise Tacokit::Error::ResourceNotFound.new(error_message(env))
|
12
|
+
when 407
|
13
|
+
# mimic the behavior that we get with proxy requests with HTTPS
|
14
|
+
raise Tacokit::Error::ConnectionFailed, %{407 "Proxy Authentication Required "}
|
15
|
+
when ClientErrorStatuses
|
16
|
+
raise Tacokit::Error::ClientError.new(error_message(env))
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def error_message(env)
|
21
|
+
"Server returned #{env[:status]}: #{env.body}. Headers #{env.response_headers.inspect}"
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'pry'
|
2
|
+
module Tacokit
|
3
|
+
module Middleware
|
4
|
+
|
5
|
+
class Debug < Faraday::Response::Middleware
|
6
|
+
def on_complete(env)
|
7
|
+
binding.pry
|
8
|
+
env
|
9
|
+
end
|
10
|
+
|
11
|
+
def parse(body)
|
12
|
+
binding.pry
|
13
|
+
body
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
Faraday::Response.register_middleware \
|
18
|
+
:debug => lambda { Tacokit::Middleware::Debug }
|
19
|
+
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'tacokit/middleware/boom'
|
2
|
+
# require 'tacokit/middleware/debug'
|
3
|
+
|
4
|
+
module Tacokit
|
5
|
+
module Middleware
|
6
|
+
|
7
|
+
# Faraday::Request.register_middleware \
|
8
|
+
# :example => lambda { Tacokit::Middleware::Example }
|
9
|
+
#
|
10
|
+
|
11
|
+
Faraday::Response.register_middleware \
|
12
|
+
:boom => lambda { Tacokit::Middleware::Boom }
|
13
|
+
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,114 @@
|
|
1
|
+
require 'forwardable'
|
2
|
+
|
3
|
+
module Tacokit
|
4
|
+
class Resource
|
5
|
+
SPECIAL_METHODS = Set.new(%w(client fields))
|
6
|
+
attr_reader :_client
|
7
|
+
attr_reader :_fields
|
8
|
+
attr_reader :attrs
|
9
|
+
alias to_hash attrs
|
10
|
+
alias to_h attrs
|
11
|
+
include Enumerable
|
12
|
+
extend Forwardable
|
13
|
+
|
14
|
+
def_delegators :@_fields, :fetch, :keys, :key?, :has_key?, :include?, :any?
|
15
|
+
|
16
|
+
def initialize(client, data = {})
|
17
|
+
@_client = client
|
18
|
+
@attrs = {}
|
19
|
+
@_metaclass = (class << self; self; end)
|
20
|
+
@_fields = Set.new
|
21
|
+
data.each do |key, value|
|
22
|
+
@_fields << key
|
23
|
+
@attrs[key.to_sym] = process_value(value)
|
24
|
+
end
|
25
|
+
@_metaclass.send(:attr_accessor, *data.keys)
|
26
|
+
end
|
27
|
+
|
28
|
+
def process_value(value)
|
29
|
+
case value
|
30
|
+
when Hash then self.class.new(@_client, value)
|
31
|
+
when Array then value.map { |v| process_value(v) }
|
32
|
+
else value
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def each(&block)
|
37
|
+
@attrs.each(&block)
|
38
|
+
end
|
39
|
+
|
40
|
+
def [](method)
|
41
|
+
send(method.to_sym)
|
42
|
+
rescue NoMethodError
|
43
|
+
nil
|
44
|
+
end
|
45
|
+
|
46
|
+
def []=(method, value)
|
47
|
+
send("#{method}=", value)
|
48
|
+
rescue NoMethodError
|
49
|
+
nil
|
50
|
+
end
|
51
|
+
|
52
|
+
def self.attr_accessor(*attrs)
|
53
|
+
attrs.each do |attribute|
|
54
|
+
class_eval do
|
55
|
+
define_method attribute do
|
56
|
+
@attrs[attribute.to_sym]
|
57
|
+
end
|
58
|
+
|
59
|
+
define_method "#{attribute}=" do |value|
|
60
|
+
@attrs[attribute.to_sym] = value
|
61
|
+
end
|
62
|
+
|
63
|
+
define_method "#{attribute}?" do
|
64
|
+
!!@attrs[attribute.to_sym]
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
ATTR_SETTER = '='.freeze
|
71
|
+
ATTR_PREDICATE = '?'.freeze
|
72
|
+
|
73
|
+
# Provides access to a resource's attributes.
|
74
|
+
def method_missing(method, *args)
|
75
|
+
attr_name, suffix = method.to_s.scan(/([a-z0-9\_]+)(\?|\=)?$/i).first
|
76
|
+
if suffix == ATTR_SETTER
|
77
|
+
@_metaclass.send(:attr_accessor, attr_name)
|
78
|
+
@_fields << attr_name.to_sym
|
79
|
+
send(method, args.first)
|
80
|
+
elsif attr_name && @_fields.include?(attr_name.to_sym)
|
81
|
+
value = @attrs[attr_name.to_sym]
|
82
|
+
case suffix
|
83
|
+
when nil
|
84
|
+
@_metaclass.send(:attr_accessor, attr_name)
|
85
|
+
value
|
86
|
+
when ATTR_PREDICATE then !!value
|
87
|
+
end
|
88
|
+
elsif suffix.nil? && SPECIAL_METHODS.include?(attr_name)
|
89
|
+
instance_variable_get "@_#{attr_name}"
|
90
|
+
elsif attr_name && !@_fields.include?(attr_name.to_sym)
|
91
|
+
nil
|
92
|
+
else
|
93
|
+
super
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
def inspect
|
98
|
+
to_attrs.respond_to?(:pretty_inspect) ? to_attrs.pretty_inspect : to_attrs.inspect
|
99
|
+
end
|
100
|
+
|
101
|
+
def to_attrs
|
102
|
+
hash = self.attrs.clone
|
103
|
+
hash.keys.each do |k|
|
104
|
+
if hash[k].is_a?(Tacokit::Resource)
|
105
|
+
hash[k] = hash[k].to_attrs
|
106
|
+
elsif hash[k].is_a?(Array) && hash[k].all?{|el| el.is_a?(Tacokit::Resource)}
|
107
|
+
hash[k] = hash[k].collect{|el| el.to_attrs}
|
108
|
+
end
|
109
|
+
end
|
110
|
+
hash
|
111
|
+
end
|
112
|
+
|
113
|
+
end
|
114
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module Tacokit
|
2
|
+
class Response
|
3
|
+
|
4
|
+
attr_reader :client, :status, :headers, :env, :data
|
5
|
+
|
6
|
+
def initialize(client, res, options = {})
|
7
|
+
@client = client
|
8
|
+
@status = res.status
|
9
|
+
@headers = res.headers
|
10
|
+
@env = res.env
|
11
|
+
@data = process_data(@client.deserialize(res.body))
|
12
|
+
end
|
13
|
+
|
14
|
+
def process_data(data)
|
15
|
+
case data
|
16
|
+
when Hash then Resource.new(client, data)
|
17
|
+
when Array then data.map { |value| process_data(value) }
|
18
|
+
else data
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,97 @@
|
|
1
|
+
module Tacokit
|
2
|
+
class Transform
|
3
|
+
include Tacokit::Utils
|
4
|
+
|
5
|
+
def serialize(body)
|
6
|
+
serialize_body(body)
|
7
|
+
end
|
8
|
+
|
9
|
+
def deserialize(body)
|
10
|
+
deserialize_body(body)
|
11
|
+
end
|
12
|
+
|
13
|
+
private
|
14
|
+
|
15
|
+
def serialize_body(body)
|
16
|
+
case body
|
17
|
+
when Hash
|
18
|
+
serialize_hash(body)
|
19
|
+
else
|
20
|
+
body
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def serialize_hash(body)
|
25
|
+
flatten_nested_keys(camelize_keys(body))
|
26
|
+
end
|
27
|
+
|
28
|
+
def camelize_keys(body)
|
29
|
+
deep_transform_keys(body) { |key| camelize_key(key) }
|
30
|
+
end
|
31
|
+
|
32
|
+
def camelize_key(key)
|
33
|
+
k = key.to_s
|
34
|
+
k = k.gsub(%r{([a-zA-Z]+?)_id(s\b|\b)?$}, "id_\\1\\2")
|
35
|
+
k = k.gsub(%r{(#{camelize_special_cases.keys.join('|')})}) { |m| camelize_special_cases.fetch(m) }
|
36
|
+
camelize(k, :lower)
|
37
|
+
end
|
38
|
+
|
39
|
+
# Converts
|
40
|
+
# 'prefs' => { 'voting' => 'members' }
|
41
|
+
# to
|
42
|
+
# 'prefs/voting' => 'members
|
43
|
+
#
|
44
|
+
def flatten_nested_keys(body)
|
45
|
+
options = {}
|
46
|
+
body.each do |key, value|
|
47
|
+
if value.is_a?(Hash)
|
48
|
+
value = flatten_nested_keys(value.dup)
|
49
|
+
value.each do |nested_key, nested_value|
|
50
|
+
options["#{key}/#{nested_key}"] = nested_value
|
51
|
+
end
|
52
|
+
body.delete(key)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
body.merge(options)
|
56
|
+
end
|
57
|
+
|
58
|
+
def deserialize_body(body)
|
59
|
+
case body
|
60
|
+
when Hash
|
61
|
+
deserialize_hash(body)
|
62
|
+
when Array
|
63
|
+
deserialize_array(body)
|
64
|
+
else
|
65
|
+
body
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
def deserialize_array(body)
|
70
|
+
body.map { |data| deserialize_body(data) }
|
71
|
+
end
|
72
|
+
|
73
|
+
def deserialize_hash(body)
|
74
|
+
deep_transform_keys(body) do |key|
|
75
|
+
underscore_key(key)
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
def underscore_key(key)
|
80
|
+
k = key.to_s
|
81
|
+
k = k.gsub(%r{(#{pluralize_special_cases.join('|')})}, "\\1s")
|
82
|
+
k = underscore(k)
|
83
|
+
k.gsub(%r{^id_([a-zA-Z_]+?)(s\b|\b)$}, "\\1_id\\2")
|
84
|
+
end
|
85
|
+
|
86
|
+
def pluralize_special_cases
|
87
|
+
%w[ idBoardsPinned idPremOrgsAdmin ]
|
88
|
+
end
|
89
|
+
|
90
|
+
def camelize_special_cases
|
91
|
+
{
|
92
|
+
'callback_url' => 'callbackURL'
|
93
|
+
}
|
94
|
+
end
|
95
|
+
|
96
|
+
end
|
97
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
# Emulate only what we need from activesupport
|
2
|
+
module Tacokit
|
3
|
+
module Utils
|
4
|
+
|
5
|
+
def deep_transform_keys(hash, &block)
|
6
|
+
_deep_transform_keys_in_object(hash, &block)
|
7
|
+
end
|
8
|
+
|
9
|
+
def extract_options(*args)
|
10
|
+
opts = args.last.is_a?(Hash) ? args.pop : {}
|
11
|
+
return args, opts
|
12
|
+
end
|
13
|
+
|
14
|
+
def underscore(string)
|
15
|
+
string.gsub(/::/, '/').
|
16
|
+
gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
|
17
|
+
gsub(/([a-z\d])([A-Z])/,'\1_\2').
|
18
|
+
tr("-", "_").
|
19
|
+
downcase
|
20
|
+
end
|
21
|
+
|
22
|
+
def camelize(string, lower = false)
|
23
|
+
string = string.to_s.gsub(/(?:^|_)(.)/) { $1.upcase }
|
24
|
+
string = string[0].chr.downcase + string[1..-1] if lower
|
25
|
+
string
|
26
|
+
end
|
27
|
+
|
28
|
+
def blank?(obj)
|
29
|
+
obj.respond_to?(:empty?) ? !!obj.empty? : !obj
|
30
|
+
end
|
31
|
+
|
32
|
+
def present?(obj)
|
33
|
+
!blank?(obj)
|
34
|
+
end
|
35
|
+
|
36
|
+
private
|
37
|
+
|
38
|
+
def _deep_transform_keys_in_object(object, &block)
|
39
|
+
case object
|
40
|
+
when Hash
|
41
|
+
object.each_with_object({}) do |(key, value), result|
|
42
|
+
result[yield(key)] = _deep_transform_keys_in_object(value, &block)
|
43
|
+
end
|
44
|
+
when Array
|
45
|
+
object.map {|e| _deep_transform_keys_in_object(e, &block) }
|
46
|
+
else
|
47
|
+
object
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
data/lib/tacokit.rb
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
module Tacokit
|
2
|
+
|
3
|
+
class << self
|
4
|
+
def client
|
5
|
+
@client ||= Tacokit::Client.new
|
6
|
+
end
|
7
|
+
|
8
|
+
def method_missing(method_name, *args, &block)
|
9
|
+
return super unless client.respond_to?(method_name)
|
10
|
+
client.send(method_name, *args, &block)
|
11
|
+
end
|
12
|
+
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
require "tacokit/utils"
|
17
|
+
require "tacokit/resource"
|
18
|
+
require "tacokit/client"
|
19
|
+
require "tacokit/error"
|
20
|
+
require "tacokit/version"
|
data/script/console
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
{"http_interactions":[{"request":{"method":"get","uri":"https://api.trello.com/1/members/me/boards?key=<TRELLO_APP_KEY>&token=<TRELLO_APP_TOKEN>","body":{"encoding":"US-ASCII","base64_string":""},"headers":{"User-Agent":["TacoKit 0.0.1"],"Accept-Encoding":["gzip;q=1.0,deflate;q=0.6,identity;q=0.3"],"Accept":["*/*"]}},"response":{"status":{"code":200,"message":"OK"},"headers":{"Cache-Control":["max-age=0, must-revalidate, no-cache, no-store"],"X-Content-Type-Options":["nosniff"],"Strict-Transport-Security":["max-age=15768000"],"X-Xss-Protection":["1; mode=block"],"X-Frame-Options":["DENY"],"X-Trello-Version":["1.266.2"],"X-Trello-Environment":["Production"],"Set-Cookie":["___utmvaDOussFI=oZH\u0001DeIE; path=/; Max-Age=900","___utmvbDOussFI=XZq XOROQalm: gtk; path=/; Max-Age=900","___utmvmDOussFI=CpTftxzbdbx; path=/; Max-Age=900","dsc=5822d8078dbf1b557e347af507184c5283135e1839c036004032d336f762a069; Path=/; Expires=Wed, 17 Dec 2014 18:35:29 GMT; Secure","incap_ses_220_168562=EQ0vCgM4R11m5zsVNZkNA3DYjVQAAAAAJzgeTqNzMFDb/4HDwTPWOw==; path=/; Domain=.trello.com","visid_incap_168562=jpt8gFzaQUyFPtM8yiRk9nDYjVQAAAAAQUIPAAAAAAA5yXhNRdE59RhDBEjupeNv; expires=Tue, 13 Dec 2016 12:28:08 GMT; path=/; Domain=.trello.com"],"X-Server-Time":["1418582129957"],"Expires":["Thu, 01 Jan 1970 00:00:00"],"Content-Type":["application/json"],"Access-Control-Allow-Origin":["*"],"Access-Control-Allow-Methods":["GET, PUT, POST, DELETE"],"Etag":["\"-1998848769\""],"Vary":["Accept-Encoding"],"Date":["Sun, 14 Dec 2014 18:35:29 GMT"],"Transfer-Encoding":["chunked"],"X-Iinfo":["9-41578382-41546667 PNNY RT(1418582128735 168) q(0 0 0 -1) r(0 0)"],"X-Cdn":["Incapsula"]},"body":{"encoding":"UTF-8","base64_string":"W3siaWQiOiI1NDhhNjc1NTgxZDFkNjY5YzllODE4NGUiLCJuYW1lIjoiVGVz\ndCBCb2FyZCIsImRlc2MiOiIiLCJkZXNjRGF0YSI6bnVsbCwiY2xvc2VkIjpm\nYWxzZSwiaWRPcmdhbml6YXRpb24iOm51bGwsImludml0ZWQiOmZhbHNlLCJw\naW5uZWQiOmZhbHNlLCJzdGFycmVkIjpmYWxzZSwidXJsIjoiaHR0cHM6Ly90\ncmVsbG8uY29tL2Ivc3dlelE5WFMvdGVzdC1ib2FyZCIsInByZWZzIjp7InBl\ncm1pc3Npb25MZXZlbCI6InB1YmxpYyIsInZvdGluZyI6ImRpc2FibGVkIiwi\nY29tbWVudHMiOiJtZW1iZXJzIiwiaW52aXRhdGlvbnMiOiJtZW1iZXJzIiwi\nc2VsZkpvaW4iOmZhbHNlLCJjYXJkQ292ZXJzIjp0cnVlLCJjYXJkQWdpbmci\nOiJyZWd1bGFyIiwiY2FsZW5kYXJGZWVkRW5hYmxlZCI6ZmFsc2UsImJhY2tn\ncm91bmQiOiJibHVlIiwiYmFja2dyb3VuZENvbG9yIjoiIzAwNzlCRiIsImJh\nY2tncm91bmRJbWFnZSI6bnVsbCwiYmFja2dyb3VuZEltYWdlU2NhbGVkIjpu\ndWxsLCJiYWNrZ3JvdW5kVGlsZSI6ZmFsc2UsImJhY2tncm91bmRCcmlnaHRu\nZXNzIjoidW5rbm93biIsImNhbkJlUHVibGljIjp0cnVlLCJjYW5CZU9yZyI6\ndHJ1ZSwiY2FuQmVQcml2YXRlIjp0cnVlLCJjYW5JbnZpdGUiOnRydWV9LCJp\nbnZpdGF0aW9ucyI6W10sIm1lbWJlcnNoaXBzIjpbeyJpZCI6IjU0OGE2NzU1\nODFkMWQ2NjljOWU4MTg0ZiIsImlkTWVtYmVyIjoiNTQ4YTY2OTZiM2I5OTE4\nYmViMTQ0YjA3IiwibWVtYmVyVHlwZSI6ImFkbWluIiwidW5jb25maXJtZWQi\nOmZhbHNlLCJkZWFjdGl2YXRlZCI6ZmFsc2V9LHsiaWQiOiI1NDhhNjc2ZWU3\nY2MzNzlkZWJiOGQ5YzYiLCJpZE1lbWJlciI6IjRmMDc5YWRjNzM2NjhiMjQ0\nYjFjMDk5YSIsIm1lbWJlclR5cGUiOiJub3JtYWwiLCJ1bmNvbmZpcm1lZCI6\nZmFsc2UsImRlYWN0aXZhdGVkIjpmYWxzZX1dLCJzaG9ydExpbmsiOiJzd2V6\nUTlYUyIsInN1YnNjcmliZWQiOmZhbHNlLCJsYWJlbE5hbWVzIjp7ImdyZWVu\nIjoiIiwieWVsbG93IjoiIiwib3JhbmdlIjoiIiwicmVkIjoiIiwicHVycGxl\nIjoiIiwiYmx1ZSI6IiIsInNreSI6IiIsImxpbWUiOiIiLCJwaW5rIjoiIiwi\nYmxhY2siOiIifSwicG93ZXJVcHMiOltdLCJkYXRlTGFzdEFjdGl2aXR5Ijpu\ndWxsLCJkYXRlTGFzdFZpZXciOiIyMDE0LTEyLTE0VDE4OjI2OjMzLjQyNVoi\nLCJzaG9ydFVybCI6Imh0dHBzOi8vdHJlbGxvLmNvbS9iL3N3ZXpROVhTIn0s\neyJpZCI6IjU0OGE2Njk2YjNiOTkxOGJlYjE0NGIwOCIsIm5hbWUiOiJXZWxj\nb21lIEJvYXJkIiwiZGVzYyI6IiIsImRlc2NEYXRhIjpudWxsLCJjbG9zZWQi\nOmZhbHNlLCJpZE9yZ2FuaXphdGlvbiI6bnVsbCwiaW52aXRlZCI6ZmFsc2Us\nInBpbm5lZCI6ZmFsc2UsInN0YXJyZWQiOmZhbHNlLCJ1cmwiOiJodHRwczov\nL3RyZWxsby5jb20vYi9UbEVZVGpNaS93ZWxjb21lLWJvYXJkIiwicHJlZnMi\nOnsicGVybWlzc2lvbkxldmVsIjoicHJpdmF0ZSIsInZvdGluZyI6ImRpc2Fi\nbGVkIiwiY29tbWVudHMiOiJtZW1iZXJzIiwiaW52aXRhdGlvbnMiOiJtZW1i\nZXJzIiwic2VsZkpvaW4iOnRydWUsImNhcmRDb3ZlcnMiOnRydWUsImNhbGVu\nZGFyRmVlZEVuYWJsZWQiOmZhbHNlLCJiYWNrZ3JvdW5kIjoiYmx1ZSIsImJh\nY2tncm91bmRDb2xvciI6IiMwMDc5QkYiLCJiYWNrZ3JvdW5kSW1hZ2UiOm51\nbGwsImJhY2tncm91bmRJbWFnZVNjYWxlZCI6bnVsbCwiYmFja2dyb3VuZFRp\nbGUiOmZhbHNlLCJiYWNrZ3JvdW5kQnJpZ2h0bmVzcyI6InVua25vd24iLCJj\nYW5CZVB1YmxpYyI6dHJ1ZSwiY2FuQmVPcmciOnRydWUsImNhbkJlUHJpdmF0\nZSI6dHJ1ZSwiY2FuSW52aXRlIjp0cnVlfSwiaW52aXRhdGlvbnMiOltdLCJt\nZW1iZXJzaGlwcyI6W3siaWQiOiI1NDhhNjY5NmIzYjk5MThiZWIxNDRiMDki\nLCJpZE1lbWJlciI6IjRlNmE3ZmFkMDVkOThiMDJiYTAwODQ1YyIsIm1lbWJl\nclR5cGUiOiJub3JtYWwiLCJ1bmNvbmZpcm1lZCI6ZmFsc2UsImRlYWN0aXZh\ndGVkIjpmYWxzZX0seyJpZCI6IjU0OGE2Njk2YjNiOTkxOGJlYjE0NGIwZCIs\nImlkTWVtYmVyIjoiNTQ4YTY2OTZiM2I5OTE4YmViMTQ0YjA3IiwibWVtYmVy\nVHlwZSI6ImFkbWluIiwidW5jb25maXJtZWQiOmZhbHNlLCJkZWFjdGl2YXRl\nZCI6ZmFsc2V9XSwic2hvcnRMaW5rIjoiVGxFWVRqTWkiLCJzdWJzY3JpYmVk\nIjpmYWxzZSwibGFiZWxOYW1lcyI6eyJncmVlbiI6IiIsInllbGxvdyI6IiIs\nIm9yYW5nZSI6IiIsInJlZCI6IiIsInB1cnBsZSI6IiIsImJsdWUiOiIiLCJz\na3kiOiIiLCJsaW1lIjoiIiwicGluayI6IiIsImJsYWNrIjoiIn0sInBvd2Vy\nVXBzIjpbXSwiZGF0ZUxhc3RBY3Rpdml0eSI6IjIwMTQtMTItMTJUMDM6NTI6\nNTQuOTEzWiIsImRhdGVMYXN0VmlldyI6IjIwMTQtMTItMTNUMTg6MDY6MTMu\nOTgyWiIsInNob3J0VXJsIjoiaHR0cHM6Ly90cmVsbG8uY29tL2IvVGxFWVRq\nTWkifV0=\n"},"http_version":null},"recorded_at":"Sun, 14 Dec 2014 18:35:30 GMT"}],"recorded_with":"VCR 2.9.3"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"http_interactions":[{"request":{"method":"get","uri":"https://api.trello.com/1/actions/548e3153ea7ca8f9cd3cb77b?key=<TRELLO_APP_KEY>&token=<TRELLO_APP_TOKEN>","body":{"encoding":"US-ASCII","base64_string":""},"headers":{"User-Agent":["TacoKit 0.0.1"],"Accept-Encoding":["gzip;q=1.0,deflate;q=0.6,identity;q=0.3"],"Accept":["*/*"]}},"response":{"status":{"code":200,"message":"OK"},"headers":{"Cache-Control":["max-age=0, must-revalidate, no-cache, no-store"],"X-Content-Type-Options":["nosniff"],"Strict-Transport-Security":["max-age=15768000"],"X-Xss-Protection":["1; mode=block"],"X-Frame-Options":["DENY"],"X-Trello-Version":["1.267.1"],"X-Trello-Environment":["Production"],"Set-Cookie":["___utmvaDOussFI=sub\u0001VaeE; path=/; Max-Age=900","___utmvbDOussFI=VZC XjdOZalR: dtJ; path=/; Max-Age=900","___utmvmDOussFI=SsHfKudbuuv; path=/; Max-Age=900","dsc=4de9b55a9db53e97a053af7f726bf30429997070a791cd0f9bc9f11add05cf04; Path=/; Expires=Fri, 19 Dec 2014 13:52:16 GMT; Secure","incap_ses_220_168562=lxa+DS2jMzBQGPAXNZkNAw85kFQAAAAAtb20y0ysKdX8wIZW+pTMug==; path=/; Domain=.trello.com","visid_incap_168562=Kz38NuM+T8edV9pxxSAbwA85kFQAAAAAQUIPAAAAAADU8u1AMX8he7e2pF6H3BAE; expires=Thu, 15 Dec 2016 12:28:10 GMT; path=/; Domain=.trello.com"],"X-Server-Time":["1418737936559"],"Expires":["Thu, 01 Jan 1970 00:00:00"],"Content-Type":["application/json"],"Access-Control-Allow-Origin":["*"],"Access-Control-Allow-Methods":["GET, PUT, POST, DELETE"],"Content-Length":["466"],"Vary":["Accept-Encoding"],"Date":["Tue, 16 Dec 2014 13:52:16 GMT"],"X-Iinfo":["9-64274593-64259856 PNNY RT(1418737935461 50) q(0 0 0 -1) r(0 0) U10000"],"X-Cdn":["Incapsula"]},"body":{"encoding":"UTF-8","base64_string":"eyJpZCI6IjU0OGUzMTUzZWE3Y2E4ZjljZDNjYjc3YiIsImlkTWVtYmVyQ3Jl\nYXRvciI6IjU0OGE2Njk2YjNiOTkxOGJlYjE0NGIwNyIsImRhdGEiOnsib3Jn\nYW5pemF0aW9uIjp7Im5hbWUiOiJUZWFtIFRhY29raXQiLCJpZCI6IjU0OGUz\nMGU5NjgzZTE5MjNmNjc2YmEyMCJ9LCJib2FyZCI6eyJzaG9ydExpbmsiOiJz\nd2V6UTlYUyIsIm5hbWUiOiJUZXN0IEJvYXJkIiwiaWQiOiI1NDhhNjc1NTgx\nZDFkNjY5YzllODE4NGUifX0sInR5cGUiOiJhZGRUb09yZ2FuaXphdGlvbkJv\nYXJkIiwiZGF0ZSI6IjIwMTQtMTItMTVUMDA6NTQ6NDMuODk3WiIsIm1lbWJl\nckNyZWF0b3IiOnsiaWQiOiI1NDhhNjY5NmIzYjk5MThiZWIxNDRiMDciLCJh\ndmF0YXJIYXNoIjoiY2IwZGY0NTA1NWJhYzg0ZTdjNWZiNzI4ZTAwZTIwMTUi\nLCJmdWxsTmFtZSI6IlRhY28gS2l0IiwiaW5pdGlhbHMiOiJUSyIsInVzZXJu\nYW1lIjoidGFjb2tpdCJ9fQ==\n"},"http_version":null},"recorded_at":"Tue, 16 Dec 2014 13:52:16 GMT"}],"recorded_with":"VCR 2.9.3"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"http_interactions":[{"request":{"method":"get","uri":"https://api.trello.com/1/actions/548e3153ea7ca8f9cd3cb77b","body":{"encoding":"US-ASCII","base64_string":""},"headers":{"User-Agent":["TacoKit 0.0.1"],"Authorization":["OAuth oauth_consumer_key=\"<TRELLO_APP_KEY>\", oauth_nonce=\"5b0bd1cf6922fba3898b6346d6423019\", oauth_signature=\"IxXiTdpwi0pRO6LGLDRyAxtHfDo%3D\", oauth_signature_method=\"HMAC-SHA1\", oauth_timestamp=\"1418737936\", oauth_token=\"<TRELLO_OAUTH_TOKEN>\", oauth_version=\"1.0\""],"Accept-Encoding":["gzip;q=1.0,deflate;q=0.6,identity;q=0.3"],"Accept":["*/*"]}},"response":{"status":{"code":200,"message":"OK"},"headers":{"Cache-Control":["max-age=0, must-revalidate, no-cache, no-store"],"X-Content-Type-Options":["nosniff"],"Strict-Transport-Security":["max-age=15768000"],"X-Xss-Protection":["1; mode=block"],"X-Frame-Options":["DENY"],"X-Trello-Version":["1.267.1"],"X-Trello-Environment":["Production"],"Set-Cookie":["___utmvaDOussFI=aZQ\u0001flfA; path=/; Max-Age=900","___utmvbDOussFI=gZr XqvOHalz: Rto; path=/; Max-Age=900","___utmvmDOussFI=yUFoevlXEUJ; path=/; Max-Age=900","dsc=c5e1839331e8d03351b13b0ce2f6bb8b32ce8c411adf9ded6e15072e61d7bc3e; Path=/; Expires=Fri, 19 Dec 2014 13:52:16 GMT; Secure","incap_ses_220_168562=HXj0T8eZj0SIGPAXNZkNAw85kFQAAAAAqFjC6kNfBvnV1YTFbUjP8Q==; path=/; Domain=.trello.com","visid_incap_168562=rVlqVBUeQ76aoKfQmBjq4A85kFQAAAAAQUIPAAAAAACr7g069rnGKAkNm/lEikjG; expires=Thu, 15 Dec 2016 12:28:10 GMT; path=/; Domain=.trello.com"],"X-Server-Time":["1418737936765"],"Expires":["Thu, 01 Jan 1970 00:00:00"],"Content-Type":["application/json"],"Access-Control-Allow-Origin":["*"],"Access-Control-Allow-Methods":["GET, PUT, POST, DELETE"],"Content-Length":["466"],"Vary":["Accept-Encoding"],"Date":["Tue, 16 Dec 2014 13:52:16 GMT"],"X-Iinfo":["9-64274632-64271783 PNNY RT(1418737935685 51) q(0 0 0 -1) r(0 0) U13"],"X-Cdn":["Incapsula"]},"body":{"encoding":"UTF-8","base64_string":"eyJpZCI6IjU0OGUzMTUzZWE3Y2E4ZjljZDNjYjc3YiIsImlkTWVtYmVyQ3Jl\nYXRvciI6IjU0OGE2Njk2YjNiOTkxOGJlYjE0NGIwNyIsImRhdGEiOnsib3Jn\nYW5pemF0aW9uIjp7Im5hbWUiOiJUZWFtIFRhY29raXQiLCJpZCI6IjU0OGUz\nMGU5NjgzZTE5MjNmNjc2YmEyMCJ9LCJib2FyZCI6eyJzaG9ydExpbmsiOiJz\nd2V6UTlYUyIsIm5hbWUiOiJUZXN0IEJvYXJkIiwiaWQiOiI1NDhhNjc1NTgx\nZDFkNjY5YzllODE4NGUifX0sInR5cGUiOiJhZGRUb09yZ2FuaXphdGlvbkJv\nYXJkIiwiZGF0ZSI6IjIwMTQtMTItMTVUMDA6NTQ6NDMuODk3WiIsIm1lbWJl\nckNyZWF0b3IiOnsiaWQiOiI1NDhhNjY5NmIzYjk5MThiZWIxNDRiMDciLCJh\ndmF0YXJIYXNoIjoiY2IwZGY0NTA1NWJhYzg0ZTdjNWZiNzI4ZTAwZTIwMTUi\nLCJmdWxsTmFtZSI6IlRhY28gS2l0IiwiaW5pdGlhbHMiOiJUSyIsInVzZXJu\nYW1lIjoidGFjb2tpdCJ9fQ==\n"},"http_version":null},"recorded_at":"Tue, 16 Dec 2014 13:52:16 GMT"}],"recorded_with":"VCR 2.9.3"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"http_interactions":[{"request":{"method":"get","uri":"https://api.trello.com/1/actions/548e3153ea7ca8f9cd3cb77b/data?key=<TRELLO_APP_KEY>&token=<TRELLO_APP_TOKEN>","body":{"encoding":"US-ASCII","base64_string":""},"headers":{"User-Agent":["TacoKit 0.0.1"],"Accept-Encoding":["gzip;q=1.0,deflate;q=0.6,identity;q=0.3"],"Accept":["*/*"]}},"response":{"status":{"code":200,"message":"OK"},"headers":{"Cache-Control":["max-age=0, must-revalidate, no-cache, no-store"],"X-Content-Type-Options":["nosniff"],"Strict-Transport-Security":["max-age=15768000"],"X-Xss-Protection":["1; mode=block"],"X-Frame-Options":["DENY"],"X-Trello-Version":["1.268.2"],"X-Trello-Environment":["Production"],"Set-Cookie":["dsc=4da0cf780b6ad37767961e0b7aa2ccdadcf6f255ebd157c0a36dd0af7e7c8aee; Path=/; Expires=Sat, 20 Dec 2014 03:46:06 GMT; Secure","incap_ses_220_168562=90OLR7qXjjAy/OYYNZkNA338kFQAAAAAHW5jJ5J31c5dpAKyHzsdAg==; path=/; Domain=.trello.com","visid_incap_168562=aqlMo/j+S8a7/2DHGOcvdn38kFQAAAAAQUIPAAAAAACFVbK9hlUuuriX97xLs7rC; expires=Thu, 15 Dec 2016 12:28:10 GMT; path=/; Domain=.trello.com"],"X-Server-Time":["1418787966825"],"Expires":["Thu, 01 Jan 1970 00:00:00"],"Content-Type":["application/json"],"Access-Control-Allow-Origin":["*"],"Access-Control-Allow-Methods":["GET, PUT, POST, DELETE"],"Content-Length":["157"],"Vary":["Accept-Encoding"],"Date":["Wed, 17 Dec 2014 03:46:06 GMT"],"X-Iinfo":["9-73492312-73480854 PNNY RT(1418787965741 49) q(0 0 0 -1) r(1 1) U10000"],"X-Cdn":["Incapsula"]},"body":{"encoding":"UTF-8","base64_string":"eyJvcmdhbml6YXRpb24iOnsibmFtZSI6IlRlYW0gVGFjb2tpdCIsImlkIjoi\nNTQ4ZTMwZTk2ODNlMTkyM2Y2NzZiYTIwIn0sImJvYXJkIjp7InNob3J0TGlu\nayI6InN3ZXpROVhTIiwibmFtZSI6IlRlc3QgQm9hcmQiLCJpZCI6IjU0OGE2\nNzU1ODFkMWQ2NjljOWU4MTg0ZSJ9fQ==\n"},"http_version":null},"recorded_at":"Wed, 17 Dec 2014 03:46:09 GMT"}],"recorded_with":"VCR 2.9.3"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"http_interactions":[{"request":{"method":"get","uri":"https://api.trello.com/1/actions/548e3153ea7ca8f9cd3cb77b/data?key=<TRELLO_APP_KEY>&token=<TRELLO_APP_TOKEN>","body":{"encoding":"US-ASCII","base64_string":""},"headers":{"User-Agent":["TacoKit 0.0.1"],"Accept-Encoding":["gzip;q=1.0,deflate;q=0.6,identity;q=0.3"],"Accept":["*/*"]}},"response":{"status":{"code":200,"message":"OK"},"headers":{"Cache-Control":["max-age=0, must-revalidate, no-cache, no-store"],"X-Content-Type-Options":["nosniff"],"Strict-Transport-Security":["max-age=15768000"],"X-Xss-Protection":["1; mode=block"],"X-Frame-Options":["DENY"],"X-Trello-Version":["1.269.0"],"X-Trello-Environment":["Production"],"Set-Cookie":["___utmvaDOussFI=RoC\u0001WSpO; path=/; Max-Age=900","___utmvbDOussFI=vZn XmhOnalB: CtV; path=/; Max-Age=900","___utmvmDOussFI=kGNOGgLayQa; path=/; Max-Age=900","dsc=bbd14c9092f3af7bf28436bf3dd6571e0b030b2693159600acef7b7bd7a8d77c; Path=/; Expires=Mon, 22 Dec 2014 14:34:39 GMT; Secure","incap_ses_220_168562=ZQcOcnWsRWtua1McNZkNA343lFQAAAAApQHlrgZLMIqlGQhNGULd0A==; path=/; Domain=.trello.com","visid_incap_168562=ctQjgUpyRDCYjTPRtFvyhn43lFQAAAAAQUIPAAAAAAA86u1b8C8pAYrOcUyF2INw; expires=Sun, 18 Dec 2016 12:28:13 GMT; path=/; Domain=.trello.com"],"X-Server-Time":["1418999679825"],"Expires":["Thu, 01 Jan 1970 00:00:00"],"Content-Type":["application/json"],"Access-Control-Allow-Origin":["*"],"Access-Control-Allow-Methods":["GET, PUT, POST, DELETE"],"Content-Length":["157"],"Vary":["Accept-Encoding"],"Date":["Fri, 19 Dec 2014 14:34:39 GMT"],"X-Iinfo":["9-104106285-104077929 PNNY RT(1418999678738 44) q(0 0 0 0) r(1 1)"],"X-Cdn":["Incapsula"]},"body":{"encoding":"UTF-8","base64_string":"eyJvcmdhbml6YXRpb24iOnsibmFtZSI6IlRlYW0gVGFjb2tpdCIsImlkIjoi\nNTQ4ZTMwZTk2ODNlMTkyM2Y2NzZiYTIwIn0sImJvYXJkIjp7InNob3J0TGlu\nayI6InN3ZXpROVhTIiwibmFtZSI6IlRlc3QgQm9hcmQiLCJpZCI6IjU0OGE2\nNzU1ODFkMWQ2NjljOWU4MTg0ZSJ9fQ==\n"},"http_version":null},"recorded_at":"Fri, 19 Dec 2014 14:34:40 GMT"}],"recorded_with":"VCR 2.9.3"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"http_interactions":[{"request":{"method":"get","uri":"https://api.trello.com/1/actions/548e3153ea7ca8f9cd3cb77b/type?key=<TRELLO_APP_KEY>&token=<TRELLO_APP_TOKEN>","body":{"encoding":"US-ASCII","base64_string":""},"headers":{"User-Agent":["TacoKit 0.0.1"],"Accept-Encoding":["gzip;q=1.0,deflate;q=0.6,identity;q=0.3"],"Accept":["*/*"]}},"response":{"status":{"code":200,"message":"OK"},"headers":{"Cache-Control":["max-age=0, must-revalidate, no-cache, no-store"],"X-Content-Type-Options":["nosniff"],"Strict-Transport-Security":["max-age=15768000"],"X-Xss-Protection":["1; mode=block"],"X-Frame-Options":["DENY"],"X-Trello-Version":["1.268.2"],"X-Trello-Environment":["Production"],"Set-Cookie":["dsc=10e1e8c467eb55984f3829b80b112bd7cd3a48bf5b4790bcc8aff60334d4fb0c; Path=/; Expires=Sat, 20 Dec 2014 03:46:06 GMT; Secure","incap_ses_220_168562=esrRe8j9LFn4++YYNZkNA338kFQAAAAA+bqMloQmibXhxjKTl3nsWA==; path=/; Domain=.trello.com","visid_incap_168562=6W/9IkfeQyinI7gdYrH7A338kFQAAAAAQUIPAAAAAAC59TB9owaJKiR81wIPOJw4; expires=Thu, 15 Dec 2016 12:28:10 GMT; path=/; Domain=.trello.com"],"X-Server-Time":["1418787966649"],"Expires":["Thu, 01 Jan 1970 00:00:00"],"Content-Type":["application/json"],"Access-Control-Allow-Origin":["*"],"Access-Control-Allow-Methods":["GET, PUT, POST, DELETE"],"Content-Length":["36"],"Vary":["Accept-Encoding"],"Date":["Wed, 17 Dec 2014 03:46:06 GMT"],"X-Iinfo":["9-73492284-73351768 PNNY RT(1418787965575 45) q(0 0 0 -1) r(0 0) U10000"],"X-Cdn":["Incapsula"]},"body":{"encoding":"UTF-8","base64_string":"eyJfdmFsdWUiOiJhZGRUb09yZ2FuaXphdGlvbkJvYXJkIn0K\n"},"http_version":null},"recorded_at":"Wed, 17 Dec 2014 03:46:09 GMT"}],"recorded_with":"VCR 2.9.3"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"http_interactions":[{"request":{"method":"get","uri":"https://api.trello.com/1/actions/548e3153ea7ca8f9cd3cb77b/board?key=<TRELLO_APP_KEY>&token=<TRELLO_APP_TOKEN>","body":{"encoding":"US-ASCII","base64_string":""},"headers":{"User-Agent":["TacoKit 0.0.1"],"Accept-Encoding":["gzip;q=1.0,deflate;q=0.6,identity;q=0.3"],"Accept":["*/*"]}},"response":{"status":{"code":200,"message":"OK"},"headers":{"Cache-Control":["max-age=0, must-revalidate, no-cache, no-store"],"X-Content-Type-Options":["nosniff"],"Strict-Transport-Security":["max-age=15768000"],"X-Xss-Protection":["1; mode=block"],"X-Frame-Options":["DENY"],"X-Trello-Version":["1.268.2"],"X-Trello-Environment":["Production"],"Set-Cookie":["dsc=3d273d677d6becaed96721cb25c08bd42dbcb15d4e08047bccb9e85b4e208d32; Path=/; Expires=Sat, 20 Dec 2014 03:47:24 GMT; Secure","incap_ses_220_168562=t1izSkeBjzfHSucYNZkNA8v8kFQAAAAAhwZZHK1pKyc1SAfPxiTNdA==; path=/; Domain=.trello.com","visid_incap_168562=N3lSKlYdTcKR+P9rPLik2Mv8kFQAAAAAQUIPAAAAAABANwgSyGxq0Bd8AjJgA8/o; expires=Thu, 15 Dec 2016 12:28:11 GMT; path=/; Domain=.trello.com"],"X-Server-Time":["1418788044449"],"Expires":["Thu, 01 Jan 1970 00:00:00"],"Content-Type":["application/json"],"Access-Control-Allow-Origin":["*"],"Access-Control-Allow-Methods":["GET, PUT, POST, DELETE"],"Etag":["\"-930428495\""],"Vary":["Accept-Encoding"],"Date":["Wed, 17 Dec 2014 03:47:24 GMT"],"Transfer-Encoding":["chunked"],"X-Iinfo":["5-12771859-12765964 PNNY RT(1418788043333 54) q(0 0 0 -1) r(1 1)"],"X-Cdn":["Incapsula"]},"body":{"encoding":"UTF-8","base64_string":"eyJpZCI6IjU0OGE2NzU1ODFkMWQ2NjljOWU4MTg0ZSIsIm5hbWUiOiJUZXN0\nIEJvYXJkIiwiZGVzYyI6IiIsImRlc2NEYXRhIjpudWxsLCJjbG9zZWQiOmZh\nbHNlLCJpZE9yZ2FuaXphdGlvbiI6IjU0OGUzMGU5NjgzZTE5MjNmNjc2YmEy\nMCIsImludml0ZWQiOmZhbHNlLCJwaW5uZWQiOmZhbHNlLCJzdGFycmVkIjp0\ncnVlLCJ1cmwiOiJodHRwczovL3RyZWxsby5jb20vYi9zd2V6UTlYUy90ZXN0\nLWJvYXJkIiwicHJlZnMiOnsicGVybWlzc2lvbkxldmVsIjoicHVibGljIiwi\ndm90aW5nIjoiZGlzYWJsZWQiLCJjb21tZW50cyI6Im1lbWJlcnMiLCJpbnZp\ndGF0aW9ucyI6Im1lbWJlcnMiLCJzZWxmSm9pbiI6ZmFsc2UsImNhcmRDb3Zl\ncnMiOnRydWUsImNhcmRBZ2luZyI6InJlZ3VsYXIiLCJjYWxlbmRhckZlZWRF\nbmFibGVkIjpmYWxzZSwiYmFja2dyb3VuZCI6ImdyZWVuIiwiYmFja2dyb3Vu\nZENvbG9yIjoiIzFFOUY0OSIsImJhY2tncm91bmRJbWFnZSI6bnVsbCwiYmFj\na2dyb3VuZEltYWdlU2NhbGVkIjpudWxsLCJiYWNrZ3JvdW5kVGlsZSI6ZmFs\nc2UsImJhY2tncm91bmRCcmlnaHRuZXNzIjoidW5rbm93biIsImNhbkJlUHVi\nbGljIjp0cnVlLCJjYW5CZU9yZyI6dHJ1ZSwiY2FuQmVQcml2YXRlIjp0cnVl\nLCJjYW5JbnZpdGUiOnRydWV9LCJpbnZpdGF0aW9ucyI6W10sIm1lbWJlcnNo\naXBzIjpbeyJpZCI6IjU0OGE2NzU1ODFkMWQ2NjljOWU4MTg0ZiIsImlkTWVt\nYmVyIjoiNTQ4YTY2OTZiM2I5OTE4YmViMTQ0YjA3IiwibWVtYmVyVHlwZSI6\nImFkbWluIiwidW5jb25maXJtZWQiOmZhbHNlLCJkZWFjdGl2YXRlZCI6ZmFs\nc2V9LHsiaWQiOiI1NDhhNjc2ZWU3Y2MzNzlkZWJiOGQ5YzYiLCJpZE1lbWJl\nciI6IjRmMDc5YWRjNzM2NjhiMjQ0YjFjMDk5YSIsIm1lbWJlclR5cGUiOiJu\nb3JtYWwiLCJ1bmNvbmZpcm1lZCI6ZmFsc2UsImRlYWN0aXZhdGVkIjpmYWxz\nZX1dLCJzaG9ydExpbmsiOiJzd2V6UTlYUyIsInN1YnNjcmliZWQiOmZhbHNl\nLCJsYWJlbE5hbWVzIjp7ImdyZWVuIjoiTGFiZWwgMSIsInllbGxvdyI6Ikxh\nYmVsIDIiLCJvcmFuZ2UiOiJMYWJlbCAzIiwicmVkIjoiTGFiZWwgNCIsInB1\ncnBsZSI6IkxhYmVsIDUiLCJibHVlIjoiTGFiZWwgNiIsInNreSI6IiIsImxp\nbWUiOiIiLCJwaW5rIjoiIiwiYmxhY2siOiIifSwicG93ZXJVcHMiOltdLCJk\nYXRlTGFzdEFjdGl2aXR5IjoiMjAxNC0xMi0xNlQxNDowMzowOS4wMjRaIiwi\nZGF0ZUxhc3RWaWV3IjoiMjAxNC0xMi0xN1QwMzo0NjoyNi4yMTZaIiwic2hv\ncnRVcmwiOiJodHRwczovL3RyZWxsby5jb20vYi9zd2V6UTlYUyJ9\n"},"http_version":null},"recorded_at":"Wed, 17 Dec 2014 03:47:27 GMT"}],"recorded_with":"VCR 2.9.3"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"http_interactions":[{"request":{"method":"get","uri":"https://api.trello.com/1/actions/548e3153ea7ca8f9cd3cb77b/entities?key=<TRELLO_APP_KEY>&token=<TRELLO_APP_TOKEN>","body":{"encoding":"US-ASCII","base64_string":""},"headers":{"User-Agent":["TacoKit 0.0.1"],"Accept-Encoding":["gzip;q=1.0,deflate;q=0.6,identity;q=0.3"],"Accept":["*/*"]}},"response":{"status":{"code":200,"message":"OK"},"headers":{"Cache-Control":["max-age=0, must-revalidate, no-cache, no-store"],"X-Content-Type-Options":["nosniff"],"Strict-Transport-Security":["max-age=15768000"],"X-Xss-Protection":["1; mode=block"],"X-Frame-Options":["DENY"],"X-Trello-Version":["1.268.2"],"X-Trello-Environment":["Production"],"Set-Cookie":["dsc=829be8472614423c121a9cd9255c176bf48493b2c04ee04359de7c0d7e88bdfb; Path=/; Expires=Sat, 20 Dec 2014 03:49:04 GMT; Secure","incap_ses_220_168562=AYt4XYq9WgJhrecYNZkNAzD9kFQAAAAAscZMmVrcnYCk3mASStrXaQ==; path=/; Domain=.trello.com","visid_incap_168562=46d52Y5vScK4xIFVjHleezD9kFQAAAAAQUIPAAAAAACaFN3yqSbZXZ0x8urmo3YG; expires=Thu, 15 Dec 2016 12:28:10 GMT; path=/; Domain=.trello.com"],"X-Server-Time":["1418788145000"],"Expires":["Thu, 01 Jan 1970 00:00:00"],"Content-Type":["application/json"],"Access-Control-Allow-Origin":["*"],"Access-Control-Allow-Methods":["GET, PUT, POST, DELETE"],"Content-Length":["319"],"Vary":["Accept-Encoding"],"Date":["Wed, 17 Dec 2014 03:49:05 GMT"],"X-Iinfo":["7-32069398-32054462 PNNY RT(1418788143913 50) q(0 0 0 -1) r(1 1)"],"X-Cdn":["Incapsula"]},"body":{"encoding":"UTF-8","base64_string":"W3sidHlwZSI6Im1lbWJlciIsImlkIjoiNTQ4YTY2OTZiM2I5OTE4YmViMTQ0\nYjA3IiwidXNlcm5hbWUiOiJ0YWNva2l0IiwidGV4dCI6IlRhY28gS2l0In0s\neyJ0eXBlIjoidGV4dCIsInRleHQiOiJhZGRlZCJ9LHsidHlwZSI6ImJvYXJk\nIiwiaWQiOiI1NDhhNjc1NTgxZDFkNjY5YzllODE4NGUiLCJ0ZXh0IjoiVGVz\ndCBCb2FyZCIsInNob3J0TGluayI6InN3ZXpROVhTIn0seyJ0eXBlIjoidGV4\ndCIsInRleHQiOiJ0byJ9LHsidHlwZSI6Im9yZ2FuaXphdGlvbiIsImlkIjoi\nNTQ4ZTMwZTk2ODNlMTkyM2Y2NzZiYTIwIiwidGV4dCI6IlRlYW0gVGFjb2tp\ndCJ9XQ==\n"},"http_version":null},"recorded_at":"Wed, 17 Dec 2014 03:49:07 GMT"}],"recorded_with":"VCR 2.9.3"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"http_interactions":[{"request":{"method":"get","uri":"https://api.trello.com/1/actions/548e3153ea7ca8f9cd3cb77b/memberships?key=<TRELLO_APP_KEY>&token=<TRELLO_APP_TOKEN>","body":{"encoding":"US-ASCII","base64_string":""},"headers":{"User-Agent":["TacoKit 0.0.1"],"Accept-Encoding":["gzip;q=1.0,deflate;q=0.6,identity;q=0.3"],"Accept":["*/*"]}},"response":{"status":{"code":404,"message":"Not Found"},"headers":{"Cache-Control":["no-store, no-cache"],"X-Content-Type-Options":["nosniff"],"Strict-Transport-Security":["max-age=15768000"],"X-Xss-Protection":["1; mode=block"],"X-Frame-Options":["DENY"],"X-Trello-Version":["1.268.2"],"X-Trello-Environment":["Production"],"Set-Cookie":["dsc=12dfdfc63265f31acd91daba2d836e5cbb28688da4a29e92d1b3beb650415f8c; Path=/; Expires=Sat, 20 Dec 2014 03:47:24 GMT; Secure","incap_ses_220_168562=JS+qTaKTZiOTSucYNZkNA8v8kFQAAAAA/nhlLS1ERrpsFoK2TKx16A==; path=/; Domain=.trello.com","visid_incap_168562=wjPHkkzpSxWNTGapYm/gNsv8kFQAAAAAQUIPAAAAAADyduhl1rbfoeyxc1z83Q51; expires=Thu, 15 Dec 2016 12:27:58 GMT; path=/; Domain=.trello.com"],"Content-Type":["text/plain"],"Content-Length":["166"],"Vary":["Accept-Encoding"],"Date":["Wed, 17 Dec 2014 03:47:24 GMT"],"X-Iinfo":["8-49701494-49699342 PNNY RT(1418788043197 56) q(0 0 0 -1) r(0 0) U11"],"X-Cdn":["Incapsula"]},"body":{"encoding":"UTF-8","base64_string":"Q2Fubm90IEdFVCAvMS9hY3Rpb25zLzU0OGUzMTUzZWE3Y2E4ZjljZDNjYjc3\nYi9tZW1iZXJzaGlwcz9rZXk9PFRSRUxMT19BUFBfS0VZPiZ0b2tlbj08VFJF\nTExPX0FQUF9UT0tFTj4=\n"},"http_version":null},"recorded_at":"Wed, 17 Dec 2014 03:47:27 GMT"}],"recorded_with":"VCR 2.9.3"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"http_interactions":[{"request":{"method":"post","uri":"https://api.trello.com/1/cards/548dd95c8ca25ac9d0d9ce71/actions/comments?key=<TRELLO_APP_KEY>&token=<TRELLO_APP_TOKEN>","body":{"encoding":"UTF-8","base64_string":"dGV4dD1EZWxldGUrYWN0aW9uK3Rlc3QuK0Jvb3lhJTIx\n"},"headers":{"User-Agent":["TacoKit 0.0.1"],"Content-Type":["application/x-www-form-urlencoded"],"Accept-Encoding":["gzip;q=1.0,deflate;q=0.6,identity;q=0.3"],"Accept":["*/*"]}},"response":{"status":{"code":200,"message":"OK"},"headers":{"Cache-Control":["max-age=0, must-revalidate, no-cache, no-store"],"X-Content-Type-Options":["nosniff"],"Strict-Transport-Security":["max-age=15768000"],"X-Xss-Protection":["1; mode=block"],"X-Frame-Options":["DENY"],"X-Trello-Version":["1.269.0"],"X-Trello-Environment":["Production"],"Set-Cookie":["___utmvaDOussFI=OLW\u0001xJoI; path=/; Max-Age=900","___utmvbDOussFI=lZM XSvOualp: PtV; path=/; Max-Age=900","___utmvmDOussFI=tpZMNsnDguo; path=/; Max-Age=900","dsc=a411335f0f0e5574c44d204420b440217d73e4e9012cdbe69bdc77a81c1c2811; Path=/; Expires=Sun, 21 Dec 2014 03:59:22 GMT; Secure","incap_ses_220_168562=fN60UrARH04ZsF8aNZkNAxlRklQAAAAA1hzcA37H78nj15IehMFaYA==; path=/; Domain=.trello.com","visid_incap_168562=9i16CkRARYO8poidefTyrBlRklQAAAAAQUIPAAAAAACf6q8SWztPjRPBrhXr/M3b; expires=Fri, 16 Dec 2016 12:28:11 GMT; path=/; Domain=.trello.com"],"X-Server-Time":["1418875162781"],"Expires":["Thu, 01 Jan 1970 00:00:00"],"Content-Type":["application/json"],"Access-Control-Allow-Origin":["*"],"Access-Control-Allow-Methods":["GET, PUT, POST, DELETE"],"Content-Length":["1000"],"Vary":["Accept-Encoding"],"Date":["Thu, 18 Dec 2014 03:59:22 GMT"],"X-Iinfo":["10-109214540-109204979 PNNY RT(1418875161645 66) q(0 0 0 -1) r(0 0) U6"],"X-Cdn":["Incapsula"]},"body":{"encoding":"UTF-8","base64_string":"eyJpZCI6IjU0OTI1MTFhNDcyNDUyMTVlYWFjOTI4OSIsImlkTWVtYmVyQ3Jl\nYXRvciI6IjU0OGE2Njk2YjNiOTkxOGJlYjE0NGIwNyIsImRhdGEiOnsidGV4\ndCI6IkRlbGV0ZSBhY3Rpb24gdGVzdC4gQm9veWEhIiwidGV4dERhdGEiOnsi\nZW1vamkiOnt9fSwiY2FyZCI6eyJpZCI6IjU0OGRkOTVjOGNhMjVhYzlkMGQ5\nY2U3MSIsIm5hbWUiOiJDYXJkIDEiLCJpZFNob3J0IjoxLCJzaG9ydExpbmsi\nOiJrN0dISmo3USJ9LCJib2FyZCI6eyJpZCI6IjU0OGE2NzU1ODFkMWQ2Njlj\nOWU4MTg0ZSIsIm5hbWUiOiJUZXN0IEJvYXJkIiwic2hvcnRMaW5rIjoic3dl\nelE5WFMifSwibGlzdCI6eyJpZCI6IjU0OGRkOTQ4ZmZkMzc0MjIxOTI2YjRj\nOCIsIm5hbWUiOiJUZXN0IExpc3QgMSJ9fSwidHlwZSI6ImNvbW1lbnRDYXJk\nIiwiZGF0ZSI6IjIwMTQtMTItMThUMDM6NTk6MjIuNzQ2WiIsIm1lbWJlckNy\nZWF0b3IiOnsiaWQiOiI1NDhhNjY5NmIzYjk5MThiZWIxNDRiMDciLCJhdmF0\nYXJIYXNoIjoiY2IwZGY0NTA1NWJhYzg0ZTdjNWZiNzI4ZTAwZTIwMTUiLCJm\ndWxsTmFtZSI6IlRhY28gS2l0IiwiaW5pdGlhbHMiOiJUSyIsInVzZXJuYW1l\nIjoidGFjb2tpdCJ9LCJlbnRpdGllcyI6W3sidHlwZSI6Im1lbWJlciIsImlk\nIjoiNTQ4YTY2OTZiM2I5OTE4YmViMTQ0YjA3IiwidXNlcm5hbWUiOiJ0YWNv\na2l0IiwidGV4dCI6IlRhY28gS2l0In0seyJ0eXBlIjoidGV4dCIsInRleHQi\nOiJvbiIsImhpZGVJZkNvbnRleHQiOnRydWUsImlkQ29udGV4dCI6IjU0OGRk\nOTVjOGNhMjVhYzlkMGQ5Y2U3MSJ9LHsidHlwZSI6ImNhcmQiLCJoaWRlSWZD\nb250ZXh0Ijp0cnVlLCJzaG9ydExpbmsiOiJrN0dISmo3USIsImlkIjoiNTQ4\nZGQ5NWM4Y2EyNWFjOWQwZDljZTcxIiwidGV4dCI6IkNhcmQgMSJ9LHsidHlw\nZSI6ImNvbW1lbnQiLCJ0ZXh0IjoiRGVsZXRlIGFjdGlvbiB0ZXN0LiBCb295\nYSEiLCJ0ZXh0SHRtbCI6IjxwPkRlbGV0ZSBhY3Rpb24gdGVzdC4gQm9veWEh\nPC9wPlxuIn1dfQ==\n"},"http_version":null},"recorded_at":"Thu, 18 Dec 2014 03:59:26 GMT"},{"request":{"method":"delete","uri":"https://api.trello.com/1/actions/5492511a47245215eaac9289?key=<TRELLO_APP_KEY>&token=<TRELLO_APP_TOKEN>","body":{"encoding":"US-ASCII","base64_string":""},"headers":{"User-Agent":["TacoKit 0.0.1"],"Accept-Encoding":["gzip;q=1.0,deflate;q=0.6,identity;q=0.3"],"Accept":["*/*"]}},"response":{"status":{"code":200,"message":"OK"},"headers":{"Cache-Control":["max-age=0, must-revalidate, no-cache, no-store"],"X-Content-Type-Options":["nosniff"],"Strict-Transport-Security":["max-age=15768000"],"X-Xss-Protection":["1; mode=block"],"X-Frame-Options":["DENY"],"X-Trello-Version":["1.269.0"],"X-Trello-Environment":["Production"],"Set-Cookie":["___utmvaDOussFI=otP\u0001iaoE; path=/; Max-Age=900","___utmvbDOussFI=EZy XAoOTalB: MtN; path=/; Max-Age=900","___utmvmDOussFI=NhEIqOfhQBN; path=/; Max-Age=900","dsc=d7f7677023c06dd3e9e8bad15a8cbbb06da2e54cc407c8ef3fe4be6d565ae1fc; Path=/; Expires=Sun, 21 Dec 2014 03:59:22 GMT; Secure","incap_ses_220_168562=xcS/eRsGoFpdsF8aNZkNAxpRklQAAAAAUTEFBWzdOoegSLiLwl2eCw==; path=/; Domain=.trello.com","visid_incap_168562=y275kCsjQFubetSh1YvHgxpRklQAAAAAQUIPAAAAAAC6/UGnEDgNcGb661wraS7E; expires=Fri, 16 Dec 2016 12:28:11 GMT; path=/; Domain=.trello.com"],"X-Server-Time":["1418875162993"],"Expires":["Thu, 01 Jan 1970 00:00:00"],"Content-Type":["application/json"],"Access-Control-Allow-Origin":["*"],"Access-Control-Allow-Methods":["GET, PUT, POST, DELETE"],"Content-Length":["2"],"Vary":["Accept-Encoding"],"Date":["Thu, 18 Dec 2014 03:59:22 GMT"],"X-Iinfo":["10-109214573-109204979 PNNY RT(1418875161853 60) q(0 0 0 -1) r(1 1) U6"],"X-Cdn":["Incapsula"]},"body":{"encoding":"UTF-8","base64_string":"e30=\n"},"http_version":null},"recorded_at":"Thu, 18 Dec 2014 03:59:26 GMT"},{"request":{"method":"get","uri":"https://api.trello.com/1/actions/5492511a47245215eaac9289?key=<TRELLO_APP_KEY>&token=<TRELLO_APP_TOKEN>","body":{"encoding":"US-ASCII","base64_string":""},"headers":{"User-Agent":["TacoKit 0.0.1"],"Accept-Encoding":["gzip;q=1.0,deflate;q=0.6,identity;q=0.3"],"Accept":["*/*"]}},"response":{"status":{"code":404,"message":"Not Found"},"headers":{"Cache-Control":["max-age=0, must-revalidate, no-cache, no-store"],"X-Content-Type-Options":["nosniff"],"Strict-Transport-Security":["max-age=15768000"],"X-Xss-Protection":["1; mode=block"],"X-Frame-Options":["DENY"],"X-Trello-Version":["1.269.0"],"X-Trello-Environment":["Production"],"Set-Cookie":["___utmvaDOussFI=Qbm\u0001dlAA; path=/; Max-Age=900","___utmvbDOussFI=DZp XnYOSalv: dtA; path=/; Max-Age=900","___utmvmDOussFI=SIfvtUEOSrT; path=/; Max-Age=900","dsc=3163ec45a867fa819ab952b6a47334c03dedb3866f20a226950853744f885490; Path=/; Expires=Sun, 21 Dec 2014 03:59:23 GMT; Secure","incap_ses_220_168562=oMTocmE/zl+BsF8aNZkNAxpRklQAAAAAUOJ4hRo49PwnTc0BIVFpBQ==; path=/; Domain=.trello.com","visid_incap_168562=WZbj8T4hQsCx9zxW+biePxpRklQAAAAAQUIPAAAAAAAQNCEDdfIvXBcxtIe3JgGP; expires=Fri, 16 Dec 2016 12:27:59 GMT; path=/; Domain=.trello.com"],"Content-Type":["text/plain"],"Expires":["Thu, 01 Jan 1970 00:00:00"],"Access-Control-Allow-Origin":["*"],"Access-Control-Allow-Methods":["GET, PUT, POST, DELETE"],"Content-Length":["38"],"Vary":["Accept-Encoding"],"Date":["Thu, 18 Dec 2014 03:59:23 GMT"],"X-Iinfo":["8-59209254-59195803 PNNY RT(1418875162064 51) q(0 0 0 -1) r(0 0) U11"],"X-Cdn":["Incapsula"]},"body":{"encoding":"UTF-8","base64_string":"VGhlIHJlcXVlc3RlZCByZXNvdXJjZSB3YXMgbm90IGZvdW5kLgo=\n"},"http_version":null},"recorded_at":"Thu, 18 Dec 2014 03:59:26 GMT"}],"recorded_with":"VCR 2.9.3"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"http_interactions":[{"request":{"method":"put","uri":"https://api.trello.com/1/actions/549102431b607566bafc93a9?key=<TRELLO_APP_KEY>&token=<TRELLO_APP_TOKEN>","body":{"encoding":"UTF-8","base64_string":"dGV4dD0lNDB0YWNva2l0K1RoYW5rcytmb3IrdGhlK2ludml0ZSUyQytidWQ=\n"},"headers":{"User-Agent":["TacoKit 0.0.1"],"Content-Type":["application/x-www-form-urlencoded"],"Accept-Encoding":["gzip;q=1.0,deflate;q=0.6,identity;q=0.3"],"Accept":["*/*"]}},"response":{"status":{"code":200,"message":"OK"},"headers":{"Cache-Control":["max-age=0, must-revalidate, no-cache, no-store"],"X-Content-Type-Options":["nosniff"],"Strict-Transport-Security":["max-age=15768000"],"X-Xss-Protection":["1; mode=block"],"X-Frame-Options":["DENY"],"X-Trello-Version":["1.269.0"],"X-Trello-Environment":["Production"],"Set-Cookie":["dsc=54698d9815b5f4ebeac69c61c70895b20fcc8e4c656466962669dfa3d778fd6a; Path=/; Expires=Sat, 20 Dec 2014 23:35:12 GMT; Secure","incap_ses_156_168562=m4Kndr35gAx+AyZocjoqAi8TklQAAAAAWqVQM0+MzBJxgY93pmqVZg==; path=/; Domain=.trello.com","visid_incap_168562=+eRzWbRrSzeKfytIgmkkWS8TklQAAAAAQUIPAAAAAAA2sLTsDvRbfV4uYulVTl72; expires=Fri, 16 Dec 2016 12:25:16 GMT; path=/; Domain=.trello.com"],"X-Server-Time":["1418859312603"],"Expires":["Thu, 01 Jan 1970 00:00:00"],"Content-Type":["application/json"],"Access-Control-Allow-Origin":["*"],"Access-Control-Allow-Methods":["GET, PUT, POST, DELETE"],"Content-Length":["654"],"Vary":["Accept-Encoding"],"Date":["Wed, 17 Dec 2014 23:35:12 GMT"],"X-Iinfo":["7-46857832-46723435 PNNY RT(1418859311683 41) q(0 0 0 -1) r(2 2) U6"],"X-Cdn":["Incapsula"]},"body":{"encoding":"UTF-8","base64_string":"eyJpZCI6IjU0OTEwMjQzMWI2MDc1NjZiYWZjOTNhOSIsImlkTWVtYmVyQ3Jl\nYXRvciI6IjRmMDc5YWRjNzM2NjhiMjQ0YjFjMDk5YSIsImRhdGEiOnsiZGF0\nZUxhc3RFZGl0ZWQiOiIyMDE0LTEyLTE3VDIzOjM1OjEyLjU1NFoiLCJ0ZXh0\nRGF0YSI6eyJlbW9qaSI6e319LCJ0ZXh0IjoiQHRhY29raXQgVGhhbmtzIGZv\nciB0aGUgaW52aXRlLCBidWQiLCJjYXJkIjp7ImlkIjoiNTQ4ZGQ5NWM4Y2Ey\nNWFjOWQwZDljZTcxIiwibmFtZSI6IkNhcmQgMSIsImlkU2hvcnQiOjEsInNo\nb3J0TGluayI6Ims3R0hKajdRIn0sImJvYXJkIjp7ImlkIjoiNTQ4YTY3NTU4\nMWQxZDY2OWM5ZTgxODRlIiwibmFtZSI6IlRlc3QgQm9hcmQiLCJzaG9ydExp\nbmsiOiJzd2V6UTlYUyJ9LCJsaXN0Ijp7ImlkIjoiNTQ4ZGQ5NDhmZmQzNzQy\nMjE5MjZiNGM4IiwibmFtZSI6Ikxpc3QgMSJ9fSwidHlwZSI6ImNvbW1lbnRD\nYXJkIiwiZGF0ZSI6IjIwMTQtMTItMTdUMDQ6MTA6NDMuODI4WiIsIm1lbWJl\nckNyZWF0b3IiOnsiaWQiOiI0ZjA3OWFkYzczNjY4YjI0NGIxYzA5OWEiLCJh\ndmF0YXJIYXNoIjoiNzA2ZTk1ZTQyN2Y5MTY3MGJmMjFlZWU2YWZjY2VlOTAi\nLCJmdWxsTmFtZSI6IlJvc3MgS2FmZmVuYmVyZ2VyIiwiaW5pdGlhbHMiOiJS\nSyIsInVzZXJuYW1lIjoicm9zc3RhIn19\n"},"http_version":null},"recorded_at":"Wed, 17 Dec 2014 23:35:23 GMT"}],"recorded_with":"VCR 2.9.3"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"http_interactions":[{"request":{"method":"post","uri":"https://api.trello.com/1/cards/548dd95c8ca25ac9d0d9ce71/actions/comments?key=<TRELLO_APP_KEY>&token=<TRELLO_APP_TOKEN>","body":{"encoding":"UTF-8","base64_string":"dGV4dD1VcGRhdGUrYWN0aW9uK3Rlc3QuK0Jvb3lhJTIx\n"},"headers":{"User-Agent":["TacoKit 0.0.1"],"Content-Type":["application/x-www-form-urlencoded"],"Accept-Encoding":["gzip;q=1.0,deflate;q=0.6,identity;q=0.3"],"Accept":["*/*"]}},"response":{"status":{"code":200,"message":"OK"},"headers":{"Cache-Control":["max-age=0, must-revalidate, no-cache, no-store"],"X-Content-Type-Options":["nosniff"],"Strict-Transport-Security":["max-age=15768000"],"X-Xss-Protection":["1; mode=block"],"X-Frame-Options":["DENY"],"X-Trello-Version":["1.269.0"],"X-Trello-Environment":["Production"],"Set-Cookie":["___utmvaDOussFI=fgJ\u0001kucG; path=/; Max-Age=900","___utmvbDOussFI=sZl XtmOEalK: KtU; path=/; Max-Age=900","___utmvmDOussFI=PvapyjxXjFp; path=/; Max-Age=900","dsc=c66ac2851c9d60fe36692d5b1dcacc0687988e2b91425bf0c88ec97d4ea8d139; Path=/; Expires=Sun, 21 Dec 2014 04:00:04 GMT; Secure","incap_ses_220_168562=68QFHbrc3zCM2F8aNZkNA0NRklQAAAAAFVAJ3j7/R41Y5nJfLjIbyA==; path=/; Domain=.trello.com","visid_incap_168562=MCFEMEojREaeSvC9y39S4kNRklQAAAAAQUIPAAAAAADYuqrLJ0FVlo6vIYqb5Vf8; expires=Fri, 16 Dec 2016 12:28:12 GMT; path=/; Domain=.trello.com"],"X-Server-Time":["1418875204532"],"Expires":["Thu, 01 Jan 1970 00:00:00"],"Content-Type":["application/json"],"Access-Control-Allow-Origin":["*"],"Access-Control-Allow-Methods":["GET, PUT, POST, DELETE"],"Content-Length":["1000"],"Vary":["Accept-Encoding"],"Date":["Thu, 18 Dec 2014 04:00:04 GMT"],"X-Iinfo":["5-15127153-15126891 PNNY RT(1418875203361 67) q(0 0 0 -1) r(1 1) U6"],"X-Cdn":["Incapsula"]},"body":{"encoding":"UTF-8","base64_string":"eyJpZCI6IjU0OTI1MTQ0N2NiNWVkNDMzOTc4M2M1ZSIsImlkTWVtYmVyQ3Jl\nYXRvciI6IjU0OGE2Njk2YjNiOTkxOGJlYjE0NGIwNyIsImRhdGEiOnsidGV4\ndCI6IlVwZGF0ZSBhY3Rpb24gdGVzdC4gQm9veWEhIiwidGV4dERhdGEiOnsi\nZW1vamkiOnt9fSwiY2FyZCI6eyJpZCI6IjU0OGRkOTVjOGNhMjVhYzlkMGQ5\nY2U3MSIsIm5hbWUiOiJDYXJkIDEiLCJpZFNob3J0IjoxLCJzaG9ydExpbmsi\nOiJrN0dISmo3USJ9LCJib2FyZCI6eyJpZCI6IjU0OGE2NzU1ODFkMWQ2Njlj\nOWU4MTg0ZSIsIm5hbWUiOiJUZXN0IEJvYXJkIiwic2hvcnRMaW5rIjoic3dl\nelE5WFMifSwibGlzdCI6eyJpZCI6IjU0OGRkOTQ4ZmZkMzc0MjIxOTI2YjRj\nOCIsIm5hbWUiOiJUZXN0IExpc3QgMSJ9fSwidHlwZSI6ImNvbW1lbnRDYXJk\nIiwiZGF0ZSI6IjIwMTQtMTItMThUMDQ6MDA6MDQuNDg1WiIsIm1lbWJlckNy\nZWF0b3IiOnsiaWQiOiI1NDhhNjY5NmIzYjk5MThiZWIxNDRiMDciLCJhdmF0\nYXJIYXNoIjoiY2IwZGY0NTA1NWJhYzg0ZTdjNWZiNzI4ZTAwZTIwMTUiLCJm\ndWxsTmFtZSI6IlRhY28gS2l0IiwiaW5pdGlhbHMiOiJUSyIsInVzZXJuYW1l\nIjoidGFjb2tpdCJ9LCJlbnRpdGllcyI6W3sidHlwZSI6Im1lbWJlciIsImlk\nIjoiNTQ4YTY2OTZiM2I5OTE4YmViMTQ0YjA3IiwidXNlcm5hbWUiOiJ0YWNv\na2l0IiwidGV4dCI6IlRhY28gS2l0In0seyJ0eXBlIjoidGV4dCIsInRleHQi\nOiJvbiIsImhpZGVJZkNvbnRleHQiOnRydWUsImlkQ29udGV4dCI6IjU0OGRk\nOTVjOGNhMjVhYzlkMGQ5Y2U3MSJ9LHsidHlwZSI6ImNhcmQiLCJoaWRlSWZD\nb250ZXh0Ijp0cnVlLCJzaG9ydExpbmsiOiJrN0dISmo3USIsImlkIjoiNTQ4\nZGQ5NWM4Y2EyNWFjOWQwZDljZTcxIiwidGV4dCI6IkNhcmQgMSJ9LHsidHlw\nZSI6ImNvbW1lbnQiLCJ0ZXh0IjoiVXBkYXRlIGFjdGlvbiB0ZXN0LiBCb295\nYSEiLCJ0ZXh0SHRtbCI6IjxwPlVwZGF0ZSBhY3Rpb24gdGVzdC4gQm9veWEh\nPC9wPlxuIn1dfQ==\n"},"http_version":null},"recorded_at":"Thu, 18 Dec 2014 04:00:08 GMT"},{"request":{"method":"put","uri":"https://api.trello.com/1/actions/549251447cb5ed4339783c5e?key=<TRELLO_APP_KEY>&token=<TRELLO_APP_TOKEN>","body":{"encoding":"UTF-8","base64_string":"dGV4dD0lNDB0YWNva2l0K1RoYW5rcytmb3IrdGhlK2ludml0ZSUyQytidWQ=\n"},"headers":{"User-Agent":["TacoKit 0.0.1"],"Content-Type":["application/x-www-form-urlencoded"],"Accept-Encoding":["gzip;q=1.0,deflate;q=0.6,identity;q=0.3"],"Accept":["*/*"]}},"response":{"status":{"code":200,"message":"OK"},"headers":{"Cache-Control":["max-age=0, must-revalidate, no-cache, no-store"],"X-Content-Type-Options":["nosniff"],"Strict-Transport-Security":["max-age=15768000"],"X-Xss-Protection":["1; mode=block"],"X-Frame-Options":["DENY"],"X-Trello-Version":["1.269.0"],"X-Trello-Environment":["Production"],"Set-Cookie":["___utmvaDOussFI=YaZ\u0001sQLT; path=/; Max-Age=900","___utmvbDOussFI=QZa XvuOwals: otE; path=/; Max-Age=900","___utmvmDOussFI=mtAcBDUKues; path=/; Max-Age=900","dsc=f967d7d0d881008392ab899b690c27fac41cc046eec33f819dfb1e3503793489; Path=/; Expires=Sun, 21 Dec 2014 04:00:04 GMT; Secure","incap_ses_220_168562=t4UnCkx9bWzl2F8aNZkNA0NRklQAAAAAO/qkvtt3uavf/Dul3on7dA==; path=/; Domain=.trello.com","visid_incap_168562=4zoiDuyBQYiKOI4IpGXqEUNRklQAAAAAQUIPAAAAAABixpcaDcwbshRhouLSJWyq; expires=Fri, 16 Dec 2016 12:28:12 GMT; path=/; Domain=.trello.com"],"X-Server-Time":["1418875204801"],"Expires":["Thu, 01 Jan 1970 00:00:00"],"Content-Type":["application/json"],"Access-Control-Allow-Origin":["*"],"Access-Control-Allow-Methods":["GET, PUT, POST, DELETE"],"Content-Length":["651"],"Vary":["Accept-Encoding"],"Date":["Thu, 18 Dec 2014 04:00:04 GMT"],"X-Iinfo":["5-15127158-15126165 PNNY RT(1418875203612 59) q(0 0 0 -1) r(2 2) U6"],"X-Cdn":["Incapsula"]},"body":{"encoding":"UTF-8","base64_string":"eyJpZCI6IjU0OTI1MTQ0N2NiNWVkNDMzOTc4M2M1ZSIsImlkTWVtYmVyQ3Jl\nYXRvciI6IjU0OGE2Njk2YjNiOTkxOGJlYjE0NGIwNyIsImRhdGEiOnsibGlz\ndCI6eyJuYW1lIjoiVGVzdCBMaXN0IDEiLCJpZCI6IjU0OGRkOTQ4ZmZkMzc0\nMjIxOTI2YjRjOCJ9LCJib2FyZCI6eyJzaG9ydExpbmsiOiJzd2V6UTlYUyIs\nIm5hbWUiOiJUZXN0IEJvYXJkIiwiaWQiOiI1NDhhNjc1NTgxZDFkNjY5Yzll\nODE4NGUifSwiY2FyZCI6eyJzaG9ydExpbmsiOiJrN0dISmo3USIsImlkU2hv\ncnQiOjEsIm5hbWUiOiJDYXJkIDEiLCJpZCI6IjU0OGRkOTVjOGNhMjVhYzlk\nMGQ5Y2U3MSJ9LCJ0ZXh0IjoiQHRhY29raXQgVGhhbmtzIGZvciB0aGUgaW52\naXRlLCBidWQiLCJ0ZXh0RGF0YSI6eyJlbW9qaSI6e319LCJkYXRlTGFzdEVk\naXRlZCI6IjIwMTQtMTItMThUMDQ6MDA6MDQuNzU2WiJ9LCJ0eXBlIjoiY29t\nbWVudENhcmQiLCJkYXRlIjoiMjAxNC0xMi0xOFQwNDowMDowNC40ODVaIiwi\nbWVtYmVyQ3JlYXRvciI6eyJpZCI6IjU0OGE2Njk2YjNiOTkxOGJlYjE0NGIw\nNyIsImF2YXRhckhhc2giOiJjYjBkZjQ1MDU1YmFjODRlN2M1ZmI3MjhlMDBl\nMjAxNSIsImZ1bGxOYW1lIjoiVGFjbyBLaXQiLCJpbml0aWFscyI6IlRLIiwi\ndXNlcm5hbWUiOiJ0YWNva2l0In19\n"},"http_version":null},"recorded_at":"Thu, 18 Dec 2014 04:00:08 GMT"},{"request":{"method":"delete","uri":"https://api.trello.com/1/actions/549251447cb5ed4339783c5e?key=<TRELLO_APP_KEY>&token=<TRELLO_APP_TOKEN>","body":{"encoding":"US-ASCII","base64_string":""},"headers":{"User-Agent":["TacoKit 0.0.1"],"Accept-Encoding":["gzip;q=1.0,deflate;q=0.6,identity;q=0.3"],"Accept":["*/*"]}},"response":{"status":{"code":200,"message":"OK"},"headers":{"Cache-Control":["max-age=0, must-revalidate, no-cache, no-store"],"X-Content-Type-Options":["nosniff"],"Strict-Transport-Security":["max-age=15768000"],"X-Xss-Protection":["1; mode=block"],"X-Frame-Options":["DENY"],"X-Trello-Version":["1.269.0"],"X-Trello-Environment":["Production"],"Set-Cookie":["___utmvaDOussFI=Cau\u0001jRGQ; path=/; Max-Age=900","___utmvbDOussFI=zZU XRiODali: lte; path=/; Max-Age=900","___utmvmDOussFI=fkPwhGrCARY; path=/; Max-Age=900","dsc=34d42e52b3ddbe5765f21bba4e698b879526134421181784ad94f4bf8af643e0; Path=/; Expires=Sun, 21 Dec 2014 04:00:04 GMT; Secure","incap_ses_220_168562=r0LyDTyyiQMg2V8aNZkNA0RRklQAAAAAvsZyD/cN1CSwrfbx74YWdw==; path=/; Domain=.trello.com","visid_incap_168562=nlys9kKJRbCfISxUqsIPBERRklQAAAAAQUIPAAAAAACuH/Pe0hYDKZcb8aw/8D+5; expires=Fri, 16 Dec 2016 12:28:11 GMT; path=/; Domain=.trello.com"],"X-Server-Time":["1418875205050"],"Expires":["Thu, 01 Jan 1970 00:00:00"],"Content-Type":["application/json"],"Access-Control-Allow-Origin":["*"],"Access-Control-Allow-Methods":["GET, PUT, POST, DELETE"],"Content-Length":["2"],"Vary":["Accept-Encoding"],"Date":["Thu, 18 Dec 2014 04:00:05 GMT"],"X-Iinfo":["10-109221498-109220455 PNNY RT(1418875203877 55) q(0 0 0 -1) r(1 1) U6"],"X-Cdn":["Incapsula"]},"body":{"encoding":"UTF-8","base64_string":"e30=\n"},"http_version":null},"recorded_at":"Thu, 18 Dec 2014 04:00:08 GMT"}],"recorded_with":"VCR 2.9.3"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"http_interactions":[{"request":{"method":"post","uri":"https://api.trello.com/1/cards/548dd95c8ca25ac9d0d9ce71/actions/comments?key=<TRELLO_APP_KEY>&token=<TRELLO_APP_TOKEN>","body":{"encoding":"UTF-8","base64_string":"eyJ0ZXh0IjoiVXBkYXRlIGFjdGlvbiB0ZXN0LiBCb295YSEifQ==\n"},"headers":{"User-Agent":["TacoKit 0.0.1"],"Content-Type":["application/json"],"Accept-Encoding":["gzip;q=1.0,deflate;q=0.6,identity;q=0.3"],"Accept":["*/*"]}},"response":{"status":{"code":200,"message":"OK"},"headers":{"Cache-Control":["max-age=0, must-revalidate, no-cache, no-store"],"X-Content-Type-Options":["nosniff"],"Strict-Transport-Security":["max-age=15768000"],"X-Xss-Protection":["1; mode=block"],"X-Frame-Options":["DENY"],"X-Trello-Version":["1.272.0"],"X-Trello-Environment":["Production"],"Set-Cookie":["___utmvaDOussFI=jPo\u0001TOfC; path=/; Max-Age=900","___utmvbDOussFI=TZk XXZOqalj: qtU; path=/; Max-Age=900","___utmvmDOussFI=JBCRZqITvkU; path=/; Max-Age=900","dsc=b120a923f36e99bcb7b4d52cdfb2e08901c2decb939e286bda1863e5a684a8b1; Path=/; Expires=Thu, 01 Jan 2015 14:36:42 GMT; Secure","incap_ses_220_168562=ffuQGkupehE4U4NqN5kNA/lmoVQAAAAA/ci0UTDWNh4sFxUIyOEwMA==; path=/; Domain=.trello.com","visid_incap_168562=CbDfq/sYQjiMLFxMxvzeXPlmoVQAAAAAQUIPAAAAAADC7hNmq/CJVhHb9/e3I3Mj; expires=Tue, 27 Dec 2016 15:42:52 GMT; path=/; Domain=.trello.com"],"X-Server-Time":["1419863802811"],"Expires":["Thu, 01 Jan 1970 00:00:00"],"Content-Type":["application/json"],"Access-Control-Allow-Origin":["*"],"Access-Control-Allow-Methods":["GET, PUT, POST, DELETE"],"Content-Length":["1000"],"Vary":["Accept-Encoding"],"Date":["Mon, 29 Dec 2014 14:36:42 GMT"],"X-Iinfo":["8-39760871-39756685 PNNY RT(1419863801693 61) q(0 0 0 -1) r(1 1) U6"],"X-Cdn":["Incapsula"]},"body":{"encoding":"UTF-8","base64_string":"eyJpZCI6IjU0YTE2NmZhMTA3NTk5NjRkYzUxY2RkNyIsImlkTWVtYmVyQ3Jl\nYXRvciI6IjU0OGE2Njk2YjNiOTkxOGJlYjE0NGIwNyIsImRhdGEiOnsidGV4\ndCI6IlVwZGF0ZSBhY3Rpb24gdGVzdC4gQm9veWEhIiwidGV4dERhdGEiOnsi\nZW1vamkiOnt9fSwiY2FyZCI6eyJpZCI6IjU0OGRkOTVjOGNhMjVhYzlkMGQ5\nY2U3MSIsIm5hbWUiOiJDYXJkIDEiLCJpZFNob3J0IjoxLCJzaG9ydExpbmsi\nOiJrN0dISmo3USJ9LCJib2FyZCI6eyJpZCI6IjU0OGE2NzU1ODFkMWQ2Njlj\nOWU4MTg0ZSIsIm5hbWUiOiJUZXN0IEJvYXJkIiwic2hvcnRMaW5rIjoic3dl\nelE5WFMifSwibGlzdCI6eyJpZCI6IjU0OGRkOTQ4ZmZkMzc0MjIxOTI2YjRj\nOCIsIm5hbWUiOiJUZXN0IExpc3QgMSJ9fSwidHlwZSI6ImNvbW1lbnRDYXJk\nIiwiZGF0ZSI6IjIwMTQtMTItMjlUMTQ6MzY6NDIuNzg2WiIsIm1lbWJlckNy\nZWF0b3IiOnsiaWQiOiI1NDhhNjY5NmIzYjk5MThiZWIxNDRiMDciLCJhdmF0\nYXJIYXNoIjoiY2IwZGY0NTA1NWJhYzg0ZTdjNWZiNzI4ZTAwZTIwMTUiLCJm\ndWxsTmFtZSI6IlRhY28gS2l0IiwiaW5pdGlhbHMiOiJUSyIsInVzZXJuYW1l\nIjoidGFjb2tpdCJ9LCJlbnRpdGllcyI6W3sidHlwZSI6Im1lbWJlciIsImlk\nIjoiNTQ4YTY2OTZiM2I5OTE4YmViMTQ0YjA3IiwidXNlcm5hbWUiOiJ0YWNv\na2l0IiwidGV4dCI6IlRhY28gS2l0In0seyJ0eXBlIjoidGV4dCIsInRleHQi\nOiJvbiIsImhpZGVJZkNvbnRleHQiOnRydWUsImlkQ29udGV4dCI6IjU0OGRk\nOTVjOGNhMjVhYzlkMGQ5Y2U3MSJ9LHsidHlwZSI6ImNhcmQiLCJoaWRlSWZD\nb250ZXh0Ijp0cnVlLCJzaG9ydExpbmsiOiJrN0dISmo3USIsImlkIjoiNTQ4\nZGQ5NWM4Y2EyNWFjOWQwZDljZTcxIiwidGV4dCI6IkNhcmQgMSJ9LHsidHlw\nZSI6ImNvbW1lbnQiLCJ0ZXh0IjoiVXBkYXRlIGFjdGlvbiB0ZXN0LiBCb295\nYSEiLCJ0ZXh0SHRtbCI6IjxwPlVwZGF0ZSBhY3Rpb24gdGVzdC4gQm9veWEh\nPC9wPlxuIn1dfQ==\n"},"http_version":null},"recorded_at":"Mon, 29 Dec 2014 14:36:42 GMT"},{"request":{"method":"put","uri":"https://api.trello.com/1/actions/54a166fa10759964dc51cdd7/text?key=<TRELLO_APP_KEY>&token=<TRELLO_APP_TOKEN>","body":{"encoding":"UTF-8","base64_string":"eyJ2YWx1ZSI6IkB0YWNva2l0IFRoYW5rcyBmb3IgdGhlIGludml0ZSwgYnVk\nIn0=\n"},"headers":{"User-Agent":["TacoKit 0.0.1"],"Content-Type":["application/json"],"Accept-Encoding":["gzip;q=1.0,deflate;q=0.6,identity;q=0.3"],"Accept":["*/*"]}},"response":{"status":{"code":200,"message":"OK"},"headers":{"Cache-Control":["max-age=0, must-revalidate, no-cache, no-store"],"X-Content-Type-Options":["nosniff"],"Strict-Transport-Security":["max-age=15768000"],"X-Xss-Protection":["1; mode=block"],"X-Frame-Options":["DENY"],"X-Trello-Version":["1.272.0"],"X-Trello-Environment":["Production"],"Set-Cookie":["___utmvaDOussFI=tqd\u0001XGAT; path=/; Max-Age=900","___utmvbDOussFI=XZy XXjORalU: etU; path=/; Max-Age=900","___utmvmDOussFI=WJPzFtJGgYi; path=/; Max-Age=900","dsc=cab0ef75b5d107231c8e6c8d5b00c16a356e1161e222c7fa355b158a13239edd; Path=/; Expires=Thu, 01 Jan 2015 14:36:42 GMT; Secure","incap_ses_220_168562=WZcnK2b8IgiMU4NqN5kNA/pmoVQAAAAANDzo/Vuwec8TyPtGB7tV5g==; path=/; Domain=.trello.com","visid_incap_168562=W1bWVA03TI6L8PXJjmofOvpmoVQAAAAAQUIPAAAAAAAl2u4dTolN7o8PDJceanIq; expires=Tue, 27 Dec 2016 15:42:52 GMT; path=/; Domain=.trello.com"],"X-Server-Time":["1419863803095"],"Expires":["Thu, 01 Jan 1970 00:00:00"],"Content-Type":["application/json"],"Access-Control-Allow-Origin":["*"],"Access-Control-Allow-Methods":["GET, PUT, POST, DELETE"],"Content-Length":["651"],"Vary":["Accept-Encoding"],"Date":["Mon, 29 Dec 2014 14:36:43 GMT"],"X-Iinfo":["6-18243012-18235469 PNNY RT(1419863801897 57) q(0 0 0 -1) r(2 2) U6"],"X-Cdn":["Incapsula"]},"body":{"encoding":"UTF-8","base64_string":"eyJpZCI6IjU0YTE2NmZhMTA3NTk5NjRkYzUxY2RkNyIsImlkTWVtYmVyQ3Jl\nYXRvciI6IjU0OGE2Njk2YjNiOTkxOGJlYjE0NGIwNyIsImRhdGEiOnsibGlz\ndCI6eyJuYW1lIjoiVGVzdCBMaXN0IDEiLCJpZCI6IjU0OGRkOTQ4ZmZkMzc0\nMjIxOTI2YjRjOCJ9LCJib2FyZCI6eyJzaG9ydExpbmsiOiJzd2V6UTlYUyIs\nIm5hbWUiOiJUZXN0IEJvYXJkIiwiaWQiOiI1NDhhNjc1NTgxZDFkNjY5Yzll\nODE4NGUifSwiY2FyZCI6eyJzaG9ydExpbmsiOiJrN0dISmo3USIsImlkU2hv\ncnQiOjEsIm5hbWUiOiJDYXJkIDEiLCJpZCI6IjU0OGRkOTVjOGNhMjVhYzlk\nMGQ5Y2U3MSJ9LCJ0ZXh0IjoiQHRhY29raXQgVGhhbmtzIGZvciB0aGUgaW52\naXRlLCBidWQiLCJ0ZXh0RGF0YSI6eyJlbW9qaSI6e319LCJkYXRlTGFzdEVk\naXRlZCI6IjIwMTQtMTItMjlUMTQ6MzY6NDMuMDQzWiJ9LCJ0eXBlIjoiY29t\nbWVudENhcmQiLCJkYXRlIjoiMjAxNC0xMi0yOVQxNDozNjo0Mi43ODZaIiwi\nbWVtYmVyQ3JlYXRvciI6eyJpZCI6IjU0OGE2Njk2YjNiOTkxOGJlYjE0NGIw\nNyIsImF2YXRhckhhc2giOiJjYjBkZjQ1MDU1YmFjODRlN2M1ZmI3MjhlMDBl\nMjAxNSIsImZ1bGxOYW1lIjoiVGFjbyBLaXQiLCJpbml0aWFscyI6IlRLIiwi\ndXNlcm5hbWUiOiJ0YWNva2l0In19\n"},"http_version":null},"recorded_at":"Mon, 29 Dec 2014 14:36:43 GMT"},{"request":{"method":"delete","uri":"https://api.trello.com/1/actions/54a166fa10759964dc51cdd7?key=<TRELLO_APP_KEY>&token=<TRELLO_APP_TOKEN>","body":{"encoding":"UTF-8","base64_string":"e30=\n"},"headers":{"User-Agent":["TacoKit 0.0.1"],"Content-Type":["application/json"],"Accept-Encoding":["gzip;q=1.0,deflate;q=0.6,identity;q=0.3"],"Accept":["*/*"]}},"response":{"status":{"code":200,"message":"OK"},"headers":{"Cache-Control":["max-age=0, must-revalidate, no-cache, no-store"],"X-Content-Type-Options":["nosniff"],"Strict-Transport-Security":["max-age=15768000"],"X-Xss-Protection":["1; mode=block"],"X-Frame-Options":["DENY"],"X-Trello-Version":["1.272.0"],"X-Trello-Environment":["Production"],"Set-Cookie":["___utmvaDOussFI=nHU\u0001wzaX; path=/; Max-Age=900","___utmvbDOussFI=BZu XLVOmalh: itA; path=/; Max-Age=900","___utmvmDOussFI=LNCCkhwUGSx; path=/; Max-Age=900","dsc=617569cabbfd6d3e621d2f95c74e99ce851e4b6ffc5f216f4fd4162b4df7314a; Path=/; Expires=Thu, 01 Jan 2015 14:36:43 GMT; Secure","incap_ses_220_168562=T/80Jl09vHTFU4NqN5kNA/pmoVQAAAAA9S66K8HHl1Afaozw92d5RA==; path=/; Domain=.trello.com","visid_incap_168562=Q47SbNT6Sg+KlJY1wTaYm/pmoVQAAAAAQUIPAAAAAADqtQ5JwIviFZj4XNhjVrjv; expires=Tue, 27 Dec 2016 15:42:52 GMT; path=/; Domain=.trello.com"],"X-Server-Time":["1419863803266"],"Expires":["Thu, 01 Jan 1970 00:00:00"],"Content-Type":["application/json"],"Access-Control-Allow-Origin":["*"],"Access-Control-Allow-Methods":["GET, PUT, POST, DELETE"],"Content-Length":["2"],"Vary":["Accept-Encoding"],"Date":["Mon, 29 Dec 2014 14:36:43 GMT"],"X-Iinfo":["6-18243042-18218302 PNNY RT(1419863802173 44) q(0 0 0 -1) r(0 0) U6"],"X-Cdn":["Incapsula"]},"body":{"encoding":"UTF-8","base64_string":"e30=\n"},"http_version":null},"recorded_at":"Mon, 29 Dec 2014 14:36:43 GMT"}],"recorded_with":"VCR 2.9.3"}
|