UNPKG

@fdm-monster/server

Version:

FDM Monster is a bulk OctoPrint, Klipper, PrusaLink and BambuLab manager to set up, configure and monitor 3D printers. Our aim is to provide neat overview over your farm.

72 lines (71 loc) 2.88 kB
import { __exportAll } from "../_virtual/_rolldown/runtime.js"; import { __decorateMetadata } from "../_virtual/_@oxc-project_runtime@0.129.0/helpers/decorateMetadata.js"; import { __decorate } from "../_virtual/_@oxc-project_runtime@0.129.0/helpers/decorate.js"; import { AuthenticationError } from "../exceptions/runtime.exceptions.js"; import { validateInput, validateMiddleware } from "../handlers/validators.js"; import { AppConstants } from "../server.constants.js"; import { ROLES } from "../constants/authorization.constants.js"; import { authenticate, authorizeRoles } from "../middleware/authenticate.js"; import { demoUserNotAllowed } from "../middleware/demo.middleware.js"; import { apiKeyIdParamSchema, createApiKeySchema } from "./validation/api-key-controller.validation.js"; import { DELETE, GET, POST, before, route } from "awilix-express"; //#region src/controllers/api-key.controller.ts var api_key_controller_exports = /* @__PURE__ */ __exportAll({ ApiKeyController: () => ApiKeyController }); let ApiKeyController = class ApiKeyController { constructor(apiKeyService) { this.apiKeyService = apiKeyService; } async list(_req, res) { const keys = await this.apiKeyService.list(); res.send(keys); } async create(req, res) { const createdByUserId = this.requireUserId(req); const { label, roleIds } = await validateMiddleware(req, createApiKeySchema); const created = await this.apiKeyService.create(createdByUserId, label, roleIds); res.send(created); } async delete(req, res) { const { id } = await validateInput(req.params, apiKeyIdParamSchema); await this.apiKeyService.delete(id); res.status(204).send(); } requireUserId(req) { const id = req.user?.id; if (!id || id < 0) throw new AuthenticationError("Authenticated user is required"); return id; } }; __decorate([ GET(), route("/"), __decorateMetadata("design:type", Function), __decorateMetadata("design:paramtypes", [Object, Object]), __decorateMetadata("design:returntype", Promise) ], ApiKeyController.prototype, "list", null); __decorate([ POST(), route("/"), __decorateMetadata("design:type", Function), __decorateMetadata("design:paramtypes", [Object, Object]), __decorateMetadata("design:returntype", Promise) ], ApiKeyController.prototype, "create", null); __decorate([ DELETE(), route("/:id"), __decorateMetadata("design:type", Function), __decorateMetadata("design:paramtypes", [Object, Object]), __decorateMetadata("design:returntype", Promise) ], ApiKeyController.prototype, "delete", null); ApiKeyController = __decorate([ route(AppConstants.apiRoute + "/api-keys"), before([ authenticate(), authorizeRoles([ROLES.ADMIN]), demoUserNotAllowed ]), __decorateMetadata("design:paramtypes", [Object]) ], ApiKeyController); //#endregion export { ApiKeyController, api_key_controller_exports }; //# sourceMappingURL=api-key.controller.js.map