11import { QueryExecutor } from '../queryExecutor'
22
3- import { SEVERITY_RANK_EXPR } from './api'
3+ import {
4+ SEVERITY_RANK_EXPR ,
5+ STEWARD_DISPLAY_NAME_METADATA ,
6+ STEWARD_MENTIONED_JOIN ,
7+ } from './sqlFragments'
48
59export interface StewardshipRecord {
610 id : string
@@ -261,6 +265,7 @@ export async function assignSteward(
261265 metadata : JSON . stringify ( {
262266 userId : data . userId ,
263267 role : data . role ,
268+ ...( data . displayName != null ? { stewardDisplayName : data . displayName } : { } ) ,
264269 ...( data . note ? { note : data . note } : { } ) ,
265270 } ) ,
266271 } ,
@@ -350,6 +355,8 @@ export interface ActivityFeedRow {
350355 total : string
351356}
352357
358+ export { STEWARD_DISPLAY_NAME_METADATA , STEWARD_MENTIONED_JOIN } from './sqlFragments'
359+
353360export async function listStewardshipActivity (
354361 qx : QueryExecutor ,
355362 opts : { page : number ; pageSize : number } ,
@@ -366,13 +373,14 @@ export async function listStewardshipActivity(
366373 sa.actor_type AS "actorType",
367374 sa.activity_type AS "activityType",
368375 sa.content AS content,
369- sa.metadata AS metadata,
376+ ${ STEWARD_DISPLAY_NAME_METADATA } AS metadata,
370377 s.status AS "stewardshipStatus",
371378 sa.created_at AS "createdAt",
372379 COUNT(*) OVER()::text AS total
373380 FROM stewardship_activity sa
374381 JOIN stewardships s ON s.id = sa.stewardship_id
375382 JOIN packages p ON p.id = s.package_id
383+ ${ STEWARD_MENTIONED_JOIN }
376384 ORDER BY sa.created_at DESC, sa.id DESC
377385 LIMIT $(limit) OFFSET $(offset)
378386 ` ,
@@ -430,16 +438,17 @@ export async function listPackageHistory(
430438 stewardshipId : string ,
431439) : Promise < PackageHistoryEvent [ ] > {
432440 const rows : Array < Record < string , unknown > > = await qx . select (
433- `SELECT id::text AS id,
434- actor_user_id AS "actorUserId",
435- actor_type AS "actorType",
436- activity_type AS "activityType",
437- content,
438- metadata,
439- created_at AS "createdAt"
440- FROM stewardship_activity
441- WHERE stewardship_id = $(stewardshipId)::bigint
442- ORDER BY created_at DESC` ,
441+ `SELECT sa.id::text AS id,
442+ sa.actor_user_id AS "actorUserId",
443+ sa.actor_type AS "actorType",
444+ sa.activity_type AS "activityType",
445+ sa.content,
446+ ${ STEWARD_DISPLAY_NAME_METADATA } AS metadata,
447+ sa.created_at AS "createdAt"
448+ FROM stewardship_activity sa
449+ ${ STEWARD_MENTIONED_JOIN }
450+ WHERE sa.stewardship_id = $(stewardshipId)::bigint
451+ ORDER BY sa.created_at DESC` ,
443452 { stewardshipId } ,
444453 )
445454 return rows . map ( ( r ) => ( {
@@ -593,8 +602,10 @@ export async function listMyPackages(
593602
594603 const displayLaterals = `
595604 LEFT JOIN LATERAL (
596- SELECT sa.content, sa.activity_type, sa.metadata, sa.created_at
605+ SELECT sa.content, sa.activity_type, sa.created_at,
606+ ${ STEWARD_DISPLAY_NAME_METADATA } AS metadata
597607 FROM stewardship_activity sa
608+ ${ STEWARD_MENTIONED_JOIN }
598609 WHERE sa.stewardship_id = s.id
599610 ORDER BY sa.created_at DESC
600611 LIMIT 1
@@ -688,7 +699,11 @@ export async function listMyPackages(
688699 scorecardScore : row . scorecardScore != null ? Number ( row . scorecardScore ) : null ,
689700 openVulns : Number ( row . openVulns ) ,
690701 maxVulnSeverity : row . maxVulnSeverity ?? null ,
691- lastActivityContent : row . lastActivityContent ?? null ,
702+ lastActivityContent : translateActivityContent (
703+ row . lastActivityContent ?? null ,
704+ row . lastActivityType ,
705+ row . lastActivityMetadata as Record < string , unknown > | null ,
706+ ) ,
692707 lastActivityType : row . lastActivityType ?? null ,
693708 lastActivityMetadata : row . lastActivityMetadata ?? null ,
694709 lastActivityAt : row . lastActivityAt ?? null ,
@@ -753,12 +768,13 @@ export async function listMyActivity(
753768 sa.actor_type AS "actorType",
754769 sa.activity_type AS "activityType",
755770 sa.content AS content,
756- sa.metadata AS metadata,
771+ ${ STEWARD_DISPLAY_NAME_METADATA } AS metadata,
757772 s.status AS "stewardshipStatus",
758773 sa.created_at AS "createdAt"
759774 FROM stewardship_activity sa
760775 JOIN stewardships s ON s.id = sa.stewardship_id
761776 JOIN packages p ON p.id = s.package_id
777+ ${ STEWARD_MENTIONED_JOIN }
762778 WHERE s.id IN (
763779 SELECT stewardship_id FROM stewardship_stewards
764780 WHERE user_id = $(userId) AND deleted_at IS NULL
@@ -845,6 +861,13 @@ export function translateActivityContent(
845861 metadata ?: Record < string , unknown > | null ,
846862) : string | null {
847863 if ( ! content ) return content
864+ if ( activityType === 'steward_added' ) {
865+ const displayName = metadata ?. stewardDisplayName as string | undefined
866+ const role = metadata ?. role as string | undefined
867+ if ( displayName && role ) {
868+ return `Assigned steward ${ displayName } as ${ role } `
869+ }
870+ }
848871 if ( activityType === 'escalation' && metadata ?. resolutionPath ) {
849872 const label =
850873 ESCALATION_RESOLUTION_PATH_LABELS [ metadata . resolutionPath as EscalationResolutionPath ]
0 commit comments