bcx 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/.rspec +1 -0
  3. data/.travis.yml +2 -0
  4. data/README.md +1 -1
  5. data/bcx.gemspec +2 -1
  6. data/docs/access.html +140 -0
  7. data/docs/authorization.html +147 -0
  8. data/docs/bcx.html +200 -0
  9. data/docs/comment.html +139 -0
  10. data/docs/configuration.html +137 -0
  11. data/docs/docco.css +76 -64
  12. data/docs/http.html +151 -0
  13. data/docs/oauth.html +144 -0
  14. data/docs/person.html +147 -0
  15. data/docs/project.html +154 -0
  16. data/docs/public/fonts/roboto-black.eot +0 -0
  17. data/docs/public/fonts/roboto-black.ttf +0 -0
  18. data/docs/public/fonts/roboto-black.woff +0 -0
  19. data/docs/response_error.html +153 -0
  20. data/docs/todo.html +148 -0
  21. data/docs/todolist.html +158 -0
  22. data/docs/version.html +125 -0
  23. data/lib/bcx/resources/comment.rb +26 -0
  24. data/lib/bcx/resources/project.rb +1 -0
  25. data/lib/bcx/resources/todo.rb +1 -0
  26. data/lib/bcx/resources/todolist.rb +1 -0
  27. data/lib/bcx/version.rb +1 -1
  28. data/lib/bcx.rb +1 -0
  29. data/lib/tasks/docs.rake +4 -2
  30. data/spec/bcx/comment_spec.rb +31 -0
  31. data/spec/cassettes/Bcx_Resources_Comment/DELETE_/projects/9634353/comments/297584179_json/should_delete_the_given_comment.yml +140 -0
  32. data/spec/cassettes/Bcx_Resources_Comment/POST_/projects/9634353/todolists/29123043/comments_json/should_create_a_new_todolist_comment.yml +114 -0
  33. data/spec/cassettes/Bcx_Resources_Comment/POST_/projects/9634353/todos/185137845/comments_json/should_create_a_new_todo_comment.yml +114 -0
  34. metadata +41 -30
  35. data/docs/lib/bcx/client/http.html +0 -144
  36. data/docs/lib/bcx/client/oauth.html +0 -146
  37. data/docs/lib/bcx/configuration.html +0 -80
  38. data/docs/lib/bcx/launchpad/oauth.html +0 -137
  39. data/docs/lib/bcx/resources/access.html +0 -133
  40. data/docs/lib/bcx/resources/authorization.html +0 -140
  41. data/docs/lib/bcx/resources/person.html +0 -140
  42. data/docs/lib/bcx/resources/project.html +0 -146
  43. data/docs/lib/bcx/resources/todo.html +0 -140
  44. data/docs/lib/bcx/resources/todolist.html +0 -150
  45. data/docs/lib/bcx/response_error.html +0 -96
  46. data/docs/lib/bcx/version.html +0 -68
  47. data/docs/lib/bcx.html +0 -192
  48. data/docs/public/fonts/novecento-bold.eot +0 -0
  49. data/docs/public/fonts/novecento-bold.ttf +0 -0
  50. data/docs/public/fonts/novecento-bold.woff +0 -0
