bcx 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
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