|
@@ -0,0 +1,79 @@
|
|
|
+'use strict';
|
|
|
+
|
|
|
+const async = require("async");
|
|
|
+
|
|
|
+const coreClass = require("../core");
|
|
|
+
|
|
|
+const config = require('config');
|
|
|
+
|
|
|
+module.exports = class extends coreClass {
|
|
|
+ constructor(name, moduleManager) {
|
|
|
+ super(name, moduleManager);
|
|
|
+
|
|
|
+ this.dependsOn = ["mongo"];
|
|
|
+ }
|
|
|
+
|
|
|
+ initialize() {
|
|
|
+ return new Promise(async (resolve, reject) => {
|
|
|
+ this.setStage(1);
|
|
|
+
|
|
|
+ this.mongoModule = this.moduleManager.modules["mongo"];
|
|
|
+ this.utilModule = this.moduleManager.modules["util"];
|
|
|
+
|
|
|
+ this.accountSchema = await this.mongoModule.schema("account");
|
|
|
+ this.accountModel = await this.mongoModule.model("account");
|
|
|
+
|
|
|
+ resolve();
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ async getAll() {
|
|
|
+ return new Promise(async (resolve, reject) => {
|
|
|
+ try { await this._validateHook(); } catch { return; }
|
|
|
+
|
|
|
+ this.accountModel.find({}, (err, accounts) => {
|
|
|
+ if (err) reject(new Error(err));
|
|
|
+ else resolve(accounts);
|
|
|
+ });
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ async getById(accountId) {
|
|
|
+ return new Promise(async (resolve, reject) => {
|
|
|
+ try { await this._validateHook(); } catch { return; }
|
|
|
+
|
|
|
+ this.accountModel.findById(accountId, (err, account) => {
|
|
|
+ if (err) reject(new Error(err));
|
|
|
+ else resolve(account);
|
|
|
+ });
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ async add(account) {
|
|
|
+ return new Promise(async (resolve, reject) => {
|
|
|
+ try { await this._validateHook(); } catch { return; }
|
|
|
+
|
|
|
+ this.accountModel.create(account, (err) => {
|
|
|
+ if (err) reject(new Error(err));
|
|
|
+ else {
|
|
|
+ this.utilModule.addAutosuggestAccount(account);
|
|
|
+ resolve();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ async editById(accountId, account) {
|
|
|
+ return new Promise(async (resolve, reject) => {
|
|
|
+ try { await this._validateHook(); } catch { return; }
|
|
|
+
|
|
|
+ this.accountModel.updateOne({ _id: accountId }, account, (err) => {
|
|
|
+ if (err) reject(new Error(err));
|
|
|
+ else {
|
|
|
+ this.utilModule.addAutosuggestAccount(account);
|
|
|
+ resolve();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ });
|
|
|
+ }
|
|
|
+}
|