Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | 59x 59x 59x 59x 59x 142x 142x 142x 142x 142x 142x 15x 5x 5x 10x 15x 15x 15x 12x 12x | import { Response } from 'express'; import Controller from '../controller'; import { IUnleashServices } from '../../types'; import { IUnleashConfig } from '../../types/option'; import ClientInstanceService from '../../services/client-metrics/instance-service'; import { Logger } from '../../logger'; import { IAuthRequest } from '../unleash-types'; import ApiUser from '../../types/api-user'; import { ALL } from '../../types/models/api-token'; import ClientMetricsServiceV2 from '../../services/client-metrics/metrics-service-v2'; import { User } from '../../server-impl'; import { IClientApp } from '../../types/model'; import { NONE } from '../../types/permissions'; export default class ClientMetricsController extends Controller { logger: Logger; clientInstanceService: ClientInstanceService; metricsV2: ClientMetricsServiceV2; constructor( { clientInstanceService, clientMetricsServiceV2, }: Pick< IUnleashServices, 'clientInstanceService' | 'clientMetricsServiceV2' >, config: IUnleashConfig, ) { super(config); const { getLogger } = config; this.logger = getLogger('/api/client/metrics'); this.clientInstanceService = clientInstanceService; this.metricsV2 = clientMetricsServiceV2; this.post('/', this.registerMetrics, NONE); } private resolveEnvironment(user: User, data: IClientApp) { if (user instanceof ApiUser) { if (user.environment !== ALL) { return user.environment; } else IEif (user.environment === ALL && data.environment) { return data.environment; } } return 'default'; } async registerMetrics(req: IAuthRequest, res: Response): Promise<void> { const { body: data, ip: clientIp, user } = req; data.environment = this.resolveEnvironment(user, data); await this.clientInstanceService.registerInstance(data, clientIp); await this.metricsV2.registerClientMetrics(data, clientIp); return res.status(202).end(); } } |