UNPKG

@ebonydevcopy/framework

Version:

A module-based NodeJS chatbot framework.

50 lines 1.54 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.userLoader = void 0; const UserSchema_1 = require("./UserSchema"); const User_1 = __importDefault(require("./User")); class DatabaseUser extends User_1.default { constructor(data) { super(new UserSchema_1.UserModel(data)); } async setContext(context) { this._context = context; await UserSchema_1.UserModel.collection.updateOne({ id: this.id }, { $set: { context } }); return context; } async save() { return this.doc.save(); } static async findByProviderId(id) { const userModel = await UserSchema_1.UserModel.findOne({ id }); if (userModel !== null) { return new DatabaseUser(userModel); } return null; } } exports.default = DatabaseUser; function userLoader() { return async (id) => { try { const userData = await DatabaseUser.findByProviderId(id); if (!userData) { const newUser = new DatabaseUser({ id, data: {} }); newUser.save(); return newUser; } return new DatabaseUser(userData); } catch (err) { throw err; } }; } exports.userLoader = userLoader; //# sourceMappingURL=DatabaseUser.js.map