diff --git a/src/controller/ConfigureController.ts b/src/controller/ConfigureController.ts index 130c8c8..f6918e3 100644 --- a/src/controller/ConfigureController.ts +++ b/src/controller/ConfigureController.ts @@ -3,7 +3,7 @@ import { Extractor } from '../extractor'; import { landingTemplate } from '../landingTemplate'; import { Source } from '../source'; import { Config } from '../types'; -import { buildManifest, getDefaultConfig } from '../utils'; +import { buildManifest, getDefaultConfig, isElfHostedInstance } from '../utils'; export class ConfigureController { public readonly router: Router; @@ -25,7 +25,7 @@ export class ConfigureController { const config: Config = JSON.parse(req.params['config'] || JSON.stringify(getDefaultConfig())); // Convenience preset for ElfHosted WebStreamr bundle including Media Flow Proxy - if (!req.params['config'] && req.host.endsWith('elfhosted.com')) { + if (!req.params['config'] && isElfHostedInstance(req)) { config.mediaFlowProxyUrl = `${req.protocol}://${req.host.replace('webstreamr', 'mediaflow-proxy')}`; } diff --git a/src/utils/env.test.ts b/src/utils/env.test.ts index 4d467fb..f2bb4ff 100644 --- a/src/utils/env.test.ts +++ b/src/utils/env.test.ts @@ -1,4 +1,5 @@ -import { envGet, envGetAppId, envGetAppName, envIsProd } from './env'; +import { Request } from 'express'; +import { envGet, envGetAppId, envGetAppName, envIsProd, isElfHostedInstance, isHaydukInstance } from './env'; describe('env', () => { test('envGet', () => { @@ -29,4 +30,14 @@ describe('env', () => { expect(envIsProd()).toBeTruthy(); process.env['NODE_ENV'] = previousNodeEnv; }); + + test('isElfHostedInstancce', () => { + expect(isElfHostedInstance({ host: 'someuser.elfhosted.com' } as Request)).toBeTruthy(); + expect(isElfHostedInstance({ host: 'webstreamr.hayd.uk' } as Request)).toBeFalsy(); + }); + + test('isHaydukInstance', () => { + expect(isHaydukInstance({ host: 'webstreamr.hayd.uk' } as Request)).toBeTruthy(); + expect(isHaydukInstance({ host: 'someuser.elfhosted.com' } as Request)).toBeFalsy(); + }); }); diff --git a/src/utils/env.ts b/src/utils/env.ts index 3a43855..854cd08 100644 --- a/src/utils/env.ts +++ b/src/utils/env.ts @@ -1,3 +1,5 @@ +import { Request } from 'express'; + export const envGet = (name: string): string | undefined => process.env[name]; export const envGetAppId = (): string => process.env['MANIFEST_ID'] || 'webstreamr'; @@ -5,3 +7,7 @@ export const envGetAppId = (): string => process.env['MANIFEST_ID'] || 'webstrea export const envGetAppName = (): string => process.env['MANIFEST_NAME'] || 'WebStreamr'; export const envIsProd = (): boolean => process.env['NODE_ENV'] === 'production'; + +export const isElfHostedInstance = (req: Request): boolean => req.host.endsWith('elfhosted.com'); + +export const isHaydukInstance = (req: Request): boolean => req.host.endsWith('hayd.uk');