dock_health_api 0.3.6

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 (43) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +4 -0
  3. data/Gemfile.lock +59 -0
  4. data/LICENSE +201 -0
  5. data/README.md +701 -0
  6. data/Rakefile +10 -0
  7. data/bin/console +22 -0
  8. data/bin/setup +6 -0
  9. data/dock_health_api.gemspec +39 -0
  10. data/lib/dock_health_api/client.rb +27 -0
  11. data/lib/dock_health_api/config.rb +9 -0
  12. data/lib/dock_health_api/crud/create.rb +14 -0
  13. data/lib/dock_health_api/crud/delete.rb +12 -0
  14. data/lib/dock_health_api/crud/get.rb +11 -0
  15. data/lib/dock_health_api/crud/list.rb +19 -0
  16. data/lib/dock_health_api/crud/put.rb +15 -0
  17. data/lib/dock_health_api/crud/update.rb +21 -0
  18. data/lib/dock_health_api/object.rb +19 -0
  19. data/lib/dock_health_api/resource.rb +33 -0
  20. data/lib/dock_health_api/resources/customfield.rb +20 -0
  21. data/lib/dock_health_api/resources/developer.rb +5 -0
  22. data/lib/dock_health_api/resources/organization.rb +15 -0
  23. data/lib/dock_health_api/resources/patient.rb +9 -0
  24. data/lib/dock_health_api/resources/task.rb +22 -0
  25. data/lib/dock_health_api/resources/tasklist.rb +21 -0
  26. data/lib/dock_health_api/resources/user.rb +9 -0
  27. data/lib/dock_health_api/resources/webhook.rb +14 -0
  28. data/lib/dock_health_api/version.rb +3 -0
  29. data/lib/dock_health_api.rb +47 -0
  30. data/spec/client_spec.rb +35 -0
  31. data/spec/customfield_spec.rb +53 -0
  32. data/spec/developer_spec.rb +13 -0
  33. data/spec/dock_health_api_spec.rb +5 -0
  34. data/spec/organization.rb +58 -0
  35. data/spec/patient_spec.rb +59 -0
  36. data/spec/spec_helper.rb +26 -0
  37. data/spec/task_group_spec.rb +70 -0
  38. data/spec/task_spec.rb +65 -0
  39. data/spec/tasklist_spec.rb +80 -0
  40. data/spec/tasklist_user_spec.rb +62 -0
  41. data/spec/user_spec.rb +60 -0
  42. data/spec/webhook_spec.rb +117 -0
  43. metadata +156 -0
