unleash-server
Version:
Unleash is an enterprise ready feature flag service. It provides different strategies for handling feature flags.
31 lines • 1.29 kB
JavaScript
export class ChangeRequestSegmentUsageReadModel {
constructor(db) {
this.db = db;
}
async getStrategiesUsedInActiveChangeRequests(segmentId) {
const query = this.db.raw(`SELECT events.*, cr.project, cr.environment, cr.title
FROM change_request_events events
JOIN change_requests cr ON events.change_request_id = cr.id
WHERE cr.state NOT IN ('Applied', 'Cancelled', 'Rejected')
AND events.action IN ('updateStrategy', 'addStrategy');`);
const queryResult = await query;
const strategies = queryResult.rows
.filter((row) => row.payload?.segments?.includes(segmentId))
.map((row) => {
const { payload, project, environment, feature } = row;
return {
projectId: project,
featureName: feature,
environment: environment,
strategyName: payload.name,
...(payload.id ? { id: payload.id } : {}),
changeRequest: {
id: row.change_request_id,
title: row.title || null,
},
};
});
return strategies;
}
}
//# sourceMappingURL=sql-change-request-segment-usage-read-model.js.map