Files: 3bc106d06cd050c026b7934dacf2076f6d847894 / position / schema / position.js
1749 bytesRaw
1 | const Validate = require('is-my-json-valid') |
2 | const chooseOneDetails = require('./details/chooseOne') |
3 | |
4 | const ssbSchemaDefintions = require('../../lib/ssbSchemaDefintions') |
5 | |
6 | const schema = { |
7 | $schema: 'http://json-schema.org/schema#', |
8 | type: 'object', |
9 | required: ['type', 'positionDetails'], |
10 | properties: { |
11 | version: { |
12 | type: 'string', |
13 | pattern: '^0.1.0$' |
14 | }, |
15 | type: { |
16 | type: 'string', |
17 | pattern: '^position$' |
18 | }, |
19 | text: { type: 'string' }, |
20 | reason: { type: 'string' }, |
21 | positionDetails: { |
22 | oneOf: [ |
23 | // { $ref: '#/definitions/positionDetails/dot'}, |
24 | // { $ref: '#/definitions/positionDetails/proposal'}, |
25 | // { $ref: '#/definitions/positionDetails/score'}, |
26 | { $ref: '#/definitions/positionDetails/chooseOne' } |
27 | // { $ref: '#/definitions/positionDetails/rsvp'}, |
28 | // { $ref: '#/definitions/positionDetails/meeting'}, |
29 | ] |
30 | }, |
31 | mentions: { |
32 | oneOf: [ |
33 | { type: 'null' }, |
34 | { |
35 | type: 'array', |
36 | items: { |
37 | oneOf: [ |
38 | { $ref: '#/definitions/mentions/message' }, |
39 | { $ref: '#/definitions/mentions/feed' }, |
40 | { $ref: '#/definitions/mentions/blob' } |
41 | ] |
42 | } |
43 | } |
44 | ] |
45 | }, |
46 | recps: { |
47 | oneOf: [ |
48 | { type: 'null' }, |
49 | { |
50 | type: 'array', |
51 | items: { |
52 | oneOf: [ |
53 | { $ref: '#/definitions/feedId' }, |
54 | { $ref: '#/definitions/mentions/feed' } |
55 | ] |
56 | } |
57 | } |
58 | ] |
59 | } |
60 | }, |
61 | definitions: Object.assign({}, |
62 | ssbSchemaDefintions, |
63 | { |
64 | positionDetails: { |
65 | type: 'object', |
66 | chooseOne: chooseOneDetails |
67 | } |
68 | } |
69 | ) |
70 | } |
71 | |
72 | module.exports = schema |
73 |
Built with git-ssb-web