unleash-server
Version:
Unleash is an enterprise ready feature flag service. It provides different strategies for handling feature flags.
35 lines • 1.28 kB
JavaScript
import { generateImageUrl } from '../../util/index.js';
export class FeatureCollaboratorsReadModel {
constructor(db) {
this.db = db;
}
async getFeatureCollaborators(feature) {
const query = this.db
.with('recent_events', (queryBuilder) => {
queryBuilder
.select('created_by_user_id')
.max('created_at as max_created_at')
.from('events')
.where('feature_name', feature)
.groupBy('created_by_user_id');
})
.select('users.id', 'users.email', 'users.username', 'users.name')
.from('recent_events')
.join('users', 'recent_events.created_by_user_id', 'users.id')
.orderBy('recent_events.max_created_at', 'desc');
const rows = await query;
return rows.map((row) => {
const name = row.name || row.username || row.email || 'unknown';
return {
id: row.id,
name: name,
imageUrl: generateImageUrl({
id: row.id,
email: row.email,
username: name,
}),
};
});
}
}
//# sourceMappingURL=feature-collaborators-read-model.js.map