diff --git a/services/api/src/sessions/dto/sessions-query.dto.ts b/services/api/src/sessions/dto/sessions-query.dto.ts index 9548a8f..d64ae40 100644 --- a/services/api/src/sessions/dto/sessions-query.dto.ts +++ b/services/api/src/sessions/dto/sessions-query.dto.ts @@ -47,6 +47,10 @@ export class SessionsQueryDto { @IsInt() @Min(0) offset?: number = 0; + + @IsOptional() + @IsString() + corp?: string; } export class SessionMetricsQueryDto { @@ -67,4 +71,8 @@ export class SessionMetricsQueryDto { @IsOptional() @IsString() country?: string; + + @IsOptional() + @IsString() + corp?: string; } diff --git a/services/api/src/sessions/sessions.service.ts b/services/api/src/sessions/sessions.service.ts index aa54681..51ba750 100644 --- a/services/api/src/sessions/sessions.service.ts +++ b/services/api/src/sessions/sessions.service.ts @@ -1,7 +1,8 @@ import { Injectable, Logger } from '@nestjs/common'; import { InjectDataSource } from '@nestjs/typeorm'; import { DataSource } from 'typeorm'; -import { SessionsQueryDto, SessionMetricsQueryDto, SessionSortBy } from './dto/sessions-query.dto'; +import { SessionsQueryDto, SessionMetricsQueryDto, SessionSortBy } from "./dto/sessions-query.dto"; +import { resolveCorpId } from "../common/corp-filter.util"; export interface SessionRecord { sessionId: string; @@ -83,6 +84,13 @@ export class SessionsService { paramIndex++; } + const corpId = await resolveCorpId(this.dataSource, query.corp); + if (corpId !== null) { + conditions.push(`re.corp_id = $${paramIndex}`); + params.push(corpId); + paramIndex++; + } + const whereClause = conditions.join(' AND '); // Map sortBy to column @@ -186,6 +194,14 @@ export class SessionsService { if (country) { conditions.push(`sf.country = $${paramIndex}`); params.push(country); + paramIndex++; + } + + const corpId = await resolveCorpId(this.dataSource, query.corp); + if (corpId !== null) { + conditions.push(`re.corp_id = $${paramIndex}`); + params.push(corpId); + paramIndex++; } const whereClause = conditions.join(' AND ');