@citibot/schema
v1.0.6
Published
Citibot Schema Documents
Downloads
43
Readme
Citibot Schema Documentation
The Citibot Schemas are used for controlling JSON inputs to your database. These schemas insure data being entered meets pre-determined specifications.
Getting Started
Run the following commands in terminal
$ git clone
$ cd schema
$ npm install
Usage
To validate a message
, accounts
, notification
, or webhooks
document, you can use these schemas in your api or application.
Here is an example using the ajv
module utilizing the message
schema:
const Ajv = require('ajv')
const ajv = new Ajv()
const { messageSchema } = require('@citibot/schema')
ajv.addSchema(messageSchema, 'message')
app.post('/messages',
bodyParser.json(), (req, res) => {
const message = req.body
if !(ajv.validate('message', message)) {
return res.status(500).send(`Invalid Message Document\n ${ajv.errorsText()}`)
}
//... do
res.send({ok: true})
})
Here is an example using the ajv
module utilizing the notification
schema:
const Ajv = require('ajv')
const ajv = new Ajv()
const { notificationSchema } = require('@citibot/schema')
ajv.addSchema(notificationSchema, 'notification')
app.post('/notifications',
bodyParser.json(), (req, res) => {
const notification = req.body
if !(ajv.validate('notification', notification)) {
return res.status(500).send(`Invalid Notification Document\n ${ajv.errorsText()}`)
}
//... do
res.send({ok: true})
})
Here is an example using the ajv
module utilizing the accounts
schema:
const Ajv = require('ajv')
const ajv = new Ajv()
const { accountsSchema } = require('@citibot/schema')
ajv.addSchema(accountsSchema, 'accounts')
app.post('/accounts',
bodyParser.json(), (req, res) => {
const account = req.body
if !(ajv.validate('accounts', account)) {
return res.status(500).send(`Invalid Account Document\n ${ajv.errorsText()}`)
}
//... do
res.send({ok: true})
})
Here is an example using the ajv
module utilizing the webhooks
schema:
const Ajv = require('ajv')
const ajv = new Ajv()
const { webhookSchema } = require('@citibot/schema')
ajv.addSchema(webhookSchema, 'webhooks')
app.post('/webhooks',
bodyParser.json(), (req, res) => {
const webhook = req.body
if !(ajv.validate('webhooks', webhook)) {
return res.status(500).send(`Invalid Webhook Document\n ${ajv.errorsText()}`)
}
//... do
res.send({ok: true})
})
Schemas
Messenger schema
Required fields include:
- type - [string=message]
- Example type:'message'
- from - [string]
- to - [string]
- source - [string]
- message - [string]
Optional fields
- intent - [string]
- slots - [array]
- dateCreated - [date]
Notification schema
Required fields include:
- type - [string=notification]
- Example type:'notification'
- from - [string]
- to - [string]
- reply - [string]
- message - [string]
Optional fields
- dateCreated - [string]
Accounts schema
Required fields include:
- type [string=accounts]
- Example type:'accounts'
- name - [string]
- sites - [array]
- content - [string]
- description - [string]
Webhooks schema
Required fields include:
- id [string]
- idModel - [string]
- callbackURL - [array]
- active - [boolean]
- description - [string]
Testing schemas
npm test