@36node/template-service
Version:
A service boilerplate with openapi,rest and mongodb.
266 lines (265 loc) • 7.92 kB
JavaScript
export const listPetsReqSchema = {
additionalProperties: false,
type: "object",
required: [],
properties: {
query: {
additionalProperties: false,
type: "object",
required: [],
properties: {
_limit: {
type: "integer",
format: "int32",
default: 10,
maximum: 1000,
},
_offset: { type: "integer", format: "int32", default: 0 },
_sort: { type: "string" },
_select: { type: "array", items: { type: "string" } },
tag: { type: "string" },
age_gt: { type: "integer" },
birthAt_gt: { type: "string", format: "date" },
birthAt_lt: { type: "string", format: "date" },
grade_gt: { type: "string", format: "date" },
grade_lt: { type: "string", format: "date" },
},
},
},
};
export const listPetsResSchema = {
additionalProperties: false,
type: "object",
required: ["body", "headers"],
properties: {
body: {
type: "array",
items: {
allOf: [
{
additionalProperties: false,
type: "object",
properties: {
name: { type: "string", description: "pet's name" },
tag: { type: "string", enum: ["DOG", "CAT"] },
age: { type: "integer", format: "int32" },
birthAt: {
type: ["string", "null"],
format: "date",
nullable: true,
},
grade: { type: "integer", format: "int32" },
owner: { type: "string" },
other1: { type: "string", readOnly: true },
},
},
{
additionalProperties: false,
type: "object",
required: ["id"],
properties: {
id: { type: "string" },
updateAt: { tsType: "Date", type: "string", format: "date-time" },
updateBy: { type: "string" },
createAt: { tsType: "Date", type: "string", format: "date-time" },
createBy: { type: "string" },
},
},
],
},
},
headers: {
additionalProperties: false,
type: "object",
required: ["x-total-count"],
properties: { "x-total-count": { type: "integer" } },
},
},
};
export const createPetReqSchema = {
additionalProperties: false,
type: "object",
required: ["body"],
properties: {
body: {
allOf: [
{
additionalProperties: false,
type: "object",
properties: {
name: { type: "string", description: "pet's name" },
tag: { type: "string", enum: ["DOG", "CAT"] },
age: { type: "integer", format: "int32" },
birthAt: {
type: ["string", "null"],
format: "date",
nullable: true,
},
grade: { type: "integer", format: "int32" },
owner: { type: "string" },
other2: { type: "string", writeOnly: true },
},
},
{
additionalProperties: false,
type: "object",
required: ["name"],
properties: { name: { type: "string", description: "pet's name" } },
},
],
},
},
};
export const createPetResSchema = {
additionalProperties: false,
type: "object",
required: ["body"],
properties: {
body: {
allOf: [
{
additionalProperties: false,
type: "object",
properties: {
name: { type: "string", description: "pet's name" },
tag: { type: "string", enum: ["DOG", "CAT"] },
age: { type: "integer", format: "int32" },
birthAt: {
type: ["string", "null"],
format: "date",
nullable: true,
},
grade: { type: "integer", format: "int32" },
owner: { type: "string" },
other1: { type: "string", readOnly: true },
},
},
{
additionalProperties: false,
type: "object",
required: ["id"],
properties: {
id: { type: "string" },
updateAt: { tsType: "Date", type: "string", format: "date-time" },
updateBy: { type: "string" },
createAt: { tsType: "Date", type: "string", format: "date-time" },
createBy: { type: "string" },
},
},
],
},
},
};
export const showPetByIdReqSchema = {
additionalProperties: false,
type: "object",
required: ["petId"],
properties: { petId: { type: "string", pattern: "[a-f\\d]{24}" } },
};
export const showPetByIdResSchema = {
additionalProperties: false,
type: "object",
required: ["body"],
properties: {
body: {
allOf: [
{
additionalProperties: false,
type: "object",
properties: {
name: { type: "string", description: "pet's name" },
tag: { type: "string", enum: ["DOG", "CAT"] },
age: { type: "integer", format: "int32" },
birthAt: {
type: ["string", "null"],
format: "date",
nullable: true,
},
grade: { type: "integer", format: "int32" },
owner: { type: "string" },
other1: { type: "string", readOnly: true },
},
},
{
additionalProperties: false,
type: "object",
required: ["id"],
properties: {
id: { type: "string" },
updateAt: { tsType: "Date", type: "string", format: "date-time" },
updateBy: { type: "string" },
createAt: { tsType: "Date", type: "string", format: "date-time" },
createBy: { type: "string" },
},
},
],
},
},
};
export const updatePetReqSchema = {
additionalProperties: false,
type: "object",
required: ["petId", "body"],
properties: {
petId: { type: "string", pattern: "[a-f\\d]{24}" },
body: {
additionalProperties: false,
type: "object",
properties: {
name: { type: "string", description: "pet's name" },
tag: { type: "string", enum: ["DOG", "CAT"] },
age: { type: "integer", format: "int32" },
birthAt: { type: ["string", "null"], format: "date", nullable: true },
grade: { type: "integer", format: "int32" },
owner: { type: "string" },
other2: { type: "string", writeOnly: true },
},
},
},
};
export const updatePetResSchema = {
additionalProperties: false,
type: "object",
required: ["body"],
properties: {
body: {
allOf: [
{
additionalProperties: false,
type: "object",
properties: {
name: { type: "string", description: "pet's name" },
tag: { type: "string", enum: ["DOG", "CAT"] },
age: { type: "integer", format: "int32" },
birthAt: {
type: ["string", "null"],
format: "date",
nullable: true,
},
grade: { type: "integer", format: "int32" },
owner: { type: "string" },
other1: { type: "string", readOnly: true },
},
},
{
additionalProperties: false,
type: "object",
required: ["id"],
properties: {
id: { type: "string" },
updateAt: { tsType: "Date", type: "string", format: "date-time" },
updateBy: { type: "string" },
createAt: { tsType: "Date", type: "string", format: "date-time" },
createBy: { type: "string" },
},
},
],
},
},
};
export const deletePetReqSchema = {
additionalProperties: false,
type: "object",
required: ["petId"],
properties: { petId: { type: "string", pattern: "[a-f\\d]{24}" } },
};