convertSchema.js 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. 'use strict';
  2. const async = require("async");
  3. const coreClass = require("../core");
  4. const config = require('config');
  5. module.exports = class extends coreClass {
  6. constructor(name, moduleManager) {
  7. super(name, moduleManager);
  8. this.dependsOn = ["mongo"];
  9. }
  10. initialize() {
  11. return new Promise(async (resolve, reject) => {
  12. this.setStage(1);
  13. this.mongoModule = this.moduleManager.modules["mongo"];
  14. this.convertSchemaSchema = await this.mongoModule.schema("convertSchema");
  15. this.convertSchemaModel = await this.mongoModule.model("convertSchema");
  16. resolve();
  17. })
  18. }
  19. async getForVersion(version) {
  20. return new Promise(async (resolve, reject) => {
  21. try { await this._validateHook(); } catch { return; }
  22. this.convertSchemaModel.findOne({ versionFrom: version }, (err, schema) => {
  23. if (err) reject(new Error(err.message));
  24. else if (!schema) reject(new Error("Schema not found."));
  25. else resolve(schema)
  26. });
  27. });
  28. }
  29. async getById(schemaId) {
  30. return new Promise(async (resolve, reject) => {
  31. try { await this._validateHook(); } catch { return; }
  32. this.convertSchemaModel.findById(schemaId, (err, schema) => {
  33. if (err || !schema) reject(new Error("Something went wrong."))
  34. else resolve(schema)
  35. });
  36. });
  37. }
  38. async removeById(schemaId) {
  39. return new Promise(async (resolve, reject) => {
  40. try { await this._validateHook(); } catch { return; }
  41. this.convertSchemaModel.deleteOne({ _id: schemaId }, (err, res) => {
  42. if (err) reject(new Error("Something went wrong."));
  43. else if (res.deletedCount !== 1) reject(new Error("Nothing was removed."));
  44. else resolve();
  45. });
  46. });
  47. }
  48. async getAll() {
  49. return new Promise(async (resolve, reject) => {
  50. try { await this._validateHook(); } catch { return; }
  51. this.convertSchemaModel.find({ }, (err, schemas) => {
  52. if (err) reject(new Error(err.message));
  53. else resolve(schemas)
  54. });
  55. });
  56. }
  57. async import(name) {
  58. return new Promise(async (resolve, reject) => {
  59. try { await this._validateHook(); } catch { return; }
  60. let schema = require(`../schemas/${name}`);
  61. this.convertSchemaModel.create(schema, (err) => {
  62. if (err) reject(new Error(err.message))
  63. else resolve();
  64. });
  65. });
  66. }
  67. }