RocketChat/Rocket.Chat

View on GitHub
apps/meteor/server/configuration/oauth.ts

Summary

Maintainability
A
0 mins
Test Coverage
import debounce from 'lodash.debounce';

import { settings } from '../../app/settings/server/cached';
import { initCustomOAuthServices } from '../lib/oauth/initCustomOAuthServices';
import { removeOAuthService } from '../lib/oauth/removeOAuthService';
import { updateOAuthServices } from '../lib/oauth/updateOAuthServices';

export async function configureOAuth() {
    const _updateOAuthServices = debounce(updateOAuthServices, 2000);
    settings.watchByRegex(/^Accounts_OAuth_.+/, () => {
        return _updateOAuthServices();
    });

    settings.watchByRegex(/^Accounts_OAuth_Custom-[a-z0-9_]+/, (key, value) => {
        if (!value) {
            return removeOAuthService(key);
        }
    });

    await initCustomOAuthServices();
}