UNPKG

unleash-server

Version:

Unleash is an enterprise ready feature flag service. It provides different strategies for handling feature flags.

67 lines 2.1 kB
import { USER_COLUMNS_PUBLIC, USERS_TABLE } from './user-store.js'; const toResponse = (row) => { return { id: row.id, name: row.name, username: row.username, email: row.email, imageUrl: row.image_url, seenAt: row.seen_at, createdAt: row.created_at, updatedAt: row.updated_at, deletedAt: row.deleted_at, }; }; export class UserUpdatesReadModel { constructor(db, _getLogger) { this.db = db; } async getLastUpdatedAt() { const result = await this.db(USERS_TABLE) .select('id', 'updated_at') .where({ // also consider deleted users (different than activeUsers query) is_system: false, is_service: false, }) .orderBy('updated_at', 'desc') .orderBy('id', 'desc') .first(); return result ? { lastUpdatedAt: result.updated_at, userId: result.id, } : null; } /** @deprecated */ async getUsersUpdatedAfter(date, limit = 100) { return this.getUsersUpdatedAfterOrEqual(date, limit, 0); } async getUsersUpdatedAfterOrEqual(date, limit = 100, afterId = 0) { const result = await this.db(USERS_TABLE) .where({ // also consider deleted users (different than activeUsers query) is_system: false, is_service: false, }) .where((builder) => { builder.where('updated_at', '>', date).orWhere((subBuilder) => { subBuilder .where('updated_at', '=', date) .where('id', '>', afterId); }); }) .orderBy('updated_at', 'asc') .orderBy('id', 'asc') .select([ ...USER_COLUMNS_PUBLIC, 'created_at', 'updated_at', 'deleted_at', ]) .limit(limit); return result.map(toResponse); } } //# sourceMappingURL=user-updates-read-model.js.map