@@ -0,0 +1,158 @@
1
+ <!DOCTYPE html>
2
+
3
+ <html>
4
+ <head>
5
+ <title>todolist.rb</title>
6
+ <meta http-equiv="content-type" content="text/html; charset=UTF-8">
7
+ <meta name="viewport" content="width=device-width, target-densitydpi=160dpi, initial-scale=1.0; maximum-scale=1.0; user-scalable=0;">
8
+ <link rel="stylesheet" media="all" href="docco.css" />
9
+ </head>
10
+ <body>
11
+ <div id="container">
12
+ <div id="background"></div>
13
+
14
+ <ul id="jump_to">
15
+ <li>
16
+ <a class="large" href="javascript:void(0);">Jump To &hellip;</a>
17
+ <a class="small" href="javascript:void(0);">+</a>
18
+ <div id="jump_wrapper">
19
+ <div id="jump_page_wrapper">
20
+ <div id="jump_page">
21
+
22
+
23
+ <a class="source" href="bcx.html">
24
+ bcx.rb
25
+ </a>
26
+
27
+
28
+ <a class="source" href="http.html">
29
+ http.rb
30
+ </a>
31
+
32
+
33
+ <a class="source" href="oauth.html">
34
+ oauth.rb
35
+ </a>
36
+
37
+
38
+ <a class="source" href="configuration.html">
39
+ configuration.rb
40
+ </a>
41
+
42
+
43
+ <a class="source" href="oauth.html">
44
+ oauth.rb
45
+ </a>
46
+
47
+
48
+ <a class="source" href="access.html">
49
+ access.rb
50
+ </a>
51
+
52
+
53
+ <a class="source" href="authorization.html">
54
+ authorization.rb
55
+ </a>
56
+
57
+
58
+ <a class="source" href="comment.html">
59
+ comment.rb
60
+ </a>
61
+
62
+
63
+ <a class="source" href="person.html">
64
+ person.rb
65
+ </a>
66
+
67
+
68
+ <a class="source" href="project.html">
69
+ project.rb
70
+ </a>
71
+
72
+
73
+ <a class="source" href="todo.html">
74
+ todo.rb
75
+ </a>
76
+
77
+
78
+ <a class="source" href="todolist.html">
79
+ todolist.rb
80
+ </a>
81
+
82
+
83
+ <a class="source" href="response_error.html">
84
+ response_error.rb
85
+ </a>
86
+
87
+
88
+ <a class="source" href="version.html">
89
+ version.rb
90
+ </a>
91
+
92
+ </div>
93
+ </div>
94
+ </li>
95
+ </ul>
96
+
97
+ <ul class="sections">
98
+
99
+ <li id="title">
100
+ <div class="annotation">
101
+ <h1>todolist.rb</h1>
102
+ </div>
103
+ </li>
104
+
105
+
106
+
107
+ <li id="section-1">
108
+ <div class="annotation">
109
+
110
+ <div class="pilwrap ">
111
+ <a class="pilcrow" href="#section-1">&#182;</a>
112
+ </div>
113
+ <h2 id="todolists">Todolists</h2>
114
+ <p>Provides access to todolist resoource both at the client level and per-project</p>
115
+ <h4 id="get-all-todolists-for-a-project">Get all todolists for a project</h4>
116
+ <p><code>GET /projects/123/todolists.json</code></p>
117
+ <pre><code>client.projects(<span class="hljs-number">123</span>).todolists!
118
+ </code></pre><h4 id="get-all-completed-todolists-for-a-project">Get all completed todolists for a project</h4>
119
+ <p><code>GET /projects/1/todolists/completed.json</code></p>
120
+ <pre><code>client.projects(<span class="hljs-number">123</span>).todolists.completed!
121
+ </code></pre><h4 id="get-todolists-for-all-projects">Get todolists for all projects</h4>
122
+ <p><code>GET /todolists.json</code></p>
123
+ <pre><code>client.todolists!
124
+ </code></pre><h4 id="get-completed-todolists-for-all-projects">Get completed todolists for all projects</h4>
125
+ <p><code>GET /todolists/completed.json</code></p>
126
+ <pre><code>client.todolists.completed!
127
+ </code></pre><h4 id="get-specific-todolist-including-the-todos">Get specific todolist including the todos</h4>
128
+ <p><code>GET /projects/123/todolists/456.json</code></p>
129
+ <pre><code>client.projects(<span class="hljs-number">123</span>).todolists!(<span class="hljs-number">456</span>)
130
+ </code></pre><h4 id="create-a-new-todolist">Create a new todolist</h4>
131
+ <p><code>POST /projects/1/todolists.json</code></p>
132
+ <pre><code>client.projects(<span class="hljs-number">123</span>).todolists.create!(<span class="hljs-symbol">name:</span> <span class="hljs-string">'My todolist'</span>, <span class="hljs-symbol">description:</span> <span class="hljs-string">'This is a todolist'</span>)
133
+ </code></pre><h4 id="update-an-existing-todolist">Update an existing todolist</h4>
134
+ <p><code>PUT /projects/123/todolists/456.json</code></p>
135
+ <pre><code>client.projects(<span class="hljs-number">123</span>).todolists(<span class="hljs-number">456</span>).update!(<span class="hljs-symbol">name:</span> <span class="hljs-string">'Updated todolist'</span>)
136
+ </code></pre><h4 id="delete-a-todolist">Delete a todolist</h4>
137
+ <p><code>DELETE /projects/123/todolists/456.json</code></p>
138
+ <pre><code>client.projects(<span class="hljs-number">123</span>).todolists(<span class="hljs-number">456</span>).delete!
139
+ </code></pre>
140
+ </div>
141
+
142
+ <div class="content"><div class='highlight'><pre><span class="hljs-class"><span class="hljs-keyword">module</span> <span class="hljs-title">Bcx</span></span>
143
+ <span class="hljs-class"><span class="hljs-keyword">module</span> <span class="hljs-title">Resources</span></span>
144
+ <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Todolist</span> <span class="hljs-inheritance">&lt; <span class="hljs-parent">Rapidash::Base</span></span></span>
145
+ resource <span class="hljs-symbol">:todos</span>, <span class="hljs-symbol">class_name:</span> <span class="hljs-string">'Bcx::Resources::Todo'</span>
146
+ resource <span class="hljs-symbol">:comments</span>
147
+
148
+ collection <span class="hljs-symbol">:completed</span>
149
+ <span class="hljs-keyword">end</span>
150
+ <span class="hljs-keyword">end</span>
151
+ <span class="hljs-keyword">end</span></pre></div></div>
152
+
153
+ </li>
154
+
155
+ </ul>
156
+ </div>
157
+ </body>
158
+ </html>
data/docs/version.html ADDED
@@ -0,0 +1,125 @@
1
+ <!DOCTYPE html>
2
+
3
+ <html>
4
+ <head>
5
+ <title>version.rb</title>
6
+ <meta http-equiv="content-type" content="text/html; charset=UTF-8">
7
+ <meta name="viewport" content="width=device-width, target-densitydpi=160dpi, initial-scale=1.0; maximum-scale=1.0; user-scalable=0;">
8
+ <link rel="stylesheet" media="all" href="docco.css" />
9
+ </head>
10
+ <body>
11
+ <div id="container">
12
+ <div id="background"></div>
13
+
14
+ <ul id="jump_to">
15
+ <li>
16
+ <a class="large" href="javascript:void(0);">Jump To &hellip;</a>
17
+ <a class="small" href="javascript:void(0);">+</a>
18
+ <div id="jump_wrapper">
19
+ <div id="jump_page_wrapper">
20
+ <div id="jump_page">
21
+
22
+
23
+ <a class="source" href="bcx.html">
24
+ bcx.rb
25
+ </a>
26
+
27
+
28
+ <a class="source" href="http.html">
29
+ http.rb
30
+ </a>
31
+
32
+
33
+ <a class="source" href="oauth.html">
34
+ oauth.rb
35
+ </a>
36
+
37
+
38
+ <a class="source" href="configuration.html">
39
+ configuration.rb
40
+ </a>
41
+
42
+
43
+ <a class="source" href="oauth.html">
44
+ oauth.rb
45
+ </a>
46
+
47
+
48
+ <a class="source" href="access.html">
49
+ access.rb
50
+ </a>
51
+
52
+
53
+ <a class="source" href="authorization.html">
54
+ authorization.rb
55
+ </a>
56
+
57
+
58
+ <a class="source" href="comment.html">
59
+ comment.rb
60
+ </a>
61
+
62
+
63
+ <a class="source" href="person.html">
64
+ person.rb
65
+ </a>
66
+
67
+
68
+ <a class="source" href="project.html">
69
+ project.rb
70
+ </a>
71
+
72
+
73
+ <a class="source" href="todo.html">
74
+ todo.rb
75
+ </a>
76
+
77
+
78
+ <a class="source" href="todolist.html">
79
+ todolist.rb
80
+ </a>
81
+
82
+
83
+ <a class="source" href="response_error.html">
84
+ response_error.rb
85
+ </a>
86
+
87
+
88
+ <a class="source" href="version.html">
89
+ version.rb
90
+ </a>
91
+
92
+ </div>
93
+ </div>
94
+ </li>
95
+ </ul>
96
+
97
+ <ul class="sections">
98
+
99
+ <li id="title">
100
+ <div class="annotation">
101
+ <h1>version.rb</h1>
102
+ </div>
103
+ </li>
104
+
105
+
106
+
107
+ <li id="section-1">
108
+ <div class="annotation">
109
+
110
+ <div class="pilwrap ">
111
+ <a class="pilcrow" href="#section-1">&#182;</a>
112
+ </div>
113
+
114
+ </div>
115
+
116
+ <div class="content"><div class='highlight'><pre><span class="hljs-class"><span class="hljs-keyword">module</span> <span class="hljs-title">Bcx</span></span>
117
+ <span class="hljs-constant">VERSION</span> = <span class="hljs-string">"0.4.0"</span>
118
+ <span class="hljs-keyword">end</span></pre></div></div>
119
+
120
+ </li>
121
+
122
+ </ul>
123
+ </div>
124
+ </body>
125
+ </html>
@@ -0,0 +1,26 @@
1
+ # ## Comments
2
+ #
3
+ # Provides access to comments resource on todo or todolist level
4
+ #
5
+ # #### Create a new todolist comment
6
+ # `POST /projects/123/todolist/456/comments.json`
7
+ #
8
+ # client.projects(123).todolists(456).comments.create!(content: 'New comment')
9
+ #
10
+ # #### Create a new todo comment
11
+ # `POST /projects/123/todo/456/comments.json`
12
+ #
13
+ # client.projects(123).todos(456).comments.create!(content: 'New comment')
14
+ #
15
+ #
16
+ # #### Delete the comment
17
+ # `DELETE /projects/123/comments/456.json`
18
+ #
19
+ # client.projects(123).comments(456).delete!
20
+ #
21
+ module Bcx
22
+ module Resources
23
+ class Comment < Rapidash::Base
24
+ end
25
+ end
26
+ end
@@ -38,6 +38,7 @@ module Bcx
38
38
  resource :todolists
