wip(backend): more OpenAPI docs
This commit is contained in:
parent
86c088f7c4
commit
53a0316b39
6 changed files with 1476 additions and 241 deletions
|
@ -0,0 +1,224 @@
|
|||
import {
|
||||
jwt,
|
||||
key,
|
||||
fields,
|
||||
parameters,
|
||||
response,
|
||||
errorExamples,
|
||||
jsonResponse,
|
||||
uploadImg,
|
||||
} from './lib.mjs'
|
||||
|
||||
const common = {
|
||||
tags: ['Patterns'],
|
||||
security: [jwt, key],
|
||||
}
|
||||
|
||||
const local = {
|
||||
params: {
|
||||
id: {
|
||||
in: 'path',
|
||||
name: 'id',
|
||||
required: true,
|
||||
description: "The Patterns's unique ID",
|
||||
schema: {
|
||||
example: 666,
|
||||
type: 'integer',
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
// Paths
|
||||
export const paths = {}
|
||||
|
||||
// Create Pattern
|
||||
paths['/patterns/{auth}'] = {
|
||||
post: {
|
||||
...common,
|
||||
summary: 'Create a new Pattern',
|
||||
description: 'Creates a new Pattern and returns it.',
|
||||
parameters: [parameters.auth],
|
||||
requestBody: {
|
||||
required: true,
|
||||
content: {
|
||||
'application/json': {
|
||||
schema: {
|
||||
type: 'object',
|
||||
properties: {
|
||||
data: response.body.pattern.properties.data,
|
||||
design: response.body.pattern.properties.design,
|
||||
img: uploadImg,
|
||||
name: response.body.pattern.properties.name,
|
||||
notes: response.body.pattern.properties.notes,
|
||||
person: response.body.pattern.properties.personId,
|
||||
public: response.body.pattern.properties.public,
|
||||
settings: response.body.pattern.properties.settings,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
responses: {
|
||||
201: {
|
||||
...response.status['201'],
|
||||
...jsonResponse({
|
||||
result: fields.result,
|
||||
pattern: response.body.pattern,
|
||||
}),
|
||||
},
|
||||
400: {
|
||||
...response.status['400'],
|
||||
description:
|
||||
response.status['400'].description +
|
||||
errorExamples([
|
||||
'dataNotAnObject',
|
||||
'designMissing',
|
||||
'designNotStringy',
|
||||
'postBodyMissing',
|
||||
'personMissing',
|
||||
'personNotNumeric',
|
||||
'settingsNotAnObject',
|
||||
]),
|
||||
},
|
||||
401: response.status['401'],
|
||||
403: {
|
||||
...response.status['403'],
|
||||
description:
|
||||
response.status['403'].description +
|
||||
errorExamples(['accountStatusLacking', 'insufficientAccessLevel']),
|
||||
},
|
||||
500: response.status['500'],
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
// Get/Remove Pattern
|
||||
paths['/patterns/{id}/{auth}'] = {
|
||||
// Get a Pattern
|
||||
get: {
|
||||
...common,
|
||||
summary: 'Retrieve a Pattern',
|
||||
description: 'Retrieves information about Pattern `id`.',
|
||||
parameters: [parameters.auth, local.params.id],
|
||||
responses: {
|
||||
200: {
|
||||
description:
|
||||
'**Success - Pattern returned**\n\n' +
|
||||
'Status code `200` indicates that the resource was returned successfully.',
|
||||
...jsonResponse({
|
||||
result: {
|
||||
...fields.result,
|
||||
example: 'success',
|
||||
},
|
||||
pattern: response.body.pattern,
|
||||
}),
|
||||
},
|
||||
401: response.status['401'],
|
||||
403: {
|
||||
...response.status['403'],
|
||||
description:
|
||||
response.status['403'].description +
|
||||
errorExamples(['accountStatusLacking', 'insufficientAccessLevel']),
|
||||
},
|
||||
404: response.status['404'],
|
||||
500: response.status['500'],
|
||||
},
|
||||
},
|
||||
// Update a Pattern
|
||||
patch: {
|
||||
...common,
|
||||
summary: 'Update a Pattern',
|
||||
description: 'Updates information about Pattern `id`.',
|
||||
parameters: [parameters.auth, local.params.id],
|
||||
requestBody: {
|
||||
required: true,
|
||||
content: {
|
||||
'application/json': {
|
||||
schema: {
|
||||
type: 'object',
|
||||
properties: {
|
||||
data: response.body.pattern.properties.data,
|
||||
design: response.body.pattern.properties.design,
|
||||
img: uploadImg,
|
||||
name: response.body.pattern.properties.name,
|
||||
notes: response.body.pattern.properties.notes,
|
||||
person: response.body.pattern.properties.personId,
|
||||
public: response.body.pattern.properties.public,
|
||||
settings: response.body.pattern.properties.settings,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
responses: {
|
||||
200: {
|
||||
description:
|
||||
'**Success - Pattern returned**\n\n' +
|
||||
'Status code `200` indicates that the resource was returned successfully.',
|
||||
...jsonResponse({
|
||||
result: {
|
||||
...fields.result,
|
||||
example: 'success',
|
||||
},
|
||||
pattern: response.body.pattern,
|
||||
}),
|
||||
},
|
||||
401: response.status['401'],
|
||||
403: {
|
||||
...response.status['403'],
|
||||
description:
|
||||
response.status['403'].description +
|
||||
errorExamples(['accountStatusLacking', 'insufficientAccessLevel']),
|
||||
},
|
||||
404: response.status['404'],
|
||||
500: response.status['500'],
|
||||
},
|
||||
},
|
||||
// Remove a Pattern
|
||||
delete: {
|
||||
...common,
|
||||
summary: 'Remove a Pattern',
|
||||
description: 'Removes the Pattern `id`.',
|
||||
parameters: [parameters.auth, local.params.id],
|
||||
responses: {
|
||||
204: response.status['204'],
|
||||
401: response.status['401'],
|
||||
403: {
|
||||
...response.status['403'],
|
||||
description:
|
||||
response.status['403'].description +
|
||||
errorExamples(['accountStatusLacking', 'insufficientAccessLevel']),
|
||||
},
|
||||
404: response.status['404'],
|
||||
500: response.status['500'],
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
// Clone Pattern
|
||||
paths['/patterns/{id}/clone/{auth}'] = {
|
||||
post: {
|
||||
...common,
|
||||
summary: 'Clone a Pattern',
|
||||
description: 'Creates a new Pattern by cloning an existing one.',
|
||||
parameters: [parameters.auth],
|
||||
responses: {
|
||||
201: {
|
||||
...response.status['201'],
|
||||
...jsonResponse({
|
||||
result: fields.result,
|
||||
pattern: response.body.pattern,
|
||||
}),
|
||||
},
|
||||
401: response.status['401'],
|
||||
403: {
|
||||
...response.status['403'],
|
||||
description:
|
||||
response.status['403'].description +
|
||||
errorExamples(['accountStatusLacking', 'insufficientAccessLevel']),
|
||||
},
|
||||
500: response.status['500'],
|
||||
},
|
||||
},
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue