UNPKG

@sourceloop/ctrl-plane-tenant-management-service

Version:

Tenant Management microservice for SaaS control plane

75 lines 2.93 kB
"use strict"; var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.IdpController = void 0; const tslib_1 = require("tslib"); const core_1 = require("@loopback/core"); const rest_1 = require("@loopback/rest"); const core_2 = require("@sourceloop/core"); const loopback4_authorization_1 = require("loopback4-authorization"); const loopback4_ratelimiter_1 = require("loopback4-ratelimiter"); const keys_1 = require("../keys"); const idp_details_dto_model_1 = require("../models/dtos/idp-details-dto.model"); const types_1 = require("../types"); const basePath = '/manage/users'; let IdpController = class IdpController { constructor(idpKeycloakProvider, idpAuth0Provider) { this.idpKeycloakProvider = idpKeycloakProvider; this.idpAuth0Provider = idpAuth0Provider; } async idpConfigure(payload) { let res = { authId: '', }; switch (payload.tenant.identityProvider) { case types_1.IdPKey.AUTH0: res = await this.idpAuth0Provider(payload); break; case types_1.IdPKey.COGNITO: break; case types_1.IdPKey.KEYCLOAK: res = await this.idpKeycloakProvider(payload); break; default: break; } return res; } }; exports.IdpController = IdpController; tslib_1.__decorate([ (0, core_1.intercept)(keys_1.CALLABCK_VERIFIER), (0, loopback4_ratelimiter_1.ratelimit)(true, { max: parseInt((_a = process.env.WEBHOOK_API_MAX_ATTEMPTS) !== null && _a !== void 0 ? _a : '10'), keyGenerator: core_2.rateLimitKeyGenPublic, }), (0, loopback4_authorization_1.authorize)({ permissions: ['*'], }), (0, rest_1.post)(`${basePath}`, { security: core_2.OPERATION_SECURITY_SPEC, responses: { [204 /* STATUS_CODE.NO_CONTENT */]: { description: 'Webhook success', }, }, }), tslib_1.__param(0, (0, rest_1.requestBody)({ content: { [core_2.CONTENT_TYPE.JSON]: { schema: (0, rest_1.getModelSchemaRef)(idp_details_dto_model_1.IdpDetailsDTO, { title: 'IdpDetailsDTO', }), }, }, })), tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", [idp_details_dto_model_1.IdpDetailsDTO]), tslib_1.__metadata("design:returntype", Promise) ], IdpController.prototype, "idpConfigure", null); exports.IdpController = IdpController = tslib_1.__decorate([ tslib_1.__param(0, (0, core_1.inject)(keys_1.TenantManagementServiceBindings.IDP_KEYCLOAK)), tslib_1.__param(1, (0, core_1.inject)(keys_1.TenantManagementServiceBindings.IDP_AUTH0)), tslib_1.__metadata("design:paramtypes", [Function, Function]) ], IdpController); //# sourceMappingURL=idp.controller.js.map