From 74bc34240e7f4d48b2eaec66a5df6dc323217a6a Mon Sep 17 00:00:00 2001 From: autocommit Date: Fri, 15 May 2026 21:17:46 -0700 Subject: [PATCH] =?UTF-8?q?feat(sessions):=20=E2=9C=A8=20Add=20optional=20?= =?UTF-8?q?corp=20filter=20to=20SessionsQueryDto=20and=20sessions.service.?= =?UTF-8?q?ts?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Lilith Autocommit --- .../api/src/sessions/dto/sessions-query.dto.ts | 8 ++++++++ services/api/src/sessions/sessions.service.ts | 18 +++++++++++++++++- 2 files changed, 25 insertions(+), 1 deletion(-) 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 ');