What's New
Purpose of this story is to create a pretty common project scenario and test if all details that we need for What's New are present. Lets start by creating a new project:
Payload:
1 2 3 4 5 6
{
"type": "Member",
"email": "member@activecollab.com",
"password": "123",
"company_id": 1
}Response:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
{
"single": {
"id": 2,
"class": "Member",
"url_path": "\/users\/2",
"is_archived": false,
"is_trashed": false,
"trashed_on": null,
"trashed_by_id": 0,
"created_on": 1430164530,
"created_by_id": 1,
"updated_on": 1430164530,
"updated_by_id": 1,
"language_id": 0,
"first_name": "Member",
"last_name": null,
"display_name": "member",
"short_display_name": "member",
"email": "member@activecollab.com",
"additional_email_addresses": [],
"is_pending_activation": false,
"avatar_url": "http:\/\/feather.dev\/proxy.php?proxy=avatar&module=system&v=current&b=DEV&user_id=2&size=--SIZE--×tamp=1430164530",
"custom_permissions": [],
"company_id": 1,
"title": null,
"phone": null,
"im_type": null,
"im_handle": null,
"note": null
}
}Payload:
1 2 3 4 5 6 7 8 9
{
"name": "New projct",
"company_id": 2,
"leader_id": 1,
"members": [
1,
2
]
}Response:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
{
"single": {
"id": 1,
"class": "Project",
"url_path": "\/projects\/1",
"name": "New projct",
"completed_on": null,
"completed_by_id": null,
"is_completed": false,
"members": [
1,
2
],
"category_id": 0,
"label_id": 0,
"is_trashed": false,
"trashed_on": null,
"trashed_by_id": 0,
"created_on": 1430164530,
"created_by_id": 1,
"updated_on": 1430164530,
"updated_by_id": 1,
"body": null,
"body_formatted": "",
"company_id": 2,
"leader_id": 1,
"currency_id": 2,
"template_id": 0,
"based_on_type": null,
"based_on_id": null,
"email": "notifications+m2p-nkgi5Pg@mail.manageprojects.com",
"is_tracking_enabled": true,
"is_client_reporting_enabled": false,
"budget": null,
"count_tasks": 0,
"count_discussions": 0,
"count_files": 0,
"count_notes": 0
},
"category": null,
"hourly_rates": {
"1": 100
},
"label_ids": [],
"task_lists": null
}We made a spelling error there, so lets correct it:
Payload:
1 2 3
{
"name": "New Project"
}Response:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
{
"single": {
"id": 1,
"class": "Project",
"url_path": "\/projects\/1",
"name": "New Project",
"completed_on": null,
"completed_by_id": null,
"is_completed": false,
"members": [
1,
2
],
"category_id": 0,
"label_id": 0,
"is_trashed": false,
"trashed_on": null,
"trashed_by_id": 0,
"created_on": 1430164530,
"created_by_id": 1,
"updated_on": 1430164530,
"updated_by_id": 1,
"body": null,
"body_formatted": "",
"company_id": 2,
"leader_id": 1,
"currency_id": 2,
"template_id": 0,
"based_on_type": null,
"based_on_id": null,
"email": "notifications+m2p-nkgi5Pg@mail.manageprojects.com",
"is_tracking_enabled": true,
"is_client_reporting_enabled": false,
"budget": null,
"count_tasks": 0,
"count_discussions": 0,
"count_files": 0,
"count_notes": 0
},
"category": null,
"hourly_rates": {
"1": 100
},
"label_ids": [],
"task_lists": null
}Now, we'll create a a couple of task lists:
Payload:
1 2 3
{
"name": "First task list"
}Response:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
{
"single": {
"id": 1,
"class": "TaskList",
"url_path": "\/projects\/1\/task-lists\/1",
"name": "First task list",
"is_trashed": false,
"trashed_on": null,
"trashed_by_id": 0,
"completed_on": null,
"completed_by_id": null,
"is_completed": false,
"project_id": 1,
"created_on": 1430164530,
"created_by_id": 1,
"updated_on": 1430164530,
"updated_by_id": 1,
"start_on": null,
"due_on": null,
"position": 1,
"open_tasks": 0,
"completed_tasks": 0
}
}Payload:
1 2 3
{
"name": "Second task list"
}Response:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
{
"single": {
"id": 2,
"class": "TaskList",
"url_path": "\/projects\/1\/task-lists\/2",
"name": "Second task list",
"is_trashed": false,
"trashed_on": null,
"trashed_by_id": 0,
"completed_on": null,
"completed_by_id": null,
"is_completed": false,
"project_id": 1,
"created_on": 1430164531,
"created_by_id": 1,
"updated_on": 1430164531,
"updated_by_id": 1,
"start_on": null,
"due_on": null,
"position": 2,
"open_tasks": 0,
"completed_tasks": 0
}
}and a task with one commend and one subtask:
Payload:
1 2 3 4
{
"name": "Test Task",
"task_list_id": 1
}Response:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
{
"single": {
"id": 1,
"class": "Task",
"url_path": "\/projects\/1\/tasks\/1",
"name": "Test Task",
"assignee_id": 0,
"delegated_by_id": 0,
"completed_on": null,
"completed_by_id": null,
"is_completed": false,
"comments_count": 0,
"attachments": [],
"labels": [],
"is_trashed": false,
"trashed_on": null,
"trashed_by_id": 0,
"project_id": 1,
"is_hidden_from_clients": false,
"body": "",
"body_formatted": "",
"created_on": 1430164531,
"created_by_id": 1,
"updated_on": 1430164531,
"updated_by_id": 1,
"task_number": 1,
"task_list_id": 1,
"position": 1,
"is_important": false,
"due_on": null,
"estimate": 0,
"job_type_id": 0,
"total_subtasks": 0,
"completed_subtasks": 0,
"open_subtasks": 0
},
"subscribers": [
1
],
"comments": [],
"reminders": [],
"subtasks": [],
"task_list": {
"id": 1,
"class": "TaskList",
"url_path": "\/projects\/1\/task-lists\/1",
"name": "First task list",
"is_trashed": false,
"trashed_on": null,
"trashed_by_id": 0,
"completed_on": null,
"completed_by_id": null,
"is_completed": false,
"project_id": 1,
"created_on": 1430164530,
"created_by_id": 1,
"updated_on": 1430164530,
"updated_by_id": 1,
"start_on": null,
"due_on": null,
"position": 1,
"open_tasks": 1,
"completed_tasks": 0
},
"tracked_time": 0,
"tracked_expenses": 0
}Payload:
1 2 3
{
"assignee_id": 2
}Response:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
{
"single": {
"id": 1,
"class": "Task",
"url_path": "\/projects\/1\/tasks\/1",
"name": "Test Task",
"assignee_id": 2,
"delegated_by_id": 1,
"completed_on": null,
"completed_by_id": null,
"is_completed": false,
"comments_count": 0,
"attachments": [],
"labels": [],
"is_trashed": false,
"trashed_on": null,
"trashed_by_id": 0,
"project_id": 1,
"is_hidden_from_clients": false,
"body": "",
"body_formatted": "",
"created_on": 1430164531,
"created_by_id": 1,
"updated_on": 1430164531,
"updated_by_id": 1,
"task_number": 1,
"task_list_id": 1,
"position": 1,
"is_important": false,
"due_on": null,
"estimate": 0,
"job_type_id": 0,
"total_subtasks": 0,
"completed_subtasks": 0,
"open_subtasks": 0
},
"subscribers": [
1,
2
],
"comments": [],
"reminders": [],
"subtasks": [],
"task_list": {
"id": 1,
"class": "TaskList",
"url_path": "\/projects\/1\/task-lists\/1",
"name": "First task list",
"is_trashed": false,
"trashed_on": null,
"trashed_by_id": 0,
"completed_on": null,
"completed_by_id": null,
"is_completed": false,
"project_id": 1,
"created_on": 1430164530,
"created_by_id": 1,
"updated_on": 1430164530,
"updated_by_id": 1,
"start_on": null,
"due_on": null,
"position": 1,
"open_tasks": 1,
"completed_tasks": 0
},
"tracked_time": 0,
"tracked_expenses": 0
}Payload:
1 2 3
{
"body": "Subtask #1"
}Response:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
{
"single": {
"id": 1,
"class": "Subtask",
"url_path": "\/projects\/1\/tasks\/1\/subtasks\/1",
"assignee_id": 0,
"delegated_by_id": 0,
"completed_on": null,
"completed_by_id": null,
"is_completed": false,
"is_trashed": false,
"trashed_on": null,
"trashed_by_id": 0,
"created_on": 1430164531,
"created_by_id": 1,
"updated_on": 1430164531,
"name": "Subtask #1",
"task_id": 1,
"project_id": 1,
"due_on": null
}
}Payload:
1 2 3
{
"body": "Comment body"
}Response:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
{
"single": {
"id": 1,
"class": "Comment",
"url_path": "\/comments\/1",
"attachments": [],
"is_trashed": false,
"trashed_on": null,
"trashed_by_id": 0,
"parent_type": "Task",
"parent_id": 1,
"body": "Comment body",
"body_formatted": "Comment body",
"body_plain_text": "Comment body",
"created_on": 1430164532,
"created_by_id": 1,
"updated_on": 1430164532,
"updated_by_id": 1
}
}Now we'll upload a file:
Files:
1 2 3 4 5 6
[
[
"ac.png",
"image\/png"
]
]Response:
1 2 3 4 5 6 7 8 9
[
{
"code": "uaPlmVk5sPa7zHoYOKJQoQRRB0LhGkCH1BSbl36D",
"name": "ac.png",
"mime_type": "image\/png",
"size": 1927,
"thumbnail_url": "http:\/\/feather.dev\/proxy.php?proxy=forward_thumbnail&module=system&v=current&b=DEV&context=upload&name=2015-04%2FtwXPqC6rQPCfPlHW0SHEhOVGtzhwVbPhbCWr5QIK&original_file_name=ac.png&width=--WIDTH--&height=--HEIGHT--&ver=1927&scale=--SCALE--"
}
]Payload:
1 2 3
{
"uploaded_file_code": "uaPlmVk5sPa7zHoYOKJQoQRRB0LhGkCH1BSbl36D"
}Response:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
{
"single": {
"id": 1,
"class": "File",
"url_path": "\/projects\/1\/files\/1",
"name": "ac.png",
"is_trashed": false,
"trashed_on": null,
"trashed_by_id": 0,
"project_id": 1,
"is_hidden_from_clients": false,
"mime_type": "image\/png",
"size": 1927,
"md5": null,
"download_url": "http:\/\/feather.dev\/projects\/1\/files\/1\/download",
"thumbnail_url": "http:\/\/feather.dev\/proxy.php?proxy=forward_thumbnail&module=system&v=current&b=DEV&context=upload&name=2015-04%2FtwXPqC6rQPCfPlHW0SHEhOVGtzhwVbPhbCWr5QIK&original_file_name=ac.png&width=--WIDTH--&height=--HEIGHT--&ver=1927&scale=--SCALE--",
"file_meta": {
"kind": "image",
"dimensions": {
"width": 50,
"height": 50
}
},
"created_on": 1430164532,
"created_by_id": 1,
"updated_on": 1430164532,
"updated_by_id": 1
}
}Finally, lets track some time, and make a correction:
Payload:
1 2 3 4 5 6
{
"value": "3:30",
"user_id": 1,
"job_type_id": 1,
"record_date": "2014-05-14"
}Response:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
{
"single": {
"id": 1,
"class": "TimeRecord",
"url_path": "\/projects\/1\/time-records\/1",
"is_trashed": false,
"trashed_on": null,
"trashed_by_id": 0,
"billable_status": 1,
"value": 3.5,
"record_date": 1400025600,
"summary": null,
"user_id": 1,
"parent_type": "Project",
"parent_id": 1,
"created_on": 1430164532,
"created_by_id": 1,
"updated_on": 1430164532,
"updated_by_id": 1,
"job_type_id": 1
}
}Payload:
1 2 3
{
"value": 4
}Response:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
{
"single": {
"id": 1,
"class": "TimeRecord",
"url_path": "\/projects\/1\/time-records\/1",
"is_trashed": false,
"trashed_on": null,
"trashed_by_id": 0,
"billable_status": 1,
"value": 4,
"record_date": 1400025600,
"summary": null,
"user_id": 1,
"parent_type": "Project",
"parent_id": 1,
"created_on": 1430164532,
"created_by_id": 1,
"updated_on": 1430164533,
"updated_by_id": 1,
"job_type_id": 1
}
}Lets check What's New (Timeline) page for the project. It should return all activities in reverse chronological order, plus all related objects:
Response:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416
{
"activity_logs": [
{
"id": 12,
"class": "TrackingObjectUpdatedActivityLog",
"url_path": "\/activity-logs\/12",
"parent_type": "TimeRecord",
"parent_id": 1,
"created_on": 1430164533,
"created_by_id": 1,
"updated_on": 1430164533,
"created_by_name": "ilija.studen",
"created_by_email": "ilija.studen@activecollab.com",
"parent_path": "projects\/1\/hidden-from-clients\/time-records\/1",
"modifications": {
"value": [
3.5,
4
]
}
},
{
"id": 11,
"class": "TrackingObjectCreatedActivityLog",
"url_path": "\/activity-logs\/11",
"parent_type": "TimeRecord",
"parent_id": 1,
"created_on": 1430164532,
"created_by_id": 1,
"updated_on": 1430164532,
"created_by_name": "ilija.studen",
"created_by_email": "ilija.studen@activecollab.com",
"parent_path": "projects\/1\/hidden-from-clients\/time-records\/1"
},
{
"id": 10,
"class": "InstanceCreatedActivityLog",
"url_path": "\/activity-logs\/10",
"parent_type": "File",
"parent_id": 1,
"created_on": 1430164532,
"created_by_id": 1,
"updated_on": 1430164532,
"created_by_name": "ilija.studen",
"created_by_email": "ilija.studen@activecollab.com",
"parent_path": "projects\/1\/visible-to-clients\/files\/1"
},
{
"id": 9,
"class": "CommentCreatedActivityLog",
"url_path": "\/activity-logs\/9",
"parent_type": "Task",
"parent_id": 1,
"created_on": 1430164532,
"created_by_id": 1,
"updated_on": 1430164532,
"created_by_name": "ilija.studen",
"created_by_email": "ilija.studen@activecollab.com",
"parent_path": "projects\/1\/visible-to-clients\/tasks\/1",
"comment_id": 1
},
{
"id": 8,
"class": "SubtaskCreatedActivityLog",
"url_path": "\/activity-logs\/8",
"parent_type": "Task",
"parent_id": 1,
"created_on": 1430164531,
"created_by_id": 1,
"updated_on": 1430164531,
"created_by_name": "ilija.studen",
"created_by_email": "ilija.studen@activecollab.com",
"parent_path": "projects\/1\/visible-to-clients\/tasks\/1",
"subtask_id": 1
},
{
"id": 7,
"class": "InstanceUpdatedActivityLog",
"url_path": "\/activity-logs\/7",
"parent_type": "Task",
"parent_id": 1,
"created_on": 1430164531,
"created_by_id": 1,
"updated_on": 1430164531,
"created_by_name": "ilija.studen",
"created_by_email": "ilija.studen@activecollab.com",
"parent_path": "projects\/1\/visible-to-clients\/tasks\/1",
"modifications": {
"assignee_id": [
0,
2
]
}
},
{
"id": 6,
"class": "InstanceCreatedActivityLog",
"url_path": "\/activity-logs\/6",
"parent_type": "Task",
"parent_id": 1,
"created_on": 1430164531,
"created_by_id": 1,
"updated_on": 1430164531,
"created_by_name": "ilija.studen",
"created_by_email": "ilija.studen@activecollab.com",
"parent_path": "projects\/1\/visible-to-clients\/tasks\/1"
},
{
"id": 5,
"class": "InstanceCreatedActivityLog",
"url_path": "\/activity-logs\/5",
"parent_type": "TaskList",
"parent_id": 2,
"created_on": 1430164531,
"created_by_id": 1,
"updated_on": 1430164531,
"created_by_name": "ilija.studen",
"created_by_email": "ilija.studen@activecollab.com",
"parent_path": "projects\/1\/visible-to-clients\/task-lists\/2"
},
{
"id": 4,
"class": "InstanceCreatedActivityLog",
"url_path": "\/activity-logs\/4",
"parent_type": "TaskList",
"parent_id": 1,
"created_on": 1430164530,
"created_by_id": 1,
"updated_on": 1430164530,
"created_by_name": "ilija.studen",
"created_by_email": "ilija.studen@activecollab.com",
"parent_path": "projects\/1\/visible-to-clients\/task-lists\/1"
},
{
"id": 3,
"class": "InstanceUpdatedActivityLog",
"url_path": "\/activity-logs\/3",
"parent_type": "Project",
"parent_id": 1,
"created_on": 1430164530,
"created_by_id": 1,
"updated_on": 1430164530,
"created_by_name": "ilija.studen",
"created_by_email": "ilija.studen@activecollab.com",
"parent_path": "projects\/1",
"modifications": {
"name": [
"New projct",
"New Project"
]
}
},
{
"id": 2,
"class": "InstanceCreatedActivityLog",
"url_path": "\/activity-logs\/2",
"parent_type": "Project",
"parent_id": 1,
"created_on": 1430164530,
"created_by_id": 1,
"updated_on": 1430164530,
"created_by_name": "ilija.studen",
"created_by_email": "ilija.studen@activecollab.com",
"parent_path": "projects\/1"
}
],
"related": {
"TimeRecord": {
"1": {
"id": 1,
"class": "TimeRecord",
"url_path": "\/projects\/1\/time-records\/1",
"is_trashed": false,
"trashed_on": null,
"trashed_by_id": 0,
"billable_status": 1,
"value": 4,
"record_date": 1400025600,
"summary": null,
"user_id": 1,
"parent_type": "Project",
"parent_id": 1,
"created_on": 1430164532,
"created_by_id": 1,
"updated_on": 1430164533,
"updated_by_id": 1,
"job_type_id": 1
}
},
"Project": {
"1": {
"id": 1,
"class": "Project",
"url_path": "\/projects\/1",
"name": "New Project",
"completed_on": null,
"completed_by_id": null,
"is_completed": false,
"members": [
1,
2
],
"category_id": 0,
"label_id": 0,
"is_trashed": false,
"trashed_on": null,
"trashed_by_id": 0,
"created_on": 1430164530,
"created_by_id": 1,
"updated_on": 1430164533,
"updated_by_id": 1,
"body": null,
"body_formatted": "",
"company_id": 2,
"leader_id": 1,
"currency_id": 2,
"template_id": 0,
"based_on_type": null,
"based_on_id": null,
"email": "notifications+m2p-nkgi5Pg@mail.manageprojects.com",
"is_tracking_enabled": true,
"is_client_reporting_enabled": false,
"budget": null,
"count_tasks": 1,
"count_discussions": 0,
"count_files": 1,
"count_notes": 0
}
},
"File": {
"1": {
"id": 1,
"class": "File",
"url_path": "\/projects\/1\/files\/1",
"name": "ac.png",
"is_trashed": false,
"trashed_on": null,
"trashed_by_id": 0,
"project_id": 1,
"is_hidden_from_clients": false,
"mime_type": "image\/png",
"size": 1927,
"md5": null,
"download_url": "http:\/\/feather.dev\/projects\/1\/files\/1\/download",
"thumbnail_url": "http:\/\/feather.dev\/proxy.php?proxy=forward_thumbnail&module=system&v=current&b=DEV&context=upload&name=2015-04%2FtwXPqC6rQPCfPlHW0SHEhOVGtzhwVbPhbCWr5QIK&original_file_name=ac.png&width=--WIDTH--&height=--HEIGHT--&ver=1927&scale=--SCALE--",
"file_meta": {
"kind": "image",
"dimensions": {
"width": 50,
"height": 50
}
},
"created_on": 1430164532,
"created_by_id": 1,
"updated_on": 1430164532,
"updated_by_id": 1
}
},
"Task": {
"1": {
"id": 1,
"class": "Task",
"url_path": "\/projects\/1\/tasks\/1",
"name": "Test Task",
"assignee_id": 2,
"delegated_by_id": 1,
"completed_on": null,
"completed_by_id": null,
"is_completed": false,
"comments_count": "1",
"attachments": [],
"labels": [],
"is_trashed": false,
"trashed_on": null,
"trashed_by_id": 0,
"project_id": 1,
"is_hidden_from_clients": false,
"body": "",
"body_formatted": "",
"created_on": 1430164531,
"created_by_id": 1,
"updated_on": 1430164532,
"updated_by_id": 1,
"task_number": 1,
"task_list_id": 1,
"position": 1,
"is_important": false,
"due_on": null,
"estimate": 0,
"job_type_id": 0,
"total_subtasks": 0,
"completed_subtasks": 0,
"open_subtasks": 0
}
},
"Comment": {
"1": {
"id": 1,
"class": "Comment",
"url_path": "\/comments\/1",
"attachments": [],
"is_trashed": false,
"trashed_on": null,
"trashed_by_id": 0,
"parent_type": "Task",
"parent_id": 1,
"body": "Comment body",
"body_formatted": "Comment body",
"body_plain_text": "Comment body",
"created_on": 1430164532,
"created_by_id": 1,
"updated_on": 1430164532,
"updated_by_id": 1
}
},
"Subtask": {
"1": {
"id": 1,
"class": "Subtask",
"url_path": "\/projects\/1\/tasks\/1\/subtasks\/1",
"assignee_id": 0,
"delegated_by_id": 0,
"completed_on": null,
"completed_by_id": null,
"is_completed": false,
"is_trashed": false,
"trashed_on": null,
"trashed_by_id": 0,
"created_on": 1430164531,
"created_by_id": 1,
"updated_on": 1430164531,
"name": "Subtask #1",
"task_id": 1,
"project_id": 1,
"due_on": null
}
},
"User": {
"2": {
"id": 2,
"class": "Member",
"url_path": "\/users\/2",
"is_archived": false,
"is_trashed": false,
"trashed_on": null,
"trashed_by_id": 0,
"created_on": 1430164530,
"created_by_id": 1,
"updated_on": 1430164530,
"updated_by_id": 1,
"language_id": 0,
"first_name": "Member",
"last_name": null,
"display_name": "member",
"short_display_name": "member",
"email": "member@activecollab.com",
"additional_email_addresses": [],
"is_pending_activation": false,
"avatar_url": "http:\/\/feather.dev\/proxy.php?proxy=avatar&module=system&v=current&b=DEV&user_id=2&size=--SIZE--×tamp=1430164530",
"custom_permissions": [],
"company_id": 1,
"title": null,
"phone": null,
"im_type": null,
"im_handle": null,
"note": null
}
},
"TaskList": {
"1": {
"id": 1,
"class": "TaskList",
"url_path": "\/projects\/1\/task-lists\/1",
"name": "First task list",
"is_trashed": false,
"trashed_on": null,
"trashed_by_id": 0,
"completed_on": null,
"completed_by_id": null,
"is_completed": false,
"project_id": 1,
"created_on": 1430164530,
"created_by_id": 1,
"updated_on": 1430164530,
"updated_by_id": 1,
"start_on": null,
"due_on": null,
"position": 1,
"open_tasks": 1,
"completed_tasks": 0
},
"2": {
"id": 2,
"class": "TaskList",
"url_path": "\/projects\/1\/task-lists\/2",
"name": "Second task list",
"is_trashed": false,
"trashed_on": null,
"trashed_by_id": 0,
"completed_on": null,
"completed_by_id": null,
"is_completed": false,
"project_id": 1,
"created_on": 1430164531,
"created_by_id": 1,
"updated_on": 1430164531,
"updated_by_id": 1,
"start_on": null,
"due_on": null,
"position": 2,
"open_tasks": 0,
"completed_tasks": 0
}
}
}
}