39
39
  resource :todos
40
40
  resource :accesses
41
+ resource :comments
41
42
 
42
43
  collection :archived
43
44
  end
@@ -32,6 +32,7 @@
32
32
  module Bcx
33
33
  module Resources
34
34
  class Todo < Rapidash::Base
35
+ resource :comments
35
36
  end
36
37
  end
37
38
  end
@@ -46,6 +46,7 @@ module Bcx
46
46
  module Resources
47
47
  class Todolist < Rapidash::Base
48
48
  resource :todos, class_name: 'Bcx::Resources::Todo'
49
+ resource :comments
49
50
 
50
51
  collection :completed
51
52
  end
data/lib/bcx/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Bcx
2
- VERSION = "0.3.0"
2
+ VERSION = "0.4.0"
3
3
  end
data/lib/bcx.rb CHANGED
@@ -16,6 +16,7 @@ module Bcx
16
16
  autoload :Person, 'bcx/resources/person'
17
17
  autoload :Access, 'bcx/resources/access'
18
18
  autoload :Authorization, 'bcx/resources/authorization'
19
+ autoload :Comment, 'bcx/resources/comment'
19
20
  end
20
21
 
21
22
  module Client
data/lib/tasks/docs.rake CHANGED
@@ -4,10 +4,12 @@ namespace :docs do
4
4
  ensure_clean_git
