UNPKG

@5minds/processcube_engine

Version:

The ProcessCube Engine. Stores and executes BPMNs.

109 lines 4.63 kB
"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.BaseController = void 0; const inversify_1 = require("inversify"); const processcube_engine_sdk_1 = require("@5minds/processcube_engine_sdk"); let BaseController = class BaseController { logger; httpCodeSuccessfulResponse = 200; httpCodeCreatedNoContentResponse = 201; httpCodeSuccessNoContentResponse = 204; getQueryParamValue(param) { if (param === undefined) { return undefined; } const decodedValue = decodeURIComponent(param); const hasMultipleValues = decodedValue.indexOf(',') > -1; return hasMultipleValues ? decodedValue.split(',').map(this.tryParse) : this.tryParse(decodedValue); } getQueryParamValueAsDate(param) { if (param === undefined) { return undefined; } const decodedValue = this.tryParse(decodeURIComponent(param)); if (decodedValue == null) { return null; } const hasMultipleValues = decodedValue.indexOf(',') > -1; return hasMultipleValues ? decodedValue.split(',').map((value) => new Date(value)) : new Date(decodedValue); } getQueryParamValueAsIdentity(param) { if (param === undefined) { return undefined; } const decodedValue = decodeURIComponent(param); const hasMultipleValues = decodedValue.indexOf(',') > -1; return hasMultipleValues ? decodedValue.split(',').map((value) => this.tryDecodeIdentity(value)) : this.tryDecodeIdentity(decodedValue); } getQueryParamValueAsEnum(param, targetEnum) { if (param === undefined) { return undefined; } const decodedValue = decodeURIComponent(param); const hasMultipleValues = decodedValue.indexOf(',') > -1; return hasMultipleValues ? decodedValue.split(',').map((value) => targetEnum[value]) : targetEnum[decodedValue]; } getQueryParamValueAsSearchQuery(param) { if (param === undefined) { return undefined; } const parsedURIComponent = decodeURIComponent(param); if (!parsedURIComponent.includes('{') && !parsedURIComponent.includes('[')) { return this.getQueryParamValue(param); } const parsedObject = JSON.parse(parsedURIComponent); if (Array.isArray(parsedObject) || !parsedObject.searchParams) { return parsedObject; } parsedObject.searchParams = parsedObject.searchParams.map((param) => { if (param.searchString != undefined) { return { ...param, searchString: this.tryParse(param.searchString), }; } return param; }); return parsedObject; } getQueryParamValueAsBoolean(param) { if (param == undefined) { return; } return param === 'true'; } tryParse(value) { try { const parsedValue = JSON.parse(value); return typeof parsedValue === 'string' || !parsedValue ? parsedValue : String(parsedValue); } catch (error) { return value; } } tryDecodeIdentity(value) { const identity = this.tryParse(value); const hasToken = Object.keys(identity).includes('token'); const hasUserId = Object.keys(identity).includes('userId'); const isValidIdentity = hasToken && hasUserId; if (!isValidIdentity) { const internalServerError = new processcube_engine_sdk_1.InternalServerError('Query parameter is not a valid identity!'); internalServerError.additionalInformation = { invalidIdentity: value, }; throw internalServerError; } return identity; } }; exports.BaseController = BaseController; exports.BaseController = BaseController = __decorate([ (0, inversify_1.injectable)() ], BaseController); //# sourceMappingURL=BaseController.js.map