UNPKG

n8n

Version:

n8n Workflow Automation Tool

76 lines 3.98 kB
"use strict"; const api_types_1 = require("@n8n/api-types"); const di_1 = require("@n8n/di"); const response_error_1 = require("../../../../errors/response-errors/abstract/response.error"); const bad_request_error_1 = require("../../../../errors/response-errors/bad-request.error"); const helpers_ee_1 = require("../../../../modules/ldap.ee/helpers.ee"); const ldap_errors_1 = require("../../../../modules/ldap.ee/ldap.errors"); const ldap_service_ee_1 = require("../../../../modules/ldap.ee/ldap.service.ee"); const ldap_mapper_1 = require("./ldap.mapper"); const global_middleware_1 = require("../../shared/middlewares/global.middleware"); const pagination_service_1 = require("../../shared/services/pagination.service"); const ldapHandlers = { getLdapConfiguration: [ (0, global_middleware_1.isLicensed)('feat:ldap'), (0, global_middleware_1.apiKeyHasScopeWithGlobalScopeFallback)({ scope: 'ldap:manage' }), async (_req, res) => { const ldapService = di_1.Container.get(ldap_service_ee_1.LdapService); const config = await ldapService.loadConfig(); return res.json((0, ldap_mapper_1.toLdapConfigurationResponse)(config)); }, ], updateLdapConfiguration: [ (0, global_middleware_1.isLicensed)('feat:ldap'), (0, global_middleware_1.apiKeyHasScopeWithGlobalScopeFallback)({ scope: 'ldap:manage' }), async (req, res) => { const payload = api_types_1.UpdateLdapConfigurationDto.safeParse(req.body); if (!payload.success) { throw new bad_request_error_1.BadRequestError(payload.error.errors[0]?.message ?? 'Invalid request body'); } const ldapService = di_1.Container.get(ldap_service_ee_1.LdapService); const current = await ldapService.loadConfig(); const updated = (0, ldap_mapper_1.toLdapConfigUpdate)(payload.data, current); await ldapService.updateConfig(updated); const reloaded = await ldapService.loadConfig(); return res.json((0, ldap_mapper_1.toLdapConfigurationResponse)(reloaded)); }, ], getLdapSync: [ (0, global_middleware_1.isLicensed)('feat:ldap'), (0, global_middleware_1.apiKeyHasScopeWithGlobalScopeFallback)({ scope: 'ldap:sync' }), global_middleware_1.validCursor, async (req, res) => { const { offset = 0, limit = 100 } = req.query; const [rows, count] = await (0, helpers_ee_1.getLdapSynchronizationsWithCount)(offset, limit); return res.json({ data: rows.map(ldap_mapper_1.toLdapSyncHistoryResponse), nextCursor: (0, pagination_service_1.encodeNextCursor)({ offset, limit, numberOfTotalRecords: count }), }); }, ], runLdapSync: [ (0, global_middleware_1.isLicensed)('feat:ldap'), (0, global_middleware_1.apiKeyHasScopeWithGlobalScopeFallback)({ scope: 'ldap:sync' }), async (req, res) => { const payload = api_types_1.LdapSyncDto.safeParse(req.body); if (!payload.success) { throw new bad_request_error_1.BadRequestError(payload.error.errors[0]?.message ?? 'Invalid request body'); } let syncHistory; try { syncHistory = await di_1.Container.get(ldap_service_ee_1.LdapService).runSync(payload.data.type); } catch (e) { if (e instanceof response_error_1.ResponseError) throw e; if (e instanceof ldap_errors_1.LdapRejectionError || e instanceof ldap_errors_1.LdapConnectionError) { throw new bad_request_error_1.BadRequestError(e.message); } throw e; } return res.json((0, ldap_mapper_1.toLdapSyncHistoryResponse)(syncHistory)); }, ], }; module.exports = ldapHandlers; //# sourceMappingURL=ldap.handler.js.map