5
5
  run "git checkout #{branch}"
6
6
  run "docco lib/**/*.rb"
7
- run "git commit -am 'Updated documentation'"
7
+ run "git add -A ."
8
+ run "git commit -m 'Updated documentation'"
8
9
  run "git checkout gh-pages"
9
10
  run "git checkout #{branch} -- docs/" # Copy docs changes across and stage
10
- run "git commit -am 'Updated docs on gh-pages'"
11
+ run "git add -A ."
12
+ run "git commit -m 'Updated docs on gh-pages'"
11
13
  run "git checkout #{branch}"
12
14
  end
13
15
 
@@ -0,0 +1,31 @@
1
+ require 'spec_helper'
2
+
3
+ describe Bcx::Resources::Comment, :vcr do
4
+ let(:client) { Bcx::Client::HTTP.new(login: 'bcx-test-user', password: 'secret') }
5
+
6
+ describe "POST /projects/9634353/todos/185137845/comments.json" do
7
+ it "should create a new todo comment" do
8
+ comment = client.projects(9634353).todos(185137845).comments.create!(content: 'New Todo comment')
9
+ expect(comment.created_at).not_to be_blank
10
+ end
11
+ end
12
+
13
+ describe "POST /projects/9634353/todolists/29123043/comments.json" do
14
+ it "should create a new todolist comment" do
15
+ comment = client.projects(9634353).todolists(29123043).comments.create!(content: 'New TodoList comment')
16
+ expect(comment.created_at).not_to be_blank
17
+ end
18
+ end
19
+
20
+ describe "DELETE /projects/9634353/comments/297584179.json" do
21
+ it "should delete the given comment" do
22
+ client.projects(9634353).comments(297584179).delete!
23
+ expect { client.projects(9634353).comments!(297584179) }.to raise_error { |error|
24
+ expect(error).to be_a Bcx::ResponseError
25
+ expect(error.status).to eq 404
26
+ }
27
+ end
28
+ end
29
+
30
+
31
+ end
@@ -0,0 +1,140 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: delete
5
+ uri: https://basecamp.com/2274488/api/v1/projects/9634353/comments/297584179.json
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.8.9
12
+ Authorization:
13
+ - Basic N3IwZ2d3QGdtYWlsLmNvbTpCQ1BabGhma2IyNjU=
14
+ response:
15
+ status:
16
+ code: 204
17
+ message:
18
+ headers:
19
+ server:
20
+ - openresty
21
+ date:
22
+ - Tue, 23 Jun 2015 14:39:05 GMT
23
+ connection:
24
+ - close
25
+ status:
26
+ - 204 No Content
27
+ x-frame-options:
28
+ - SAMEORIGIN
29
+ x-xss-protection:
30
+ - 1; mode=block
31
+ x-content-type-options:
32
+ - nosniff
33
+ x-asset-paths:
34
+ - '{"desktop.js":"desktop-ffff6ab2353adfd35273439e2b190a97.js","desktop.css":"desktop-d7e97abbc9c3540e9ab5d7537c0b4a05.css"}'
35
+ cache-control:
36
+ - no-cache
37
+ x-request-id:
38
+ - 9e107a64-ce2b-4d87-a469-8f42b4c0f3d1
39
+ x-runtime:
40
+ - '0.250619'
41
+ x-queue-time:
42
+ - '0.0011830329895019531'
43
+ timing-allow-origin:
44
+ - "*"
45
+ body:
46
+ encoding: US-ASCII
47
+ string: ''
48
+ http_version:
49
+ recorded_at: Tue, 23 Jun 2015 14:39:05 GMT
50
+ - request:
51
+ method: get
52
+ uri: https://basecamp.com/2274488/api/v1/projects/9634353/comments/297584179.json
53
+ body:
54
+ encoding: US-ASCII
55
+ string: ''
56
+ headers:
57
+ User-Agent:
58
+ - Faraday v0.8.9
59
+ Authorization:
60
+ - Basic N3IwZ2d5QGdtYWlsLmNvbTpCQ1BmbGhma2IyNjU=
61
+ response:
62
+ status:
63
+ code: 404
64
+ message:
65
+ headers:
66
+ server:
67
+ - openresty
68
+ date:
69
+ - Tue, 23 Jun 2015 14:39:06 GMT
70
+ content-type:
71
+ - application/json; charset=utf-8
72
+ content-length:
73
+ - '36'
74
+ connection:
75
+ - close
76
+ status:
77
+ - 404 Not Found
78
+ x-request-id:
79
+ - 8872d9af-2656-4f3a-88b5-0929826f4567
80
+ x-runtime:
81
+ - '0.066340'
82
+ x-queue-time:
83
+ - '0.0009946823120117188'
84
+ body:
85
+ encoding: UTF-8
86
+ string: '{"status":"404","error":"Not Found"}'
87
+ http_version:
88
+ recorded_at: Tue, 23 Jun 2015 14:39:06 GMT
89
+ - request:
90
+ method: delete
91
+ uri: https://basecamp.com/2274488/api/v1/projects/9634353/comments/297584179.json
92
+ body:
93
+ encoding: US-ASCII
94
+ string: ''
95
+ headers:
96
+ User-Agent:
97
+ - Faraday v0.8.9
98
+ Authorization:
99
+ - Basic YmN4LXRlc3QtdXNlcjpzZWNyZXQ=
100
+ response:
101
+ status:
102
+ code: 404
103
+ message:
104
+ headers:
105
+ server:
106
+ - openresty
107
+ date:
108
+ - Tue, 23 Jun 2015 14:40:28 GMT
109
+ content-type:
110
+ - application/json
111
+ connection:
112
+ - Keep-Alive
113
+ status:
114
+ - 404 Not Found
115
+ x-frame-options:
116
+ - SAMEORIGIN
117
+ x-xss-protection:
118
+ - 1; mode=block
119
+ x-content-type-options:
120
+ - nosniff
121
+ reason:
122
+ - Account Inactive
123
+ cache-control:
124
+ - no-cache
125
+ x-request-id:
126
+ - 9a1cc87c-47d1-4fd2-b286-9560ab618a59
127
+ x-runtime:
128
+ - '0.031792'
129
+ x-queue-time:
130
+ - '0.0011222362518310547'
131
+ vary:
132
+ - Accept-Encoding
133
+ content-length:
134
+ - '23'
135
+ body:
136
+ encoding: ASCII-8BIT
137
+ string: ''
138
+ http_version:
139
+ recorded_at: Tue, 23 Jun 2015 14:40:28 GMT
140
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,114 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://basecamp.com/2274488/api/v1/projects/9634353/todolists/29123043/comments.json
6
+ body:
7
+ encoding: UTF-8
8
+ string: '{"content":"New TodoList comment"}'
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.8.9
12
+ Authorization:
13
+ - Basic N2IwZ2d5QGdtYWlsLmNvbTpCQ1BmbGhma2IyNjU=
14
+ Content-Type:
15
+ - application/json
16
+ response:
17
+ status:
18
+ code: 201
19
+ message:
20
+ headers:
21
+ server:
22
+ - openresty
23
+ date:
24
+ - Tue, 23 Jun 2015 14:38:13 GMT
25
+ content-type:
26
+ - application/json; charset=utf-8
27
+ connection:
28
+ - Keep-Alive
29
+ status:
30
+ - 201 Created
31
+ x-frame-options:
32
+ - SAMEORIGIN
33
+ x-xss-protection:
34
+ - 1; mode=block
35
+ x-content-type-options:
36
+ - nosniff
37
+ x-asset-paths:
38
+ - '{"desktop.js":"desktop-ffff6ab2353adfd35273439e2b190a97.js","desktop.css":"desktop-d7e97abbc9c3540e9ab5d7537c0b4a05.css"}'
39
+ etag:
40
+ - '"e0151f0dceb5a1754f860b907ca2fe99"'
41
+ cache-control:
42
+ - max-age=0, private, must-revalidate
43
+ x-request-id:
44
+ - d7cf177a-f7f0-480b-951c-06b4ce9eaa36
45
+ x-runtime:
46
+ - '0.217618'
47
+ x-queue-time:
48
+ - '0.0010294914245605469'
49
+ timing-allow-origin:
50
+ - "*"
51
+ vary:
52
+ - Accept-Encoding
53
+ content-length:
54
+ - '400'
55
+ body:
56
+ encoding: ASCII-8BIT
57
+ string: '{"id":297586622,"content":"New TodoList comment","created_at":"2015-06-23T21:38:13.156+07:00","updated_at":"2015-06-23T21:38:13.156+07:00","private":false,"trashed":false,"attachments":[],"creator":{"id":9056757,"name":"Kosta
58
+ Korenkov","avatar_url":"http://cdn.37img.com/global/8763e3387c99c11693eef859f5e1ebc30010/avatar.gif?r=3","fullsize_avatar_url":"https://cdn.37img.com/global/8763e3387c99c11693eef859f5e1ebc30010/original.gif?r=3"},"topic_url":"https://basecamp.com/2274488/api/v1/projects/9634353/todolists/29123043.json","topic_app_url":"https://basecamp.com/2274488/projects/9634353/todolists/29123043"}'
59
+ http_version:
60
+ recorded_at: Tue, 23 Jun 2015 14:38:13 GMT
61
+ - request:
62
+ method: post
63
+ uri: https://basecamp.com/2274488/api/v1/projects/9634353/todolists/29123043/comments.json
64
+ body:
65
+ encoding: UTF-8
66
+ string: '{"content":"New TodoList comment"}'
67
+ headers:
68
+ User-Agent:
69
+ - Faraday v0.8.9
70
+ Authorization:
71
+ - Basic YmN4LXRlc3QtdXNlcjpzZWNyZXQ=
72
+ Content-Type:
73
+ - application/json
74
+ response:
75
+ status:
76
+ code: 404
77
+ message:
78
+ headers:
79
+ server:
80
+ - openresty
81
+ date:
82
+ - Tue, 23 Jun 2015 14:40:27 GMT
83
+ content-type:
84
+ - application/json
85
+ connection:
86
+ - Keep-Alive
87
+ status:
88
+ - 404 Not Found
89
+ x-frame-options:
90
+ - SAMEORIGIN
91
+ x-xss-protection:
92
+ - 1; mode=block
93
+ x-content-type-options:
94
+ - nosniff
95
+ reason:
96
+ - Account Inactive
97
+ cache-control:
98
+ - no-cache
99
+ x-request-id:
100
+ - 4046a382-1e93-4f8d-84b3-882afb287dfe
101
+ x-runtime:
102
+ - '0.036859'
103
+ x-queue-time:
104
+ - '0.00047588348388671875'
105
+ vary:
106
+ - Accept-Encoding
107
+ content-length:
108
+ - '23'
109
+ body:
110
+ encoding: ASCII-8BIT
111
+ string: ''
112
+ http_version:
113
+ recorded_at: Tue, 23 Jun 2015 14:40:27 GMT
114
+ recorded_with: VCR 2.9.3