UNPKG

@lucidcms/core

Version:

The core of the Lucid CMS. It's responsible for spinning up the API and serving the CMS.

1 lines 8.28 kB
{"version":3,"file":"media-folders.mjs","names":[],"sources":["../../src/schemas/media-folders.ts"],"sourcesContent":["import z from \"zod\";\nimport type { ControllerSchema } from \"../types.js\";\nimport { queryFormatted, queryString } from \"./helpers/querystring.js\";\n\nconst mediaFolderResponseSchema = z.object({\n\tid: z.number().meta({ description: \"Folder ID\", example: 1 }),\n\ttitle: z.string().meta({ description: \"Folder title\", example: \"Heros\" }),\n\tparentFolderId: z\n\t\t.number()\n\t\t.nullable()\n\t\t.meta({ description: \"Folder parent ID\", example: 1 }),\n\tfolderCount: z\n\t\t.number()\n\t\t.meta({ description: \"Folder folder count\", example: 1 }),\n\tmediaCount: z\n\t\t.number()\n\t\t.meta({ description: \"Folder media count\", example: 1 }),\n\tmeta: z\n\t\t.object({\n\t\t\tlevel: z.number().meta({ description: \"Folder level\", example: 1 }),\n\t\t\torder: z.number().meta({ description: \"Folder order\", example: 1 }),\n\t\t\tlabel: z.string().meta({ description: \"Folder label\", example: \"Heros\" }),\n\t\t})\n\t\t.optional(),\n\tcreatedBy: z\n\t\t.number()\n\t\t.nullable()\n\t\t.meta({ description: \"Folder created by\", example: 1 }),\n\tupdatedBy: z\n\t\t.number()\n\t\t.nullable()\n\t\t.meta({ description: \"Folder updated by\", example: 1 }),\n\tcreatedAt: z.string().meta({\n\t\tdescription: \"Creation timestamp\",\n\t\texample: \"2022-01-01T00:00:00Z\",\n\t}),\n\tupdatedAt: z.string().meta({\n\t\tdescription: \"Last update timestamp\",\n\t\texample: \"2022-01-01T00:00:00Z\",\n\t}),\n});\nconst mediaFolderBreadcrumbResponseSchema = z.object({\n\tid: z.number().meta({ description: \"Folder ID\", example: 1 }),\n\ttitle: z.string().meta({ description: \"Folder title\", example: \"Heros\" }),\n\tparentFolderId: z\n\t\t.number()\n\t\t.nullable()\n\t\t.meta({ description: \"Folder parent ID\", example: 1 }),\n});\n\nexport const controllerSchemas = {\n\thierarchy: {\n\t\tquery: {\n\t\t\tstring: undefined,\n\t\t\tformatted: undefined,\n\t\t},\n\t\tparams: undefined,\n\t\tbody: undefined,\n\t\tresponse: z.array(mediaFolderResponseSchema),\n\t} satisfies ControllerSchema,\n\tgetMultiple: {\n\t\tquery: {\n\t\t\tstring: z\n\t\t\t\t.object({\n\t\t\t\t\t\"filter[title]\": queryString.schema.filter(false, {\n\t\t\t\t\t\texample: \"Heros\",\n\t\t\t\t\t}),\n\t\t\t\t\t\"filter[parentFolderId]\": queryString.schema.filter(false, {\n\t\t\t\t\t\texample: \"1\",\n\t\t\t\t\t\tnullable: true,\n\t\t\t\t\t}),\n\t\t\t\t\tsort: queryString.schema.sort(\"createdAt,updatedAt,title\"),\n\t\t\t\t\tpage: queryString.schema.page,\n\t\t\t\t\tperPage: queryString.schema.perPage,\n\t\t\t\t})\n\t\t\t\t.meta(queryString.meta),\n\t\t\tformatted: z.object({\n\t\t\t\tfilter: z\n\t\t\t\t\t.object({\n\t\t\t\t\t\ttitle: queryFormatted.schema.filters.single.optional(),\n\t\t\t\t\t\tparentFolderId: queryFormatted.schema.filters.single.optional(),\n\t\t\t\t\t})\n\t\t\t\t\t.optional(),\n\t\t\t\tfilterOr: queryFormatted.schema.filterOr,\n\t\t\t\tsort: z\n\t\t\t\t\t.array(\n\t\t\t\t\t\tz.object({\n\t\t\t\t\t\t\tkey: z.enum([\"createdAt\", \"updatedAt\", \"title\"]),\n\t\t\t\t\t\t\tdirection: z.enum([\"asc\", \"desc\"]),\n\t\t\t\t\t\t}),\n\t\t\t\t\t)\n\t\t\t\t\t.optional(),\n\t\t\t\tpage: queryFormatted.schema.page,\n\t\t\t\tperPage: queryFormatted.schema.perPage,\n\t\t\t}),\n\t\t},\n\t\tparams: undefined,\n\t\tbody: undefined,\n\t\tresponse: z.object({\n\t\t\tfolders: z.array(mediaFolderResponseSchema),\n\t\t\tbreadcrumbs: z.array(mediaFolderBreadcrumbResponseSchema),\n\t\t}),\n\t} satisfies ControllerSchema,\n\tdeleteSingle: {\n\t\tbody: undefined,\n\t\tquery: {\n\t\t\tstring: undefined,\n\t\t\tformatted: undefined,\n\t\t},\n\t\tparams: z.object({\n\t\t\tid: z.string().trim().meta({\n\t\t\t\tdescription: \"The folder ID\",\n\t\t\t\texample: 1,\n\t\t\t}),\n\t\t}),\n\t\tresponse: undefined,\n\t} satisfies ControllerSchema,\n\tupdateSingle: {\n\t\tbody: z.object({\n\t\t\ttitle: z\n\t\t\t\t.string()\n\t\t\t\t.trim()\n\t\t\t\t.min(1)\n\t\t\t\t.meta({\n\t\t\t\t\tdescription: \"The folder title\",\n\t\t\t\t\texample: \"Heros\",\n\t\t\t\t})\n\t\t\t\t.optional(),\n\t\t\tparentFolderId: z\n\t\t\t\t.number()\n\t\t\t\t.nullable()\n\t\t\t\t.meta({\n\t\t\t\t\tdescription: \"The folder parent ID\",\n\t\t\t\t\texample: 1,\n\t\t\t\t})\n\t\t\t\t.optional(),\n\t\t}),\n\t\tquery: {\n\t\t\tstring: undefined,\n\t\t\tformatted: undefined,\n\t\t},\n\t\tparams: z.object({\n\t\t\tid: z.string().trim().meta({\n\t\t\t\tdescription: \"The folder ID\",\n\t\t\t\texample: 1,\n\t\t\t}),\n\t\t}),\n\t\tresponse: undefined,\n\t} satisfies ControllerSchema,\n\tcreateSingle: {\n\t\tbody: z.object({\n\t\t\ttitle: z.string().trim().min(1).meta({\n\t\t\t\tdescription: \"The folder title\",\n\t\t\t\texample: \"Heros\",\n\t\t\t}),\n\t\t\tparentFolderId: z\n\t\t\t\t.number()\n\t\t\t\t.nullable()\n\t\t\t\t.meta({\n\t\t\t\t\tdescription: \"The folder parent ID\",\n\t\t\t\t\texample: 1,\n\t\t\t\t})\n\t\t\t\t.optional(),\n\t\t}),\n\t\tquery: {\n\t\t\tstring: undefined,\n\t\t\tformatted: undefined,\n\t\t},\n\t\tparams: undefined,\n\t\tresponse: undefined,\n\t} satisfies ControllerSchema,\n};\n\nexport type GetMultipleQueryParams = z.infer<\n\ttypeof controllerSchemas.getMultiple.query.formatted\n>;\n"],"mappings":"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"}