data/README.md ADDED
@@ -0,0 +1,701 @@
1
+ # Dock Health API
2
+
3
+ Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/dock_health_api`. To experiment with that code, run `bin/console` for an interactive prompt.
4
+
5
+ # Documentation
6
+ https://partner-api-dev.dockhealth.app/api-docs/redoc
7
+
8
+
9
+ ## Installation
10
+
11
+ Add this line to your application's Gemfile:
12
+
13
+ ```ruby
14
+ gem 'dock_health_api'
15
+ ```
16
+
17
+ And then execute:
18
+
19
+ $ bundle install
20
+
21
+ Or install it yourself as:
22
+
23
+ $ gem install dock_health_api
24
+
25
+ ## Usage
26
+
27
+ The library needs to be configured with your account's key and secret. Set `DockHealthApi.api_key` , ` DockHealthApi.api_secret` to their values, ideally using hidden `ENV` variables:
28
+
29
+ ```ruby
30
+ require 'dock_health_api'
31
+ DockHealthApi.api_key = ENV["DOCK_HEALTH_KEY"]
32
+ DockHealthApi.api_secret = ENV["DOCK_HEALTH_SECRET"]
33
+ DockHealthApi.resource_url = ENV["DOCK_HEALTH_URL"]
34
+ # Needs to be configurably set in hidden ENV variables to interact with below resources
35
+ DOCK_USER="x-user-id"
36
+ DOCK_ORG="x-organization-id"
37
+
38
+ # Acquire x-user-id and x-organization-id
39
+ DockHealthApi::Developer.list
40
+ DockHealthApi::Organization.list
41
+
42
+
43
+ # List All Patients
44
+ DockHealthApi::Patient.list
45
+ # Get Specific Patient
46
+ DockHealthApi::Patient.get('id of patient')
47
+ # Create Patient
48
+ DockHealthApi::Patient.create(patient_data)
49
+ # Update Specific Patient
50
+ DockHealthApi::Patient.update(updated_patient_data)
51
+ # Delete Specific Patient
52
+ DockHealthApi::Patient.delete({id: "12345"})
53
+
54
+
55
+ # List All Users
56
+ DockHealthApi::User.list
57
+ # Get Specific User
58
+ DockHealthApi::User.get('id of user')
59
+ # Create User
60
+ DockHealthApi::User.create(user_data)
61
+ # Update Specific User
62
+ DockHealthApi::User.update(updated_user_data)
63
+ # Delete Specific User (can't be an active user)
64
+ DockHealthApi::User.delete({id: "id of user"})
65
+
66
+ # Create task with task description, tasklist type and tasklist id
67
+ params = { description: "description", taskList: { type: "taskList type", id: "<taskList ID>" } }
68
+ DockHealthApi::Task.create(params)
69
+ # Show all tasks (Must supply at least 1 of 'taskListIdentifier', 'patientIdentifier', 'assignedToUserIdentifier', or 'criteria'.)
70
+ DockHealthApi::Task.list(taskListIdentifier: "<taskList ID>")
71
+ # Retrieve task
72
+ DockHealthApi::Task.get("<task ID>")
73
+ # Update task
74
+ params = { description: "task description", id: "<task ID>" }
75
+ DockHealthApi::Task.update(params)
76
+ # Delete task
77
+ DockHealthApi::Task.delete(id: "<task ID>")
78
+ # List All Organizations
79
+ DockHealthApi::Organization.list
80
+
81
+ # Create tasklist with tasklist name
82
+ DockHealthApi::TaskList.create(listName: "tasklist name")
83
+ # Show all tasklists
84
+ DockHealthApi::TaskList.list
85
+ # Retrive tasklist
86
+ DockHealthApi::TaskList.get("<tasklist ID>")
87
+ # Update taskList
88
+ params = { listName: "tasklist name", id: "<tasklist ID>"}
89
+ DockHealthApi::TaskList.update(params)
90
+ # Delete tasklist
91
+ DockHealthApi::TaskList.delete(id: "<tasklist ID>")
92
+
93
+ # Add existing user to tasklist
94
+ params = { taskList: { type: "tasklist type", id: "<tasklist id>" }, user: { type: "user type", id: "<user id>" } }
95
+ DockHealthApi::TaskList::User.put(params)
96
+ # Update role for existing user in tasklist
97
+ params = { taskList: { type: "tasklist type", id: "<tasklist id>" }, user: { type: "user type", id: "<user id>", userRole: "user role"} }
98
+ DockHealthApi::TaskList::User.update(params)
99
+ # Delete existing user from tasklist
100
+ params = { taskList: { type: "tasklist type", id: "<tasklist id>" }, user: { type: "user type", id: "<user id>" } }
101
+ DockHealthApi::TaskList::User.delete(params)
102
+
103
+ # Create webhook with url, secret and events
104
+ params = { "url": "url *must start with https://*", "secret": "secret", "events": ["array of event(s)"] }
105
+ DockHealthApi::Webhook.create(params)
106
+ # Show all webhooks
107
+ DockHealthApi::Webhook.list
108
+ # Retrive webhooks
109
+ DockHealthApi::Webhook.get("<webhook ID>")
110
+ # Update webhook
111
+ params = { "url": "url *must start with https://*", "secret": "secret", "events": ["array of event(s)"], id: "<webhook ID>" }
112
+ DockHealthApi::Webhook.put(params)
113
+ # Delete webhook
114
+ DockHealthApi::Webhook.delete(id: "<webhook id>")
115
+
116
+ # Get Specific Organization
117
+ DockHealthApi::Organization.get('id of user')
118
+ # Create Organization
119
+ DockHealthApi::Organization.create(organization_data)
120
+ # Update Specific Organization
121
+ DockHealthApi::Organization.update(updated_organization_data)
122
+ # Delete Specific Organization (can't be an active Organization)
123
+ DockHealthApi::Organization.delete({id: "id of organization"})
124
+
125
+
126
+ ```
127
+
128
+ # Patient Data Format
129
+ ```
130
+ {
131
+ "mrn": "string",
132
+ "firstName": "string",
133
+ "middleName": "string",
134
+ "lastName": "string",
135
+ "dob": "2019-08-24T14:15:22Z",
136
+ "gender": "string",
137
+ "email": "string",
138
+ "phoneHome": "string",
139
+ "phoneMobile": "string",
140
+ "patientMetaData": [
141
+ {
142
+ "customFieldIdentifier": "string",
143
+ "customFieldName": "string",
144
+ "value": "string"
145
+ }
146
+ ],
147
+ "identifier": "string"
148
+ }
149
+
150
+ required field
151
+ firstName, lastName, mrn
152
+
153
+ Updated Patient Data
154
+ {
155
+ "email: "string,
156
+ ...
157
+ "id: "id of patient"
158
+ }
159
+ ```
160
+ # User Data Format
161
+ ```
162
+ {
163
+ "email": "string",
164
+ "firstName": "string",
165
+ "lastName": "string",
166
+ "credentials": "string",
167
+ "accountPhoneNumber": "string",
168
+ "workPhoneNumber": "string",
169
+ "homePhoneNumber": "string",
170
+ "faxNumber": "string",
171
+ "department": "string",
172
+ "notes": "string",
173
+ "identifier": "string"
174
+ }
175
+
176
+ required field
177
+ email
178
+
179
+ Update User Format
180
+
181
+ {
182
+ "email: "string,
183
+ ...
184
+ "id: "id of user"
185
+ }
186
+
187
+
188
+ ```
189
+ # Task Data Format
190
+ ```
191
+ {
192
+ "description": "string",
193
+ "tokenizedDescription": "string",
194
+ "details": "string",
195
+ "tokenizedDetails": "string",
196
+ "priority": "HIGH",
197
+ "status": "COMPLETE",
198
+ "workflowStatus": {
199
+ "type": "DEVELOPER",
200
+ "id": "string"
201
+ },
202
+ "dueDate": "2019-08-24T14:15:22Z",
203
+ "reminderType": "NONE",
204
+ "reminderTime": "string",
205
+ "reminderDt": "2019-08-24T14:15:22Z",
206
+ "creator": {
207
+ "type": "DEVELOPER",
208
+ "id": "string"
209
+ },
210
+ "assignedTo": {
211
+ "type": "DEVELOPER",
212
+ "id": "string"
213
+ },
214
+ "assignedBy": {
215
+ "type": "DEVELOPER",
216
+ "id": "string"
217
+ },
218
+ "completedBy": {
219
+ "type": "DEVELOPER",
220
+ "id": "string"
221
+ },
222
+ "subTasksCount": 0,
223
+ "subTasksCompletedCount": 0,
224
+ "subtasks": [
225
+ {
226
+ "itemType": "TASK",
227
+ "identifier": "string",
228
+ "taskId": 0,
229
+ "taskIdentifier": "string",
230
+ "externalIdentifier": "string",
231
+ "description": "string",
232
+ "tokenizedDescription": "string",
233
+ "details": "string",
234
+ "tokenizedDetails": "string",
235
+ "priority": "HIGH",
236
+ "status": "COMPLETE",
237
+ "workflowStatus": {
238
+ "identifier": "string",
239
+ "name": "string",
240
+ "color": "string"
241
+ },
242
+ "dueDate": "2019-08-24T14:15:22Z",
243
+ "reminderType": "NONE",
244
+ "reminderTime": "string",
245
+ "reminderDt": "2019-08-24T14:15:22Z",
246
+ "creator": {
247
+ "itemType": "USER",
248
+ "id": 0,
249
+ "identifier": "string",
250
+ "userId": 0,
251
+ "userIdentifier": "string",
252
+ "firstName": "string",
253
+ "lastName": "string",
254
+ "userName": "string",
255
+ "profileThumbnailPictureHash": "string",
256
+ "userStatus": "ACTIVE",
257
+ "initials": "string",
258
+ "bubbleColor": "string",
259
+ "status": "ACTIVE",
260
+ "orgUserRole": "OWNER",
261
+ "taskListUserRole": "OWNER",
262
+ "name": "string"
263
+ },
264
+ "assignedToUsers": [
265
+ {
266
+ "itemType": "USER",
267
+ "id": 0,
268
+ "identifier": "string",
269
+ "userStatus": "ACTIVE",
270
+ "bubbleColor": "string",
271
+ "initials": "string",
272
+ "profileThumbnailPictureHash": "string",
273
+ "name": "string"
274
+ }
275
+ ],
276
+ "addedToListByUser": {
277
+ "itemType": "USER",
278
+ "id": 0,
279
+ "identifier": "string",
280
+ "userId": 0,
281
+ "userIdentifier": "string",
282
+ "firstName": "string",
283
+ "lastName": "string",
284
+ "userName": "string",
285
+ "profileThumbnailPictureHash": "string",
286
+ "userStatus": "ACTIVE",
287
+ "initials": "string",
288
+ "bubbleColor": "string",
289
+ "status": "ACTIVE",
290
+ "orgUserRole": "OWNER",
291
+ "taskListUserRole": "OWNER",
292
+ "name": "string"
293
+ },
294
+ "completedBy": {
295
+ "itemType": "USER",
296
+ "id": 0,
297
+ "identifier": "string",
298
+ "userId": 0,
299
+ "userIdentifier": "string",
300
+ "firstName": "string",
301
+ "lastName": "string",
302
+ "userName": "string",
303
+ "profileThumbnailPictureHash": "string",
304
+ "userStatus": "ACTIVE",
305
+ "initials": "string",
306
+ "bubbleColor": "string",
307
+ "status": "ACTIVE",
308
+ "orgUserRole": "OWNER",
309
+ "taskListUserRole": "OWNER",
310
+ "name": "string"
311
+ },
312
+ "comments": [
313
+ {
314
+ "commentId": 0,
315
+ "commentIdentifier": "string",
316
+ "comment": "string",
317
+ "tokenizedComment": "string",
318
+ "taskIdentifier": "string",
319
+ "creator": {
320
+ "itemType": "USER",
321
+ "id": 0,
322
+ "identifier": "string",
323
+ "userId": 0,
324
+ "userIdentifier": "string",
325
+ "firstName": "string",
326
+ "lastName": "string",
327
+ "userName": "string",
328
+ "profileThumbnailPictureHash": "string",
329
+ "userStatus": "ACTIVE",
330
+ "initials": "string",
331
+ "bubbleColor": "string",
332
+ "status": "ACTIVE",
333
+ "orgUserRole": "OWNER",
334
+ "taskListUserRole": "OWNER",
335
+ "name": "string"
336
+ },
337
+ "dateCreated": "2019-08-24T14:15:22Z",
338
+ "dateUpdated": "2019-08-24T14:15:22Z",
339
+ "sortIndex": 0,
340
+ "commentMentions": [
341
+ {
342
+ "identifier": "string",
343
+ "name": "string"
344
+ }
345
+ ],
346
+ "hasMentions": true
347
+ }
348
+ ],
349
+ "attachments": [
350
+ {
351
+ "attachmentId": 0,
352
+ "attachmentIdentifier": "string",
353
+ "taskIdentifier": "string",
354
+ "fileName": "string",
355
+ "fileIdentifier": "string",
356
+ "fileSize": 0,
357
+ "contentType": "string",
358
+ "creator": {
359
+ "itemType": "USER",
360
+ "id": 0,
361
+ "identifier": "string",
362
+ "userId": 0,
363
+ "userIdentifier": "string",
364
+ "firstName": "string",
365
+ "lastName": "string",
366
+ "userName": "string",
367
+ "profileThumbnailPictureHash": "string",
368
+ "userStatus": "ACTIVE",
369
+ "initials": "string",
370
+ "bubbleColor": "string",
371
+ "status": "ACTIVE",
372
+ "orgUserRole": "OWNER",
373
+ "taskListUserRole": "OWNER",
374
+ "name": "string"
375
+ },
376
+ "dateCreated": "2019-08-24T14:15:22Z",
377
+ "dateUpdated": "2019-08-24T14:15:22Z"
378
+ }
379
+ ],
380
+ "labels": [
381
+ {
382
+ "labelIdentifier": "string",
383
+ "labelName": "string",
384
+ "taskIdentifier": "string"
385
+ }
386
+ ],
387
+ "subTasksCount": 0,
388
+ "subTasksCompletedCount": 0,
389
+ "completedDt": "2019-08-24T14:15:22Z",
390
+ "createdDateTime": "2019-08-24T14:15:22Z",
391
+ "updatedDateTime": "2019-08-24T14:15:22Z",
392
+ "assignmentUpdatedDateTime": "2019-08-24T14:15:22Z",
393
+ "read": true,
394
+ "updated": true,
395
+ "updatedComment": true,
396
+ "updatedLabel": true,
397
+ "updatedAttachment": true,
398
+ "updatedDueDate": true,
399
+ "patient": {
400
+ "patientId": 0,
401
+ "patientIdentifier": "string",
402
+ "mrn": "string",
403
+ "firstName": "string",
404
+ "middleName": "string",
405
+ "lastName": "string",
406
+ "dob": "2019-08-24T14:15:22Z",
407
+ "age": "string",
408
+ "gender": "string",
409
+ "fromEMR": true,
410
+ "patientName": "string"
411
+ },
412
+ "type": "IN_APP",
413
+ "taskList": {
414
+ "taskListId": 0,
415
+ "taskListIdentifier": "string",
416
+ "listName": "string",
417
+ "listDescription": "string",
418
+ "listType": "PUBLIC"
419
+ },
420
+ "parentTaskId": 0,
421
+ "parentTaskIdentifier": "string",
422
+ "parentTask": {},
423
+ "active": true,
424
+ "sourceMessage": "string",
425
+ "subTaskSortIndex": 0,
426
+ "archivedByUser": true,
427
+ "edited": true,
428
+ "duplicated": true,
429
+ "taskGroups": [
430
+ {
431
+ "taskGroupIdentifier": "string",
432
+ "groupName": "string",
433
+ "groupDescription": "string",
434
+ "groupType": "TASKLIST",
435
+ "taskListIdentifier": "string",
436
+ "sortIndexOfTaskInGroup": 0
437
+ }
438
+ ],
439
+ "taskMentions": [
440
+ {
441
+ "identifier": "string",
442
+ "name": "string"
443
+ }
444
+ ],
445
+ "hasMentions": true,
446
+ "hasRecurringSchedule": true,
447
+ "intentType": "STANDARD",
448
+ "taskLinks": [
449
+ {
450
+ "sourceTaskIdentifier": "string",
451
+ "targetTaskIdentifier": "string",
452
+ "isDependent": true,
453
+ "delayPeriod": 0,
454
+ "delayPeriodUnit": "HOUR",
455
+ "delayIsBusinessDays": true,
456
+ "decisionOutcome": "string"
457
+ }
458
+ ],
459
+ "dependencyTasksCount": 0,
460
+ "dependencyTasksCompletedCount": 0,
461
+ "taskOutcomes": [
462
+ {
463
+ "taskOutcomeIdentifier": "string",
464
+ "name": "string",
465
+ "isSelected": true,
466
+ "selectedDateTime": "2019-08-24T14:15:22Z",
467
+ "selectedBy": {
468
+ "itemType": "USER",
469
+ "id": 0,
470
+ "identifier": "string",
471
+ "userId": 0,
472
+ "userIdentifier": "string",
473
+ "firstName": "string",
474
+ "lastName": "string",
475
+ "userName": "string",
476
+ "profileThumbnailPictureHash": "string",
477
+ "userStatus": "ACTIVE",
478
+ "initials": "string",
479
+ "bubbleColor": "string",
480
+ "status": "ACTIVE",
481
+ "orgUserRole": "OWNER",
482
+ "taskListUserRole": "OWNER",
483
+ "name": "string"
484
+ }
485
+ }
486
+ ],
487
+ "taskTemplateIdentifier": "string",
488
+ "taskMetaData": [
489
+ {
490
+ "customFieldIdentifier": "string",
491
+ "customFieldName": "string",
492
+ "value": "string"
493
+ }
494
+ ],
495
+ "taskBundleGroup": {
496
+ "taskGroupIdentifier": "string",
497
+ "groupName": "string",
498
+ "groupDescription": "string",
499
+ "groupType": "TASKLIST",
500
+ "taskListIdentifier": "string",
501
+ "sortIndexOfTaskInGroup": 0
502
+ }
503
+ }
504
+ ],
505
+ "completedDt": "2019-08-24T14:15:22Z",
506
+ "createdDateTime": "2019-08-24T14:15:22Z",
507
+ "updatedDateTime": "2019-08-24T14:15:22Z",
508
+ "read": true,
509
+ "updated": true,
510
+ "patient": {
511
+ "type": "DEVELOPER",
512
+ "id": "string"
513
+ },
514
+ "taskList": {
515
+ "type": "DEVELOPER",
516
+ "id": "string"
517
+ },
518
+ "type": "IN_APP",
519
+ "parentTask": {
520
+ "type": "DEVELOPER",
521
+ "id": "string"
522
+ },
523
+ "sourceMessage": "string",
524
+ "subTaskSortIndex": 0,
525
+ "edited": true,
526
+ "duplicated": true,
527
+ "hasMentions": true,
528
+ "taskMetaData": [
529
+ {
530
+ "customFieldIdentifier": "string",
531
+ "customFieldName": "string",
532
+ "value": "string"
533
+ }
534
+ ],
535
+ "id": "string",
536
+ "identifier": "string"
537
+ }
538
+
539
+ require field
540
+ { "description": "string",
541
+ "taskList": { type: "string", id: "<tasklist ID>" }
542
+ }
543
+
544
+ Update Task Format
545
+ { "description": "string"}
546
+ ...
547
+ "id": "<tasklist ID"
548
+ }
549
+
550
+ List Tasks require field
551
+ "taskListIdentifier", "patientIdentifier", "assignedToUserIdentifier", or "criteria"
552
+ ```
553
+ # TaskList Data Format
554
+ ```
555
+ {
556
+ "listName": "string",
557
+ "listDescription": "string",
558
+ "creator": {
559
+ "type": "DEVELOPER",
560
+ "id": "string"
561
+ },
562
+ "listUsers": [
563
+ {
564
+ "user": {
565
+ "type": "DEVELOPER",
566
+ "id": "string"
567
+ },
568
+ "userRole": "OWNER"
569
+ }
570
+ ],
571
+ "listType": "PUBLIC",
572
+ "id": "string"
573
+ }
574
+
575
+ require field
576
+ listName
577
+
578
+ Update TaskList Format
579
+ {
580
+ "listName": "string"
581
+ ...
582
+ "id": "<TaskList ID>"
583
+ }
584
+ ```
585
+
586
+ # TaskList User Format
587
+ ```
588
+ {
589
+ "taskList": {
590
+ "type": "DEVELOPER",
591
+ "id": "string"
592
+ },
593
+ "user": {
594
+ "type": "DEVELOPER",
595
+ "id": "string"
596
+ },
597
+ "userRole": "OWNER"
598
+ }
599
+
600
+ require field
601
+ {
602
+ "taskList": {
603
+ "type": "DEVELOPER",
604
+ "id": "string"
605
+ },
606
+ "user": {
607
+ "type": "DEVELOPER",
608
+ "id": "string"
609
+ }
610
+ }
611
+
612
+ Update TaskList User Format
613
+ {
614
+ "taskList": {
615
+ "type": "DEVELOPER",
616
+ "id": "string"
617
+ },
618
+ "user": {
619
+ "type": "DEVELOPER",
620
+ "id": "string"
621
+ },
622
+ "userRole": "OWNER"
623
+ }
624
+
625
+ Delete TaskList User Format
626
+ {
627
+ "taskList": {
628
+ "type": "DEVELOPER",
629
+ "id": "string"
630
+ },
631
+ "user": {
632
+ "type": "DEVELOPER",
633
+ "id": "string"
634
+ }
635
+ }
636
+ ```
637
+
638
+ # Webhook Data Format
639
+ ```
640
+ {
641
+ "url": "string",
642
+ "secret": "string",
643
+ "verified": true,
644
+ "enabled": true,
645
+ "events": [
646
+ {
647
+ "description": "string",
648
+ "type": "CREATE_TASK"
649
+ }
650
+ ],
651
+ "id": "string"
652
+ }
653
+
654
+ require field
655
+ url, secret, events
656
+
657
+ Update Webhook Format
658
+ {
659
+ "url": "string",
660
+ "secret": "stringstringstringstringstringstring",
661
+
662
+ "events": [
663
+ "CREATE_TASK"
664
+ ]
665
+ }
666
+ ```
667
+
668
+ # Organization Data Format
669
+ ```
670
+ {
671
+ "domain": "string",
672
+ "name": "string",
673
+ "identifier": "string"
674
+ }
675
+
676
+ required field
677
+ domain, name
678
+
679
+ Update Organization Format
680
+
681
+ {
682
+ "domain: "string,
683
+ ...
684
+ "id: "id of organization"
685
+ }
686
+
687
+ ```
688
+
689
+ ## Development
690
+
691
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
692
+
693
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
694
+
695
+ ## Contributing
696
+
697
+ Bug reports and pull requests are welcome on GitHub at https://github.com/BreakthroughBehavioralInc/dock_health_api. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/BreakthroughBehavioralInc/dock_health_api/blob/master/CODE_OF_CONDUCT.md).
698
+
699
+ ## License
700
+
701
+ The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
data/Rakefile ADDED
@@ -0,0 +1,10 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task :default => :spec
7
+
8
+ task :console do
9
+ exec "irb -I lib -r dock_health_api.rb"
10
+ end