Example of how to create a story using the 'Post a Single-Contact Story API'
This document contains an example of how to use the Post a Zero-or-Multiple-Contacts Story API documentation to create a story
A story that tags only 1 beneficiary (contact)
Step | Postman call | Postman response | Equivalent content or screenshot of the page in the front-end |
---|---|---|---|
| localhost:3000/api/v2/users/sign_in?user[email]=souleditor@makerble.com&user[password]=123456 | {
"user_id": 190,
"email": "souleditor@makerble.com",
"authentication_token": "gFbM/7XHoIdN6SaqpllXODlQKNQifqZk9Q0DPD6B--bTtQ6yKOJycc4GFs--rxPR1nIWIn0LuCguPtxmmg=="
}
|
|
2. Get projects: because every story must be created within a project, you must get the projects before you can create your first story. (You do not need to do this each time you create a story) |
|
|
|
3. Get project's story categories: because every story is created using a Story Category, you must get the Story Categories associated with the project that the story will belong to before you create your first story. (You do not need to do this each time you create a story) |
|
|
|
4. Get story categories: because if getting the project’s story categories does not tell you the metrics and fields (i.e. survey questions) that are within the story categories themselves, you will need to get the survey questions by getting the Story Category before you create your first story. (You do not need to do this each time you create a story) | GET localhost:3000/api/v2/story_categories/841 | {
"id": 841,
"name": "Example Survey",
"color": "#f16e20",
"updated_at": "2022-05-24T09:33:38.022+01:00",
"created_at": "2022-05-24T09:33:38.022+01:00",
"is_stopped": false,
"is_default": false,
"description": "",
"intro_message": "",
"current_fields": [
{
"id": 14397,
"field_id": 177,
"field_name": "Location",
"field_class_name": "CustomField",
"priority": 3,
"is_mandatory": false,
"display_info": "mouseover",
"document_category_id": null
},
{
"id": 14403,
"field_id": 577,
"field_name": "aa test indicator",
"field_class_name": "Indicator",
"priority": 9,
"is_mandatory": false,
"display_info": "mouseover",
"document_category_id": null,
"outcome_id": 528,
"indicator_type": "scale"
},
{
"id": 14404,
"field_id": 578,
"field_name": "testing 3027",
"field_class_name": "Indicator",
"priority": 10,
"is_mandatory": false,
"display_info": "mouseover",
"document_category_id": null,
"outcome_id": 528,
"indicator_type": "scale"
},
{
"id": 14405,
"field_id": 363,
"field_name": "How long do you think it takes to fly to the sun?",
"field_class_name": "Indicator",
"priority": 11,
"is_mandatory": false,
"display_info": "mouseover",
"document_category_id": null,
"outcome_id": 224,
"indicator_type": "value"
},
{
"id": 14406,
"field_id": 364,
"field_name": "Are you happy?",
"field_class_name": "Indicator",
"priority": 12,
"is_mandatory": false,
"display_info": "mouseover",
"document_category_id": null,
"outcome_id": 224,
"indicator_type": "binary"
},
{
"id": 14407,
"field_id": 8,
"field_name": "# and % children engaged in under-age or hazardous labour",
"field_class_name": "Indicator",
"priority": 13,
"is_mandatory": false,
"display_info": "mouseover",
"document_category_id": null,
"outcome_id": 2,
"indicator_type": "binary"
},
{
"id": 14408,
"field_id": 276,
"field_name": "AA Attendance",
"field_class_name": "Change",
"priority": 14,
"is_mandatory": false,
"display_info": "mouseover",
"document_category_id": null,
"change_type": "participation"
},
{
"id": 14409,
"field_id": 274,
"field_name": "A* attendance",
"field_class_name": "Change",
"priority": 15,
"is_mandatory": false,
"display_info": "mouseover",
"document_category_id": null,
"change_type": "activity"
},
{
"id": 14410,
"field_id": 260,
"field_name": "ActivityIndicatorTest1",
"field_class_name": "Change",
"priority": 16,
"is_mandatory": false,
"display_info": "mouseover",
"document_category_id": null,
"change_type": "activity"
},
{
"id": 14411,
"field_id": 455,
"field_name": "Number of times that the child goes playing outside all by themselves per week",
"field_class_name": "Indicator",
"priority": 17,
"is_mandatory": false,
"display_info": "mouseover",
"document_category_id": null,
"outcome_id": 271,
"indicator_type": "value"
},
{
"id": 14412,
"field_id": 4,
"field_name": "Date founded",
"field_class_name": "CustomField",
"priority": 18,
"is_mandatory": false,
"display_info": "mouseover",
"document_category_id": null
},
{
"id": 14413,
"field_id": 190,
"field_name": "email",
"field_class_name": "CustomField",
"priority": 19,
"is_mandatory": false,
"display_info": "mouseover",
"document_category_id": null
},
{
"id": 14414,
"field_id": 324,
"field_name": "Ideas suggested by the participant",
"field_class_name": "CustomField",
"priority": 20,
"is_mandatory": false,
"display_info": "mouseover",
"document_category_id": null
},
{
"id": 14415,
"field_id": 350,
"field_name": "test attachment 1",
"field_class_name": "CustomField",
"priority": 0,
"is_mandatory": false,
"display_info": "mouseover",
"document_category_id": null
},
{
"id": 14416,
"field_id": 351,
"field_name": "test attachment 2",
"field_class_name": "CustomField",
"priority": 1,
"is_mandatory": false,
"display_info": "mouseover",
"document_category_id": null
},
{
"id": 14417,
"field_id": 352,
"field_name": "test date 2",
"field_class_name": "CustomField",
"priority": 2,
"is_mandatory": false,
"display_info": "mouseover",
"document_category_id": null
},
{
"id": 14418,
"field_id": 353,
"field_name": "test time. 1",
"field_class_name": "CustomField",
"priority": 3,
"is_mandatory": false,
"display_info": "mouseover",
"document_category_id": null
},
{
"id": 14419,
"field_id": 354,
"field_name": "test time 2",
"field_class_name": "CustomField",
"priority": 4,
"is_mandatory": false,
"display_info": "mouseover",
"document_category_id": null
}
],
"scale_indicator_choices": [
{
"id": 354,
"indicator_id": 577,
"choice": "single_choice",
"choice_value": ""
},
{
"id": 355,
"indicator_id": 578,
"choice": "single_choice",
"choice_value": ""
}
]
}
|
|
5. Get metrics? Get fields?
|
|
|
|
6. Get project beneficiaries: because if you are creating a story about a beneficiary, you need to know which beneficiaries are in the project that the story belongs to. (You do not need to do this each time you create a story) |
|
|
|
7. Post story | localhost:3000/api/v2/stories {“X-User-Token”: b7c+D5o0joNRXMVNycN696yJZkuWshy4Zw66qWSJ--tT63Ev/FYFl00rCr--WomZk6tiLoXtapKgB/EtZA==,
===================================== One Participant =====================================
body parameters {
"story": {
"story_group": "change_created",
"story_format": "old",
"project_id": "572",
"story_category_id": "841",
"source_of_story": "android_mobile_app",
"text": "case test",
"created_at": "2022-05-24",
"story_changes_attributes": {
"45048d65": {
"change_id": "276",
"number": "5"
},
"05d83e67": {
"change_id": "274",
"number": "4"
},
"0509f592": {
"change_id": "260",
"number": "6"
}
}
},
"beneficiaries": ["160498"],
"case_ids": ["96"],
"custom_fields": {
"352": "1991-02-21",
"353": "11:30",
"177": "Lunawada",
"354": "11:45",
"4": "2022-05-24",
"190": "ajay@gmail.com",
"324": "Hello Everyone"
},
"story_indicator_beneficiaries": {
"78b138d1": {
"indicator_id": "577",
"indicator_type": "scale",
"outcome_id": "528",
"sub_ratio_id": ["927"]
},
"45ebc5de": {
"indicator_id": "578",
"indicator_type": "scale",
"outcome_id": "528",
"sub_ratio_id": ["930"]
},
"18c5bdb9": {
"indicator_id": "363",
"indicator_type": "value",
"outcome_id": "224",
"number": "3"
},
"b1a328d1": {
"indicator_id": "364",
"indicator_type": "binary",
"outcome_id": "224",
"binray_indicator_value": "on"
},
"47e3dad5": {
"indicator_id": "8",
"indicator_type": "binary",
"outcome_id": "2",
"binray_indicator_value": "on"
},
"8f0e789b": {
"indicator_id": "455",
"indicator_type": "value",
"outcome_id": "271",
"number": "7"
}
}
}
|
===================================== One Participant ===================================== postman response | One Participant Story Created ScreenShot |
Troubleshooting
A note on indicator formatting