traitify 1.8.4 → 2.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (68) hide show
  1. checksums.yaml +5 -5
  2. data/.rubocop.yml +11 -0
  3. data/CHANGELOG.md +5 -0
  4. data/Gemfile +5 -1
  5. data/Gemfile.lock +109 -42
  6. data/README.md +50 -25
  7. data/lib/traitify/client/connection.rb +23 -0
  8. data/lib/traitify/client/model.rb +45 -0
  9. data/lib/traitify/client/overrides.rb +27 -0
  10. data/lib/traitify/client/request.rb +33 -0
  11. data/lib/traitify/client/setup.rb +25 -0
  12. data/lib/traitify/client.rb +20 -27
  13. data/lib/traitify/configuration.rb +4 -12
  14. data/lib/traitify/data.rb +18 -0
  15. data/lib/traitify/error.rb +18 -16
  16. data/lib/traitify/middleware/formatter.rb +52 -0
  17. data/lib/traitify/middleware/raise_error.rb +38 -0
  18. data/lib/traitify/response.rb +44 -0
  19. data/lib/traitify/version.rb +1 -1
  20. data/lib/traitify.rb +29 -1
  21. data/paths.yml +1352 -0
  22. data/spec/spec_helper.rb +14 -6
  23. data/spec/support/mocks/aggregate.json +7 -0
  24. data/spec/support/mocks/assessment.json +1 -1
  25. data/spec/support/mocks/assessment_analytics.json +7 -0
  26. data/spec/support/mocks/blank.json +0 -0
  27. data/spec/support/mocks/career.json +1 -2
  28. data/spec/support/mocks/careers.json +2 -3
  29. data/spec/support/mocks/decks.json +1 -4
  30. data/spec/support/mocks/locale.json +10 -0
  31. data/spec/support/mocks/locales.json +12 -0
  32. data/spec/support/mocks/profile.json +5 -0
  33. data/spec/support/mocks/profiles.json +5 -0
  34. data/spec/support/mocks/trait_analytics.json +7 -0
  35. data/spec/support/mocks/type_analytics.json +7 -0
  36. data/spec/traitify/client/examples/analytics_spec.rb +69 -0
  37. data/spec/{traitify-ruby/client → traitify/client/examples}/assessment_spec.rb +19 -14
  38. data/spec/traitify/client/examples/career_spec.rb +52 -0
  39. data/spec/traitify/client/examples/configuration_spec.rb +29 -0
  40. data/spec/traitify/client/examples/deck_spec.rb +29 -0
  41. data/spec/traitify/client/examples/locale_spec.rb +39 -0
  42. data/spec/{traitify-ruby/client → traitify/client/examples}/major_spec.rb +12 -11
  43. data/spec/traitify/client/examples/profiles_spec.rb +66 -0
  44. data/spec/traitify/client/examples/result_spec.rb +130 -0
  45. data/spec/traitify/client/examples/slide_spec.rb +95 -0
  46. data/spec/traitify/client/model_spec.rb +73 -0
  47. data/spec/traitify/client/request_spec.rb +85 -0
  48. data/spec/traitify/client/setup_spec.rb +62 -0
  49. data/spec/traitify/client_spec.rb +52 -0
  50. data/spec/traitify/data_spec.rb +105 -0
  51. data/spec/traitify/error_spec.rb +117 -0
  52. data/spec/traitify/response_spec.rb +82 -0
  53. data/spec/traitify/version_spec.rb +7 -0
  54. data/traitify.gemspec +14 -12
  55. metadata +115 -53
  56. data/lib/traitify/client/assessments.rb +0 -29
  57. data/lib/traitify/client/careers.rb +0 -25
  58. data/lib/traitify/client/decks.rb +0 -16
  59. data/lib/traitify/client/majors.rb +0 -25
  60. data/lib/traitify/client/results.rb +0 -37
  61. data/lib/traitify/client/slides.rb +0 -34
  62. data/lib/traitify/connection.rb +0 -33
  63. data/lib/traitify/request.rb +0 -18
  64. data/spec/traitify-ruby/client/career_spec.rb +0 -51
  65. data/spec/traitify-ruby/client/configuration_spec.rb +0 -51
  66. data/spec/traitify-ruby/client/deck_spec.rb +0 -28
  67. data/spec/traitify-ruby/client/result_spec.rb +0 -93
  68. data/spec/traitify-ruby/client/slide_spec.rb +0 -82
