@ebonydevcopy/framework
Version:
A module-based NodeJS chatbot framework.
50 lines • 1.54 kB
JavaScript
;
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