diff options
| author | 2020-12-07 17:34:19 +0000 | |
|---|---|---|
| committer | 2020-12-07 17:34:19 +0000 | |
| commit | cbd102692a20c62fba42887a7e5310807f868a9a (patch) | |
| tree | 5d84395279cdd6170c3e20ba8b1a421c804d9a81 | |
| parent | Merge pull request #13 from python-discord/ks123/forms-routes (diff) | |
| parent | Update hyperlinks (diff) | |
Merge pull request #16 from python-discord/add-form-response-schema
| -rw-r--r-- | SCHEMA.md | 32 | 
1 files changed, 30 insertions, 2 deletions
| @@ -3,11 +3,14 @@  Since MongoDB has no set schema, we document it here to document what our objects should look like. If you add new properties or remove them from objects **make sure to update them here**.  In this document: -- [Form structure](#form-structure) +- [Form](#form)      - [Form features](#form-features)      - [Form question](#form-question) +- [Form response](#form-response) +    - [User details object](#user-details-object) +    - [Anti-spam object](#anti-spam-object) -## Form structure +## Form  | Field       | Type                                     | Description                                                                               | Example                     |  | ----------- | ---------------------------------------- | ----------------------------------------------------------------------------------------- | --------------------------- | @@ -120,3 +123,28 @@ Textareas require no additional configuration.      "text": "This section will quiz you on A, B and C"  }  ``` + +## Form response + +| Field      | Type                                                 | Description                                                                 | +| ---------- | ---------------------------------------------------- | --------------------------------------------------------------------------- | +| `_id`/`id` | MongoDB ObjectID                                     | Random identifier used for the response                                     | +| `user`     | Optional [user details object](#user-details-object) | An object describing the user that submitted if the form is not anonymous   | +| `antispam` | Optional [anti spam object](#anti-spam-object)       | An object containing information about the anti-spam on the form submission | +| `response` | Object                                               | Object containing question IDs mapping to the users answer                  | +| `form_id`  | String                                               | ID of the form that the user is submitting to                               | + +### User details object + +The user details contains the information returned by Discord alongside an `admin` boolean key representing that the user has admin privileges. The information returned from Discord can be found in the [Discord Developer portal](https://discord.com/developers/docs/resources/user#user-object). + +### Anti-spam object + +The anti-spam object contains information about the source of the form submission. + +| Field             | Type    | Description                                     | +| ----------------- | ------- | ----------------------------------------------- | +| `ip_hash`         | String  | hash of the submitting users IP address         | +| `user_agent_hash` | String  | hash of the submitting users user agent         | +| `captcha_pass`    | Boolean | Whether the user passsed the hCaptcha           | +| `dns_blacklisted` | Boolean | Whether the submitting IP is on a DNS blacklist | | 
