definition:
backend/include/survey.hstruct question
serialization:
backend/src/serialisers.c: serialise_question()
corresponding frontend module:
front/src/Question.js
Format of an question row:
<uid>:<question_text>:<question_html>:<type>:<flags>:<default_value>:<min_value>:<max_value>:<decimal_places>:<num_choices>:<choices>:<unit>Location: surveys/<surveyID>/current (can be symlinked)
| field | data type | json | notes |
|---|---|---|---|
| uid | char[] | string | question id |
| question_text | char[] | string | question label |
| question_html | char[] | string | question description (html tags allowed) |
| type | char[] | string | question type |
| flags | int | number | |
| default_value | char[] | string | |
| min_value | long long | number | |
| max_value | long long | number | |
| decimal_places | int | number | |
| num_choices | int | number | |
| choices | char[] | string | comma separated list |
| unit | char[] | string |
definition:
backend/include/survey.hstruct answer
serialization:
backend/src/serialisers.c: serialise_answer()
corresponding frontend module:
front/src/Answer.js
request payload format (serialisation mode: public):
<uid>:<text>:<value>:<lat>:<lon>:<time_begin>:<time_end>:<time_zone_delta>:<dst_delta>session storageformat (serialisation mode: private):
<uid>:<text>:<value>:<lat>:<lon>:<time_begin>:<time_end>:<time_zone_delta>:<dst_delta>:<unit>:<flag>:<stored>Location: sessions/<session-prefix>/sessionID
| field | API access | data type | json | notes | |
|---|---|---|---|---|---|
| uid | read/write | answer value | char[] | string | question id |
| type | - | control field | int | - | question type |
| text | read/write | answer value | char[] | string | |
| value | read/write | answer value | long long | number | |
| lat | read/write | answer value | long long | number | |
| lon | read/write | answer value | long long | number | |
| time_begin | read/write | answer value | long long | number | |
| time_end | read/write | answer value | long long | number | |
| time_zone_delta | read/write | answer value | int | number | |
| dst_delta | read/write | answer value | int | number | |
| unit | read/write | answer value | char[] | string | unit for numeric types, see below |
| flag | - | control field | int | - | bit control flag, see below |
| stored | - | control field | long long | - | UNIX timestamp, time of answer storage, see below |
unit
- Time based question times: Use
secondsonly. The returned answer unit will always be a duration in seconds since midnight (where midnight == 0) - All other numeric qquestion types are free to define a human friendly unit (displayed on the frontend form) the unit will be included into the returned answer
flag
- Currently only supported flags are
answered(0) ordeleted(1)
stored
- timestamp is set on adding, deleting or updating an answer