data/paths.yml ADDED
@@ -0,0 +1,1352 @@
1
+ paths:
2
+ /assessments:
3
+ post:
4
+ tags:
5
+ - "Assessments"
6
+ summary: "Create a new assessment"
7
+ description: "This method allows you to create a new assessment. The only parameter\
8
+ \ is a deck_id."
9
+ operationId: "create"
10
+ produces:
11
+ - "application/json"
12
+ parameters:
13
+ - in: "body"
14
+ name: "body"
15
+ required: true
16
+ schema:
17
+ $ref: "#/definitions/CreateAssessment"
18
+ responses:
19
+ 200:
20
+ description: "successful operation"
21
+ schema:
22
+ $ref: "#/definitions/Assessment"
23
+ /assessments/{assessment_id}/matches/careers:
24
+ get:
25
+ tags:
26
+ - "Assessments"
27
+ summary: "Find matching careers for an assessment"
28
+ description: ""
29
+ operationId: "match"
30
+ produces:
31
+ - "application/json"
32
+ parameters:
33
+ - name: "assessment_id"
34
+ in: "path"
35
+ required: true
36
+ type: "string"
37
+ - name: "career_ids"
38
+ in: "query"
39
+ description: "Filter matches on a comma separated list of career_ids."
40
+ required: false
41
+ type: "string"
42
+ - name: "number_of_matches"
43
+ in: "query"
44
+ required: false
45
+ type: "integer"
46
+ default: 20
47
+ format: "int32"
48
+ - name: "experience_levels"
49
+ in: "query"
50
+ required: false
51
+ type: "string"
52
+ - name: "search"
53
+ in: "query"
54
+ required: false
55
+ type: "string"
56
+ - name: "sort"
57
+ in: "query"
58
+ required: false
59
+ type: "string"
60
+ default: "score"
61
+ - name: "paged"
62
+ in: "query"
63
+ required: false
64
+ type: "boolean"
65
+ default: false
66
+ - name: "page"
67
+ in: "query"
68
+ required: false
69
+ type: "integer"
70
+ default: 1
71
+ format: "int32"
72
+ - name: "careers_per_page"
73
+ in: "query"
74
+ required: false
75
+ type: "integer"
76
+ default: 25
77
+ format: "int32"
78
+ - name: "locale_key"
79
+ in: "query"
80
+ required: false
81
+ type: "string"
82
+ responses:
83
+ 200:
84
+ description: "successful operation"
85
+ schema:
86
+ type: "array"
87
+ items:
88
+ $ref: "#/definitions/ScoredCareer"
89
+ post:
90
+ tags:
91
+ - "Assessments"
92
+ summary: "Get the match score for an assessment and a list of CareerIds"
93
+ description: ""
94
+ operationId: "getCareerScoresByList"
95
+ produces:
96
+ - "application/json"
97
+ parameters:
98
+ - name: "assessment_id"
99
+ in: "path"
100
+ required: true
101
+ type: "string"
102
+ - in: "body"
103
+ name: "body"
104
+ required: false
105
+ schema:
106
+ type: "array"
107
+ items:
108
+ type: "string"
109
+ - name: "locale_key"
110
+ in: "query"
111
+ required: false
112
+ type: "string"
113
+ responses:
114
+ 200:
115
+ description: "successful operation"
116
+ schema:
117
+ type: "array"
118
+ items:
119
+ $ref: "#/definitions/ScoredCareer"
120
+ /assessments/{assessment_id}/matches/careers/{career_id}:
121
+ get:
122
+ tags:
123
+ - "Assessments"
124
+ summary: "Get the match score for an assessment and specific career"
125
+ description: ""
126
+ operationId: "getScore"
127
+ produces:
128
+ - "application/json"
129
+ parameters:
130
+ - name: "assessment_id"
131
+ in: "path"
132
+ required: true
133
+ type: "string"
134
+ - name: "career_id"
135
+ in: "path"
136
+ required: true
137
+ type: "string"
138
+ - name: "locale_key"
139
+ in: "query"
140
+ required: false
141
+ type: "string"
142
+ responses:
143
+ 200:
144
+ description: "successful operation"
145
+ schema:
146
+ type: "array"
147
+ items:
148
+ $ref: "#/definitions/ScoredCareer"
149
+ /assessments/{assessment_id}/personality_traits:
150
+ get:
151
+ tags:
152
+ - "Personality Traits"
153
+ summary: "Get personality traits for the assessment as a dichotomy"
154
+ description: ""
155
+ operationId: "personality_trait"
156
+ produces:
157
+ - "application/json"
158
+ parameters:
159
+ - name: "assessment_id"
160
+ in: "path"
161
+ required: true
162
+ type: "string"
163
+ - name: "locale_key"
164
+ in: "query"
165
+ required: false
166
+ type: "string"
167
+ responses:
168
+ 200:
169
+ description: "successful operation"
170
+ schema:
171
+ type: "array"
172
+ items:
173
+ $ref: "#/definitions/AssessmentPersonalityTraitDichotomy"
174
+ /assessments/{assessment_id}/personality_traits/dichotomy:
175
+ get:
176
+ tags:
177
+ - "Personality Traits"
178
+ summary: "Get personality traits for the assessment as a dichotomy"
179
+ description: ""
180
+ operationId: "personality_trait_dichotomy"
181
+ produces:
182
+ - "application/json"
183
+ parameters:
184
+ - name: "assessment_id"
185
+ in: "path"
186
+ required: true
187
+ type: "string"
188
+ - name: "locale_key"
189
+ in: "query"
190
+ required: false
191
+ type: "string"
192
+ responses:
193
+ 200:
194
+ description: "successful operation"
195
+ schema:
196
+ type: "array"
197
+ items:
198
+ $ref: "#/definitions/AssessmentPersonalityTraitDichotomy"
199
+ /assessments/{assessment_id}/personality_traits/raw:
200
+ get:
201
+ tags:
202
+ - "Personality Traits"
203
+ summary: "Get personality traits for the assessment"
204
+ description: ""
205
+ operationId: "personality_traits_raw"
206
+ produces:
207
+ - "application/json"
208
+ parameters:
209
+ - name: "assessment_id"
210
+ in: "path"
211
+ required: true
212
+ type: "string"
213
+ - name: "image_pack"
214
+ in: "query"
215
+ required: false
216
+ type: "string"
217
+ default: "linear"
218
+ - name: "locale_key"
219
+ in: "query"
220
+ required: false
221
+ type: "string"
222
+ responses:
223
+ 200:
224
+ description: "successful operation"
225
+ schema:
226
+ type: "array"
227
+ items:
228
+ $ref: "#/definitions/AssessmentPersonalityTrait"
229
+ /assessments/{assessment_id}/personality_traits/top:
230
+ get:
231
+ tags:
232
+ - "Personality Traits"
233
+ summary: "Get the top personality trait for the assessment as a dichotomy"
234
+ description: "Only the top trait is returned however multiple traits are returned\
235
+ \ in the event of a tie."
236
+ operationId: "personality_traits_top"
237
+ produces:
238
+ - "application/json"
239
+ parameters:
240
+ - name: "assessment_id"
241
+ in: "path"
242
+ required: true
243
+ type: "string"
244
+ - name: "locale_key"
245
+ in: "query"
246
+ required: false
247
+ type: "string"
248
+ responses:
249
+ 200:
250
+ description: "successful operation"
251
+ schema:
252
+ type: "array"
253
+ items:
254
+ $ref: "#/definitions/AssessmentPersonalityTrait"
255
+ /assessments/{assessment_id}/personality_types:
256
+ get:
257
+ tags:
258
+ - "Personality Types"
259
+ summary: "Get the assessment results"
260
+ description: "This resource can be used to retrieve the results of an assessment\
261
+ \ that has been completed. If the assessment has not been completed you will\
262
+ \ get a 404 in response. The results contain two nodes. personality_blend\
263
+ \ will be populated if the top two personality types can be combined into\
264
+ \ a blend. personality_types will contain a list of all the personality types\
265
+ \ for the assessment and they will be sorted by score."
266
+ operationId: "personality_types"
267
+ produces:
268
+ - "application/json"
269
+ parameters:
270
+ - name: "assessment_id"
271
+ in: "path"
272
+ required: true
273
+ type: "string"
274
+ - name: "image_pack"
275
+ in: "query"
276
+ required: false
277
+ type: "string"
278
+ default: "flat"
279
+ - name: "locale_key"
280
+ in: "query"
281
+ required: false
282
+ type: "string"
283
+ responses:
284
+ 200:
285
+ description: "successful operation"
286
+ schema:
287
+ $ref: "#/definitions/AssessmentResults"
288
+ /assessments/{assessment_id}/personality_types/top:
289
+ get:
290
+ tags:
291
+ - "Personality Types"
292
+ summary: "Get the top personality type for an assessment"
293
+ description: "This resource can be used to retrieve the top personality type\
294
+ \ of an assessment that has been completed. If the assessment has not been\
295
+ \ completed you will get a 404 in response."
296
+ operationId: "top_personality_types"
297
+ produces:
298
+ - "application/json"
299
+ parameters:
300
+ - name: "assessment_id"
301
+ in: "path"
302
+ required: true
303
+ type: "string"
304
+ - name: "image_pack"
305
+ in: "query"
306
+ required: false
307
+ type: "string"
308
+ default: "flat"
309
+ - name: "locale_key"
310
+ in: "query"
311
+ required: false
312
+ type: "string"
313
+ responses:
314
+ 200:
315
+ description: "successful operation"
316
+ schema:
317
+ $ref: "#/definitions/AssessmentPersonalityType"
318
+ /assessments/{assessment_id}/personality_types/{id}/personality_traits:
319
+ get:
320
+ tags:
321
+ - "Personality Types"
322
+ summary: "Get personality traits for assessment and personality type"
323
+ description: ""
324
+ operationId: "personality_traits_by_personality_type"
325
+ produces:
326
+ - "application/json"
327
+ parameters:
328
+ - name: "assessment_id"
329
+ in: "path"
330
+ required: true
331
+ type: "string"
332
+ - name: "id"
333
+ in: "path"
334
+ required: true
335
+ type: "string"
336
+ - name: "locale_key"
337
+ in: "query"
338
+ required: false
339
+ type: "string"
340
+ responses:
341
+ 200:
342
+ description: "successful operation"
343
+ schema:
344
+ type: "array"
345
+ items:
346
+ $ref: "#/definitions/AssessmentPersonalityTrait"
347
+ /assessments/{assessment_id}/slides:
348
+ get:
349
+ tags:
350
+ - "Slides"
351
+ summary: "Get list of slides for an assessment"
352
+ description: "This method allows you to get a list of the slides for this assessment.\
353
+ \ It includes the images for each slide and the position that the slides should\
354
+ \ be presented to the user."
355
+ operationId: "list"
356
+ produces:
357
+ - "application/json"
358
+ parameters:
359
+ - name: "assessment_id"
360
+ in: "path"
361
+ required: true
362
+ type: "string"
363
+ - name: "complete"
364
+ in: "query"
365
+ required: false
366
+ type: "boolean"
367
+ - name: "locale_key"
368
+ in: "query"
369
+ required: false
370
+ type: "string"
371
+ responses:
372
+ 200:
373
+ description: "successful operation"
374
+ schema:
375
+ type: "array"
376
+ items:
377
+ $ref: "#/definitions/AssessmentSlide"
378
+ post:
379
+ tags:
380
+ - "Slides"
381
+ operationId: "bulkUpdatePost"
382
+ produces:
383
+ - "application/json"
384
+ parameters:
385
+ - name: "assessment_id"
386
+ in: "path"
387
+ required: true
388
+ type: "string"
389
+ - in: "body"
390
+ name: "body"
391
+ required: false
392
+ schema:
393
+ type: "array"
394
+ items:
395
+ $ref: "#/definitions/UpdateAssessmentSlide"
396
+ responses:
397
+ 200:
398
+ description: "successful operation"
399
+ schema:
400
+ type: "array"
401
+ items:
402
+ $ref: "#/definitions/AssessmentSlide"
403
+ headers: {}
404
+ put:
405
+ tags:
406
+ - "Slides"
407
+ summary: "Bulk insert the slides for an assessment"
408
+ description: "This method allows you to insert an assessment's slide responses\
409
+ \ in bulk. id is a required field. The only acceptable attributes that you\
410
+ \ can insert are response and time_taken. response should be a true for \"\
411
+ me\" or false for \"not me\". The time_taken should be the time it took for\
412
+ \ the user to answer the question in milliseconds."
413
+ operationId: "bulkUpdate"
414
+ produces:
415
+ - "application/json"
416
+ parameters:
417
+ - name: "assessment_id"
418
+ in: "path"
419
+ required: true
420
+ type: "string"
421
+ - in: "body"
422
+ name: "body"
423
+ required: true
424
+ schema:
425
+ type: "array"
426
+ items:
427
+ $ref: "#/definitions/UpdateAssessmentSlide"
428
+ responses:
429
+ 200:
430
+ description: "successful operation"
431
+ schema:
432
+ type: "array"
433
+ items:
434
+ $ref: "#/definitions/AssessmentSlide"
435
+ /assessments/{assessment_id}/slides/{slide_id}:
436
+ post:
437
+ tags:
438
+ - "Slides"
439
+ operationId: "updatePost"
440
+ produces:
441
+ - "application/json"
442
+ parameters:
443
+ - name: "assessment_id"
444
+ in: "path"
445
+ required: true
446
+ type: "string"
447
+ - name: "slide_id"
448
+ in: "path"
449
+ required: true
450
+ type: "string"
451
+ - in: "body"
452
+ name: "body"
453
+ required: false
454
+ schema:
455
+ $ref: "#/definitions/UpdateAssessmentSlide"
456
+ responses:
457
+ 200:
458
+ description: "successful operation"
459
+ schema:
460
+ $ref: "#/definitions/AssessmentSlide"
461
+ headers: {}
462
+ put:
463
+ tags:
464
+ - "Slides"
465
+ summary: "Update a slide for an assessment"
466
+ description: "Alternatively, you can insert one slide at a time. The only acceptable\
467
+ \ attributes that you can insert are response and time_taken. response should\
468
+ \ be a true for \"me\" or false for \"not me\". The time_taken should be the\
469
+ \ time it took for the user to answer the question in milliseconds."
470
+ operationId: "update"
471
+ produces:
472
+ - "application/json"
473
+ parameters:
474
+ - name: "assessment_id"
475
+ in: "path"
476
+ required: true
477
+ type: "string"
478
+ - name: "slide_id"
479
+ in: "path"
480
+ required: true
481
+ type: "string"
482
+ - in: "body"
483
+ name: "body"
484
+ required: true
485
+ schema:
486
+ $ref: "#/definitions/UpdateAssessmentSlide"
487
+ responses:
488
+ 200:
489
+ description: "successful operation"
490
+ schema:
491
+ $ref: "#/definitions/AssessmentSlide"
492
+ /assessments/{assessment_id}/tags:
493
+ post:
494
+ tags:
495
+ - "Tags"
496
+ summary: "Add tags to an assessment"
497
+ description: "Adds new tags to the assessment. No tags will be removed."
498
+ operationId: "add"
499
+ produces:
500
+ - "application/json"
501
+ parameters:
502
+ - name: "assessment_id"
503
+ in: "path"
504
+ required: true
505
+ type: "string"
506
+ - in: "body"
507
+ name: "body"
508
+ required: false
509
+ schema:
510
+ $ref: "#/definitions/AssessmentTags"
511
+ responses:
512
+ 200:
513
+ description: "successful operation"
514
+ schema:
515
+ $ref: "#/definitions/Assessment"
516
+ put:
517
+ tags:
518
+ - "Tags"
519
+ summary: "Update the tags for an assessment"
520
+ description: "Adds or removes tags from the assessment as necessary to match\
521
+ \ the tag list provided."
522
+ operationId: "update"
523
+ produces:
524
+ - "application/json"
525
+ parameters:
526
+ - name: "assessment_id"
527
+ in: "path"
528
+ required: true
529
+ type: "string"
530
+ - in: "body"
531
+ name: "body"
532
+ required: false
533
+ schema:
534
+ $ref: "#/definitions/AssessmentTags"
535
+ responses:
536
+ 200:
537
+ description: "successful operation"
538
+ schema:
539
+ $ref: "#/definitions/Assessment"
540
+ delete:
541
+ tags:
542
+ - "Tags"
543
+ summary: "Delete tags from an assessment"
544
+ description: "Removes existing tags from the assessment. No tags will be added."
545
+ operationId: "delete"
546
+ produces:
547
+ - "application/json"
548
+ parameters:
549
+ - name: "assessment_id"
550
+ in: "path"
551
+ required: true
552
+ type: "string"
553
+ - in: "body"
554
+ name: "body"
555
+ required: false
556
+ schema:
557
+ $ref: "#/definitions/AssessmentTags"
558
+ responses:
559
+ 200:
560
+ description: "successful operation"
561
+ schema:
562
+ $ref: "#/definitions/Assessment"
563
+ /assessments/{id}:
564
+ get:
565
+ tags:
566
+ - "Assessments"
567
+ summary: "Get assessment by ID"
568
+ description: "This method allows you to get an assessment and/or slides, blend,\
569
+ \ types, traits, or career matches by its unique ID."
570
+ operationId: "get"
571
+ produces:
572
+ - "application/json"
573
+ parameters:
574
+ - name: "id"
575
+ in: "path"
576
+ required: true
577
+ type: "string"
578
+ - name: "data"
579
+ in: "query"
580
+ description: "CSV of data to be returned (slides, personality_blend, personality_types,\
581
+ \ personality_traits, career_matches)"
582
+ required: false
583
+ type: "string"
584
+ default: ""
585
+ - name: "image_pack"
586
+ in: "query"
587
+ description: "Default: linear"
588
+ required: false
589
+ type: "string"
590
+ default: "linear"
591
+ - name: "number_of_matches"
592
+ in: "query"
593
+ required: false
594
+ type: "integer"
595
+ format: "int32"
596
+ - name: "experience_levels"
597
+ in: "query"
598
+ required: false
599
+ type: "string"
600
+ - name: "search"
601
+ in: "query"
602
+ required: false
603
+ type: "string"
604
+ - name: "sort"
605
+ in: "query"
606
+ required: false
607
+ type: "string"
608
+ default: "score"
609
+ - name: "paged"
610
+ in: "query"
611
+ required: false
612
+ type: "boolean"
613
+ default: false
614
+ - name: "page"
615
+ in: "query"
616
+ required: false
617
+ type: "integer"
618
+ default: 1
619
+ format: "int32"
620
+ - name: "careers_per_page"
621
+ in: "query"
622
+ required: false
623
+ type: "integer"
624
+ default: 25
625
+ format: "int32"
626
+ - name: "locale_key"
627
+ in: "query"
628
+ required: false
629
+ type: "string"
630
+ responses:
631
+ 200:
632
+ description: "successful operation"
633
+ schema:
634
+ $ref: "#/definitions/AssessmentResponse"
635
+ /assessments/{id}/matches/assessments:
636
+ get:
637
+ tags:
638
+ - "Assessments"
639
+ summary: "Get matching assessments"
640
+ description: "This method allows you to get assessments IDs that match the given\
641
+ \ assessment ID."
642
+ operationId: "matchAssessments"
643
+ produces:
644
+ - "application/json"
645
+ parameters:
646
+ - name: "id"
647
+ in: "path"
648
+ required: true
649
+ type: "string"
650
+ - name: "number_of_matches"
651
+ in: "query"
652
+ required: false
653
+ type: "integer"
654
+ default: 10
655
+ format: "int32"
656
+ responses:
657
+ 200:
658
+ description: "successful operation"
659
+ schema:
660
+ type: "array"
661
+ items:
662
+ $ref: "#/definitions/AssessmentMatchScore"
663
+ /assessments/{id}/status:
664
+ get:
665
+ tags:
666
+ - "Assessments"
667
+ summary: "Get the slides or results for an assessment depending on its status"
668
+ description: "This method allows you to get the slides for incomplete assessments\
669
+ \ and the results for completed assessments."
670
+ operationId: "status"
671
+ produces:
672
+ - "application/json"
673
+ parameters:
674
+ - name: "id"
675
+ in: "path"
676
+ required: true
677
+ type: "string"
678
+ - name: "image_pack"
679
+ in: "query"
680
+ required: false
681
+ type: "string"
682
+ default: "linear"
683
+ - name: "locale_key"
684
+ in: "query"
685
+ required: false
686
+ type: "string"
687
+ responses:
688
+ 200:
689
+ description: "successful operation"
690
+ schema:
691
+ $ref: "#/definitions/AssessmentStatus"
692
+ /careers:
693
+ get:
694
+ tags:
695
+ - "Careers"
696
+ summary: "List all careers"
697
+ description: ""
698
+ operationId: "find"
699
+ produces:
700
+ - "application/json"
701
+ parameters:
702
+ - name: "page"
703
+ in: "query"
704
+ required: false
705
+ type: "integer"
706
+ default: 1
707
+ format: "int32"
708
+ - name: "careers_per_page"
709
+ in: "query"
710
+ required: false
711
+ type: "integer"
712
+ default: 25
713
+ format: "int32"
714
+ - name: "paged"
715
+ in: "query"
716
+ required: false
717
+ type: "boolean"
718
+ default: true
719
+ - name: "list_page"
720
+ in: "query"
721
+ required: false
722
+ type: "boolean"
723
+ default: false
724
+ - name: "experience_levels"
725
+ in: "query"
726
+ required: false
727
+ type: "string"
728
+ - name: "active"
729
+ in: "query"
730
+ required: false
731
+ type: "boolean"
732
+ default: true
733
+ - name: "modified_after"
734
+ in: "query"
735
+ required: false
736
+ type: "integer"
737
+ format: "int64"
738
+ - name: "locale_key"
739
+ in: "query"
740
+ required: false
741
+ type: "string"
742
+ responses:
743
+ 200:
744
+ description: "successful operation"
745
+ schema:
746
+ type: "array"
747
+ items:
748
+ $ref: "#/definitions/Career"
749
+ /careers/{career_id}:
750
+ get:
751
+ tags:
752
+ - "Careers"
753
+ summary: "Get a career by ID"
754
+ description: ""
755
+ operationId: "get"
756
+ produces:
757
+ - "application/json"
758
+ parameters:
759
+ - name: "career_id"
760
+ in: "path"
761
+ required: true
762
+ type: "string"
763
+ - name: "locale_key"
764
+ in: "query"
765
+ required: false
766
+ type: "string"
767
+ responses:
768
+ 200:
769
+ description: "successful operation"
770
+ schema:
771
+ $ref: "#/definitions/Career"
772
+ /decks:
773
+ get:
774
+ tags:
775
+ - "Decks"
776
+ summary: "Get a list of decks"
777
+ description: "This method allows you to get a list of all decks ordered by name. "
778
+ operationId: "list"
779
+ produces:
780
+ - "application/json"
781
+ parameters:
782
+ - name: "image_pack"
783
+ in: "query"
784
+ required: false
785
+ type: "string"
786
+ default: "flat"
787
+ - name: "validated"
788
+ in: "query"
789
+ required: false
790
+ type: "boolean"
791
+ - name: "locale_key"
792
+ in: "query"
793
+ required: false
794
+ type: "string"
795
+ - name: "data"
796
+ in: "query"
797
+ description: "CSV of data to be returned (badges, personality_traits, personality_types,\
798
+ \ types_with_traits) Default: badges"
799
+ required: false
800
+ type: "string"
801
+ default: "badges"
802
+ responses:
803
+ 200:
804
+ description: "successful operation"
805
+ schema:
806
+ type: "array"
807
+ items:
808
+ $ref: "#/definitions/Deck"
809
+ /decks/{deck_id}:
810
+ get:
811
+ tags:
812
+ - "Decks"
813
+ summary: "Get a deck"
814
+ description: "This method allows you to get a deck."
815
+ operationId: "getDeck"
816
+ produces:
817
+ - "application/json"
818
+ parameters:
819
+ - name: "deck_id"
820
+ in: "path"
821
+ required: true
822
+ type: "string"
823
+ - name: "image_pack"
824
+ in: "query"
825
+ required: false
826
+ type: "string"
827
+ default: "flat"
828
+ - name: "locale_key"
829
+ in: "query"
830
+ required: false
831
+ type: "string"
832
+ - name: "data"
833
+ in: "query"
834
+ description: "CSV of data to be returned (badges, personality_traits, personality_types,\
835
+ \ types_with_traits) Default: badges"
836
+ required: false
837
+ type: "string"
838
+ default: "badges"
839
+ responses:
840
+ 200:
841
+ description: "successful operation"
842
+ schema:
843
+ $ref: "#/definitions/Deck"
844
+ /decks/{deck_id}/personality_types:
845
+ get:
846
+ tags:
847
+ - "Decks"
848
+ summary: "Get a list of personality types"
849
+ description: "This method allows you to get a list of all personality types\
850
+ \ by deck ordered by name."
851
+ operationId: "personality_types"
852
+ produces:
853
+ - "application/json"
854
+ parameters:
855
+ - name: "deck_id"
856
+ in: "path"
857
+ required: true
858
+ type: "string"
859
+ - name: "image_pack"
860
+ in: "query"
861
+ required: false
862
+ type: "string"
863
+ - name: "localeKey"
864
+ in: "query"
865
+ required: false
866
+ type: "string"
867
+ responses:
868
+ 200:
869
+ description: "successful operation"
870
+ schema:
871
+ type: "array"
872
+ items:
873
+ $ref: "#/definitions/PersonalityType"
874
+ /environments/personality_types/{personality_type_id}:
875
+ get:
876
+ tags:
877
+ - "Environments"
878
+ summary: "Get an environment for a personality type"
879
+ description: "This method allows you to get an environment for a personality\
880
+ \ type."
881
+ operationId: "list"
882
+ produces:
883
+ - "application/json"
884
+ parameters:
885
+ - name: "personality_type_id"
886
+ in: "path"
887
+ required: true
888
+ type: "string"
889
+ - name: "locale_key"
890
+ in: "query"
891
+ required: false
892
+ type: "string"
893
+ responses:
894
+ 200:
895
+ description: "successful operation"
896
+ schema:
897
+ type: "array"
898
+ items:
899
+ $ref: "#/definitions/Environment"
900
+ /famous_people/personality_types/{personality_type_id}:
901
+ get:
902
+ tags:
903
+ - "Famous People"
904
+ summary: "Get famous people for a personality type"
905
+ description: "This method allows you to get famous people for a personality\
906
+ \ type."
907
+ operationId: "list"
908
+ produces:
909
+ - "application/json"
910
+ parameters:
911
+ - name: "personality_type_id"
912
+ in: "path"
913
+ required: true
914
+ type: "string"
915
+ responses:
916
+ 200:
917
+ description: "successful operation"
918
+ schema:
919
+ type: "array"
920
+ items:
921
+ $ref: "#/definitions/FamousPerson"
922
+ /locales:
923
+ get:
924
+ tags:
925
+ - "Locales"
926
+ summary: "List all the Locales"
927
+ description: ""
928
+ operationId: "listLocales"
929
+ produces:
930
+ - "application/json"
931
+ parameters: []
932
+ responses:
933
+ 200:
934
+ description: "successful operation"
935
+ schema:
936
+ type: "array"
937
+ items:
938
+ $ref: "#/definitions/I18nLocale"
939
+ /locales/{key_or_id}:
940
+ get:
941
+ tags:
942
+ - "Locales"
943
+ summary: "Get a locale by it's key or ID"
944
+ description: ""
945
+ operationId: "findLocale"
946
+ produces:
947
+ - "application/json"
948
+ parameters:
949
+ - name: "key_or_id"
950
+ in: "path"
951
+ required: true
952
+ type: "string"
953
+ responses:
954
+ 200:
955
+ description: "successful operation"
956
+ schema:
957
+ $ref: "#/definitions/I18nLocale"
958
+ /majors:
959
+ get:
960
+ tags:
961
+ - "Majors"
962
+ summary: "List all majors"
963
+ description: ""
964
+ operationId: "find"
965
+ produces:
966
+ - "application/json"
967
+ parameters:
968
+ - name: "page"
969
+ in: "query"
970
+ required: false
971
+ type: "integer"
972
+ default: 1
973
+ format: "int32"
974
+ - name: "majors_per_page"
975
+ in: "query"
976
+ required: false
977
+ type: "integer"
978
+ default: 25
979
+ format: "int32"
980
+ - name: "paged"
981
+ in: "query"
982
+ required: false
983
+ type: "boolean"
984
+ default: true
985
+ - name: "list_page"
986
+ in: "query"
987
+ required: false
988
+ type: "boolean"
989
+ default: true
990
+ - name: "active"
991
+ in: "query"
992
+ required: false
993
+ type: "boolean"
994
+ default: true
995
+ - name: "modified_after"
996
+ in: "query"
997
+ required: false
998
+ type: "integer"
999
+ format: "int64"
1000
+ - name: "locale_key"
1001
+ in: "query"
1002
+ required: false
1003
+ type: "string"
1004
+ responses:
1005
+ 200:
1006
+ description: "successful operation"
1007
+ schema:
1008
+ type: "array"
1009
+ items:
1010
+ $ref: "#/definitions/Major"
1011
+ /majors/{major_id}:
1012
+ get:
1013
+ tags:
1014
+ - "Majors"
1015
+ summary: "Get a major by ID"
1016
+ description: ""
1017
+ operationId: "get"
1018
+ produces:
1019
+ - "application/json"
1020
+ parameters:
1021
+ - name: "major_id"
1022
+ in: "path"
1023
+ required: true
1024
+ type: "string"
1025
+ - name: "locale_key"
1026
+ in: "query"
1027
+ required: false
1028
+ type: "string"
1029
+ responses:
1030
+ 200:
1031
+ description: "successful operation"
1032
+ schema:
1033
+ $ref: "#/definitions/Major"
1034
+ /profiles/{profile_id}:
1035
+ get:
1036
+ tags:
1037
+ - "Profiles"
1038
+ summary: "get a profile by id"
1039
+ description: ""
1040
+ parameters:
1041
+ - name: "profile_id"
1042
+ in: "path"
1043
+ required: true
1044
+ type: "string"
1045
+ produces:
1046
+ - "application/json"
1047
+ responses:
1048
+ 200:
1049
+ description: ok
1050
+ schema:
1051
+ $ref: "#/definitions/Profile"
1052
+ delete:
1053
+ tags:
1054
+ - "Profiles"
1055
+ summary: "delete a profile by id"
1056
+ description: ""
1057
+ parameters:
1058
+ - name: "profile_id"
1059
+ in: "path"
1060
+ required: true
1061
+ type: "string"
1062
+ produces:
1063
+ - "application/json"
1064
+ responses:
1065
+ 200:
1066
+ description: ok
1067
+
1068
+ /profiles:
1069
+ get:
1070
+ tags:
1071
+ - "Profiles"
1072
+ summary: "Get a list of, or search profiles using different attributes"
1073
+ description: "Listing or searching profiles"
1074
+ parameters:
1075
+ - name: "query"
1076
+ in: "query"
1077
+ required: false
1078
+ type: "string"
1079
+ - name: "order_columns"
1080
+ in: "query"
1081
+ required: false
1082
+ type: "array"
1083
+ items:
1084
+ type: "string"
1085
+ - name: "ordering"
1086
+ in: "query"
1087
+ required: false
1088
+ type: "string"
1089
+ enum: [
1090
+ "ASC",
1091
+ "DESC"]
1092
+ - name: "paging_cursor"
1093
+ in: "query"
1094
+ required: false
1095
+ type: "string"
1096
+ - name: "per_page"
1097
+ in: "query"
1098
+ required: false
1099
+ type: "integer"
1100
+ default: 50
1101
+ produces:
1102
+ - "application/json"
1103
+ responses:
1104
+ 200:
1105
+ description: ok
1106
+ headers:
1107
+ Link:
1108
+ type: "string"
1109
+ description: "Contains RFC 5988 compliant link header with urls for paging results. Provided urls for first, next, prev, and last.\n Example:\n
1110
+ <https://api.traitify.com/v1/profiles?per_page=30&paging_cursor=V2hhdGV2ZXI>; rel=\"next\",
1111
+ <https://api.traitify.com/v1/profiles?per_page=30&paging_cursor=SGVsbG8>; rel=\"prev\""
1112
+ schema:
1113
+ type: "array"
1114
+ items:
1115
+ $ref: "#/definitions/Profile"
1116
+ /analytics/decks/{deck_id}/assessments:
1117
+ get:
1118
+ tags:
1119
+ - "Analytics"
1120
+ summary: ""
1121
+ description: ""
1122
+ produces:
1123
+ - "application/json"
1124
+ parameters:
1125
+ - name: "deck_id"
1126
+ in: "path"
1127
+ required: true
1128
+ type: "string"
1129
+ description: "The deck_id that you want to analyze assessments of"
1130
+ - name: "stats"
1131
+ in: "query"
1132
+ required: false
1133
+ description: "a list of statistics to return TODO: Describe stats"
1134
+ type: "array"
1135
+ items:
1136
+ type: "string"
1137
+ enum: [
1138
+ "created_count",
1139
+ "started_count",
1140
+ "completed_count"
1141
+ ]
1142
+ - name: "order_by"
1143
+ in: "query"
1144
+ type: "string"
1145
+ enum: [
1146
+ "created_count",
1147
+ "started_count",
1148
+ "completed_count"
1149
+ ]
1150
+ default: "completed_count"
1151
+ - name: "ordering"
1152
+ in: "query"
1153
+ required: false
1154
+ type: "string"
1155
+ enum: [
1156
+ "ASC",
1157
+ "DESC"]
1158
+ default: "DESC"
1159
+ responses:
1160
+ 200:
1161
+ description: ok
1162
+ schema:
1163
+ type: "array"
1164
+ items:
1165
+ $ref: "#/definitions/AssessmentStatsResponse"
1166
+ /analytics/decks/{deck_id}/personality_traits:
1167
+ get:
1168
+ tags:
1169
+ - "Analytics"
1170
+ summary: "Retrieve various aggregate statistics about personality traits"
1171
+ description: "Retrieve trait statistics"
1172
+ parameters:
1173
+ - name: "deck_id"
1174
+ in: "path"
1175
+ required: true
1176
+ type: "string"
1177
+ description: "The deck_id that you want to analyze assessments of"
1178
+ - name: "stats"
1179
+ in: "query"
1180
+ required: false
1181
+ description: "a list of statistics to return TODO: Describe stats"
1182
+ type: "array"
1183
+ items:
1184
+ type: "string"
1185
+ enum: [
1186
+ "avg",
1187
+ "min",
1188
+ "max",
1189
+ "stdev",
1190
+ "iqr",
1191
+ "outlier",
1192
+ "sum",
1193
+ "quartiles"
1194
+ ]
1195
+ - name: "personality_trait_ids"
1196
+ in: "query"
1197
+ required: false
1198
+ type: "array"
1199
+ items:
1200
+ type: "string"
1201
+ description: "Return only provided traits. Defaults to returning all traits"
1202
+ - name: "profile_ids"
1203
+ in: "query"
1204
+ required: false
1205
+ type: "array"
1206
+ items:
1207
+ type: "string"
1208
+ - name: "order_by"
1209
+ type: "string"
1210
+ in: "query"
1211
+ enum: [
1212
+ "avg",
1213
+ "min",
1214
+ "max",
1215
+ "stdev",
1216
+ "iqr",
1217
+ "outlier",
1218
+ "sum",
1219
+ "quartiles",
1220
+ "top_count"
1221
+ ]
1222
+ default: "avg"
1223
+ - name: "ordering"
1224
+ in: "query"
1225
+ required: false
1226
+ type: "string"
1227
+ enum: [
1228
+ "ASC",
1229
+ "DESC"]
1230
+ default: "DESC"
1231
+ - name: "locale_key"
1232
+ in: "query"
1233
+ required: false
1234
+ type: "string"
1235
+ produces:
1236
+ - "application/json"
1237
+ responses:
1238
+ 200:
1239
+ description: ok
1240
+ schema:
1241
+ type: "array"
1242
+ items:
1243
+ $ref: "#/definitions/AssessmentStatsResponse"
1244
+ /analytics/decks/{deck_id}/personality_types:
1245
+ get:
1246
+ tags:
1247
+ - "Analytics"
1248
+ summary: "Retrieve various statistics about personality types"
1249
+ description: "Retrieve type statistics"
1250
+ parameters:
1251
+ - name: "deck_id"
1252
+ in: "path"
1253
+ required: true
1254
+ type: "string"
1255
+ description: "The deck_id that you want to analyze assessments of"
1256
+ - name: "stats"
1257
+ in: "query"
1258
+ required: false
1259
+ description: "a list of statistics to return"
1260
+ type: "array"
1261
+ items:
1262
+ type: "string"
1263
+ enum: [
1264
+ "avg",
1265
+ "min",
1266
+ "max",
1267
+ "stdev",
1268
+ "iqr",
1269
+ "outlier",
1270
+ "sum",
1271
+ "quartiles",
1272
+ "top_count"
1273
+ ]
1274
+ - name: "personality_type_ids"
1275
+ in: "query"
1276
+ required: false
1277
+ type: "array"
1278
+ items:
1279
+ type: "string"
1280
+ description: "Return only provided types. Defaults to returning all types"
1281
+ - name: "profile_ids"
1282
+ in: "query"
1283
+ required: false
1284
+ type: "array"
1285
+ items:
1286
+ type: "string"
1287
+ - name: "order_by"
1288
+ type: "string"
1289
+ in: "query"
1290
+ enum: [
1291
+ "avg",
1292
+ "min",
1293
+ "max",
1294
+ "stdev",
1295
+ "iqr",
1296
+ "outlier",
1297
+ "sum",
1298
+ "quartiles",
1299
+ "top_count"
1300
+ ]
1301
+ - name: "ordering"
1302
+ in: "query"
1303
+ required: false
1304
+ type: "string"
1305
+ enum: [
1306
+ "ASC",
1307
+ "DESC"]
1308
+ - name: "image_pack"
1309
+ in: "query"
1310
+ required: false
1311
+ type: "string"
1312
+ default: "flat"
1313
+ - name: "locale_key"
1314
+ in: "query"
1315
+ required: false
1316
+ type: "string"
1317
+ produces:
1318
+ - "application/json"
1319
+ responses:
1320
+ 200:
1321
+ description: ok
1322
+ schema:
1323
+ type: "array"
1324
+ items:
1325
+ $ref: "#/definitions/AssessmentStatsResponse"
1326
+ /profiles/{profile_id}/matches/profiles/{to_profile_id}:
1327
+ get:
1328
+ tags:
1329
+ - "Profiles"
1330
+ summary: "Get the match score for a profile to another profile"
1331
+ description: ""
1332
+ operationId: "getProfileToProfileMatchScore"
1333
+ produces:
1334
+ - "application/json"
1335
+ parameters:
1336
+ - name: "profile_id"
1337
+ in: "path"
1338
+ required: true
1339
+ type: "string"
1340
+ - name: "to_profile_id"
1341
+ in: "path"
1342
+ required: true
1343
+ type: "string"
1344
+ - name: "deck_id"
1345
+ in: "query"
1346
+ required: true
1347
+ type: "string"
1348
+ responses:
1349
+ 200:
1350
+ description: "successful operation"
1351
+ schema:
1352
+ $ref: "#/definitions/ScoredProfile"