All files / bookings/schema getBooking.js

100% Statements 4/4
100% Branches 0/0
100% Functions 0/0
100% Lines 4/4

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 751x                         1x                                 1x                                                                                     1x  
const exactDate = {
  oneOf: [
    {
      type: 'number',
      minimum: 0,
    },
    {
      type: 'string',
      format: 'date-time',
    },
  ],
};
 
const date = {
  oneOf: [
    exactDate,
    {
      type: 'object',
      additionalProperties: false,
      required: ['date', 'relative'],
      properties: {
        date: exactDate,
        relative: {
          enum: ['before', 'after'],
        },
      },
    },
  ],
};
 
const schema = {
  type: 'object',
  additionalProperties: false,
  properties: {
    status_id: {
      type: 'string',
      description: 'The current status of a booking.',
    },
    customer_id: {
      type: 'number',
      description: 'The customer id associated with the booking.',
    },
    customer_email: {
      type: 'string',
      description: 'The customer email associated with the booking.',
    },
    start_date: {
      ...date,
      description: 'The date the booking starts on (i.e. check-in).',
    },
    end_date: {
      ...date,
      description: 'The date the booking ends on (i.e. check-out).',
    },
    created_date: {
      ...date,
      description: 'The date the booking was created.',
    },
    last_modified: {
      ...date,
      description: 'The date the booking was last changed. Useful for getting bookings added or changed since your last call.',
    },
    limit: {
      type: 'number',
      description: 'The limit of bookings to return per page (default: 100).',
    },
    page: {
      type: 'number',
      description: 'The page of results to return.',
    },
  },
};
 
module.exports = schema;