@lucidcms/core
Version:
The core of the Lucid CMS. It's responsible for spinning up the API and serving the CMS.
2 lines • 1.94 kB
JavaScript
import{copy as e}from"../../../i18n/copy.mjs";import t from"../../../../utils/errors/lucid-api-error.mjs";import n from"../../utils/create-service-context.mjs";import r from"../../../../utils/services/service-wrapper.mjs";import{Permissions as i}from"../../../permission/definitions.mjs";import a from"../../../../services/roles/create-single.mjs";import o from"../../../../services/roles/get-single.mjs";import s from"../../middleware/authenticate.mjs";import c from"../../middleware/permissions.mjs";import l from"../../middleware/validate.mjs";import u from"../../middleware/validate-csrf.mjs";import d from"../../openapi/index.mjs";import f from"../../utils/build-response.mjs";import{controllerSchemas as p}from"../../../../schemas/roles.mjs";import m from"zod";import{createFactory as h}from"hono/factory";import{describeRoute as g}from"hono-openapi";const _=h().createHandlers(g({description:`Create a single role with the given name and permission groups.`,tags:[`roles`],summary:`Create Role`,responses:d.responses({schema:m.toJSONSchema(p.createSingle.response)}),parameters:d.parameters({headers:{csrf:!0}}),requestBody:d.requestBody(p.createSingle.body)}),u,s(),c([i.RolesCreate]),l(`json`,p.createSingle.body),async i=>{let s=i.req.valid(`json`),c=n(i),l=i.get(`auth`),u=await r(a,{transaction:!0,defaultError:{type:`basic`,name:e(`server:core.routes.roles.create.error.name`),message:e(`server:core.routes.roles.create.error.message`)}})(c,{name:s.name,description:s.description,permissions:s.permissions,tenantKey:s.tenantKey,authSuperAdmin:l.superAdmin});if(u.error)throw new t(u.error);let d=await r(o,{transaction:!1,defaultError:{type:`basic`,name:e(`server:core.routes.roles.fetch.error.name`),message:e(`server:core.routes.roles.fetch.error.message`)}})(c,{id:u.data});if(d.error)throw new t(d.error);return i.status(200),i.json(f(i,{data:d.data}))});export{_ as default};
//# sourceMappingURL=create-single.mjs.map