@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
JavaScript
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