UNPKG

unleash-server

Version:

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

72 lines 2.25 kB
import NotFoundError from '../../lib/error/notfound-error.js'; export default class FakeResetTokenStore { constructor() { this.data = []; } async getActive(token) { const row = this.data.find((tokens) => tokens.token === token); if (!row) { throw new NotFoundError(); } return row; } async insert(newToken) { const token = { userId: newToken.user_id, token: newToken.reset_token, expiresAt: newToken.expires_at, createdBy: newToken.created_by || 'system-user', createdAt: new Date(), }; this.data.push(token); return Promise.resolve(token); } async delete(token) { this.data.splice(this.data.findIndex((t) => t.token === token), 1); return Promise.resolve(); } async deleteExpired() { throw new Error('Not implemented in mock'); } async deleteAll() { this.data = []; } async deleteFromQuery(query) { this.data = this.data.filter((t) => t.userId !== query.user_id && t.token !== query.reset_token); } destroy() { } async exists(token) { return this.data.some((f) => f.token === token); } async expireExistingTokensForUser(user_id) { this.data .filter((f) => f.userId === user_id) .forEach((t) => { // eslint-disable-next-line no-param-reassign t.expiresAt = new Date(); }); } async get(token) { const foundToken = this.data.find((t) => t.token === token); if (foundToken === undefined) { throw new NotFoundError('Could find token'); } return Promise.resolve(foundToken); } async getActiveTokens() { const now = new Date(); return this.data.filter((t) => t.expiresAt > now); } async getAll() { return this.data; } async useToken(token) { if (await this.exists(token.token)) { const d = this.data.find((t) => t.usedAt === null && t.token === token.token); d.usedAt = new Date(); return true; } return false; } } //# sourceMappingURL=fake-reset-token-store.js.map