shuttlepro-shared 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.js ADDED
@@ -0,0 +1,11 @@
1
+ const Website = require("./models/Website");
2
+ const ProductQueue = require("./models/ProductQueue");
3
+ const ColumnPreference = require("./models/ColumnPreference");
4
+ const UserPermission = require("./models/UserPermission");
5
+
6
+ module.exports = {
7
+ Website,
8
+ ProductQueue,
9
+ ColumnPreference,
10
+ UserPermission,
11
+ };
@@ -0,0 +1,59 @@
1
+ const mongoose = require("mongoose");
2
+ const { Schema } = mongoose;
3
+
4
+ const ColumnPreferenceSchema = new mongoose.Schema(
5
+ {
6
+ module: {
7
+ type: String,
8
+ default: "",
9
+ },
10
+ workspaceId: {
11
+ type: Schema.Types.ObjectId,
12
+ ref: "Workspace",
13
+ default: null,
14
+ },
15
+ createdBy: { type: Schema.Types.ObjectId, ref: "User", default: null },
16
+ columns: {
17
+ type: [String],
18
+ default: [],
19
+ },
20
+ },
21
+ { timestamps: true, toJSON: { virtuals: true }, toObject: { virtuals: true } }
22
+ );
23
+
24
+ const ColumnPreference = mongoose.model(
25
+ "ColumnPreference",
26
+ ColumnPreferenceSchema
27
+ );
28
+
29
+ const columnPreferenceByAggregation = async (aggregate) => {
30
+ try {
31
+ return await ColumnPreference.aggregate(aggregate);
32
+ } catch (err) {
33
+ return [];
34
+ }
35
+ };
36
+
37
+ const findSingleColumnPreference = async (obj) => {
38
+ try {
39
+ return await ColumnPreference.findOne(obj);
40
+ } catch (err) {
41
+ return null;
42
+ }
43
+ };
44
+
45
+ const createColumnPreference = async (obj) => {
46
+ try {
47
+ const columnPreference = new ColumnPreference(obj);
48
+ return await columnPreference.save();
49
+ } catch (err) {
50
+ return null;
51
+ }
52
+ };
53
+
54
+ module.exports = {
55
+ columnPreferenceByAggregation,
56
+ findSingleColumnPreference,
57
+ createColumnPreference,
58
+ ColumnPreference,
59
+ };
@@ -0,0 +1,20 @@
1
+ const mongoose = require("mongoose");
2
+
3
+ const ProductQueueSchema = new mongoose.Schema(
4
+ {
5
+ type: { type: String, default: "" }, // product, order
6
+ subType: { type: String, default: "" }, // product-create, variant-create
7
+ localId: { type: String, default: "" },
8
+ webId: { type: String, default: "" },
9
+ status: { type: String, default: "" },
10
+ retry: { type: Number, default: 3 },
11
+ workspaceId: { type: String, default: "" },
12
+ webhookData: { type: String, default: "" },
13
+ },
14
+ { timestamps: true, toJSON: { virtuals: true }, toObject: { virtuals: true } }
15
+ );
16
+ const ProductQueue = mongoose.model("ProductQueue", ProductQueueSchema);
17
+
18
+ module.exports = {
19
+ ProductQueue,
20
+ };
@@ -0,0 +1,37 @@
1
+ const mongoose = require("mongoose");
2
+ const { Schema } = mongoose;
3
+ const UserPermissionsSchema = new Schema(
4
+ {
5
+ userId: {
6
+ type: mongoose.Schema.Types.ObjectId,
7
+ ref: "User",
8
+ required: true,
9
+ },
10
+ workspaceId: {
11
+ type: mongoose.Schema.Types.ObjectId,
12
+ ref: "Workspace",
13
+ required: true,
14
+ },
15
+ type: {
16
+ type: String,
17
+ default: "",
18
+ },
19
+ },
20
+ { timestamps: true, toJSON: { virtuals: true }, toObject: { virtuals: true } }
21
+ );
22
+
23
+ const fields = ["module", "action", "value"];
24
+
25
+ fields.forEach((field) => {
26
+ UserPermissionsSchema.add({
27
+ [field]: {
28
+ type: String,
29
+ required: true,
30
+ default: "",
31
+ },
32
+ });
33
+ });
34
+
35
+ const UserPermission = mongoose.model("UserPermission", UserPermissionsSchema);
36
+
37
+ module.exports = UserPermission;
@@ -0,0 +1,109 @@
1
+ const mongoose = require("mongoose");
2
+
3
+ const websiteSchema = new mongoose.Schema(
4
+ {
5
+ websiteType: {
6
+ type: String,
7
+ enum: ["WOOCOMMERCE", "SHOPIFY"],
8
+ default: "",
9
+ },
10
+ accessToken: { type: String, default: "" },
11
+ url: { type: String, default: "" },
12
+ consumerKey: { type: String, default: "" },
13
+ consumerSecret: { type: String, default: "" },
14
+ workspaceId: {
15
+ type: mongoose.Schema.Types.ObjectId,
16
+ ref: "Workspace",
17
+ default: null,
18
+ },
19
+ isDeleted: { type: Boolean, default: false },
20
+ createdBy: {
21
+ type: mongoose.Schema.Types.ObjectId,
22
+ ref: "User",
23
+ default: null,
24
+ },
25
+ updatedBy: {
26
+ type: mongoose.Schema.Types.ObjectId,
27
+ ref: "User",
28
+ default: null,
29
+ },
30
+ importStatus: { type: Boolean, default: false },
31
+ mode: { type: String, default: "" },
32
+ },
33
+ { timestamps: true, toJSON: { virtuals: true }, toObject: { virtuals: true } }
34
+ );
35
+ const Website = mongoose.model("Website", websiteSchema);
36
+
37
+ const createNewWebsite = async (websiteData) => {
38
+ try {
39
+ return await Website.create(websiteData);
40
+ } catch (error) {
41
+ console.log(error);
42
+ return null;
43
+ }
44
+ };
45
+
46
+ const findWebsiteById = async (websiteId) => {
47
+ try {
48
+ return await Website.findById(websiteId);
49
+ } catch (error) {
50
+ console.log(error);
51
+ return null;
52
+ }
53
+ };
54
+
55
+ const updateWebsiteById = async (criteria, updateData, options) => {
56
+ try {
57
+ return await Website.findByIdAndUpdate(criteria, updateData, options);
58
+ } catch (error) {
59
+ console.log(error);
60
+ return null;
61
+ }
62
+ };
63
+
64
+ const deleteWebsiteById = async (websiteId) => {
65
+ try {
66
+ return await Website.findByIdAndDelete(websiteId);
67
+ } catch (error) {
68
+ console.log(error);
69
+ return null;
70
+ }
71
+ };
72
+
73
+ const findWebsite = async (criteria) => {
74
+ try {
75
+ return await Website.findOne(criteria);
76
+ } catch (error) {
77
+ console.log(error);
78
+ return null;
79
+ }
80
+ };
81
+
82
+ const findWebsites = async (criteria) => {
83
+ try {
84
+ return await Website.find(criteria);
85
+ } catch (error) {
86
+ console.log(error);
87
+ return null;
88
+ }
89
+ };
90
+
91
+ const findSingleWebsite = async (obj) => {
92
+ try {
93
+ let website = await Website.findOne(obj);
94
+ return website;
95
+ } catch (err) {
96
+ return null;
97
+ }
98
+ };
99
+
100
+ module.exports = {
101
+ createNewWebsite,
102
+ findWebsiteById,
103
+ updateWebsiteById,
104
+ deleteWebsiteById,
105
+ findWebsite,
106
+ findWebsites,
107
+ findSingleWebsite,
108
+ Website,
109
+ };
package/package.json ADDED
@@ -0,0 +1,16 @@
1
+ {
2
+ "name": "shuttlepro-shared",
3
+ "version": "1.0.0",
4
+ "description": "",
5
+ "main": "index.js",
6
+ "scripts": {
7
+ "test": "echo \"Error: no test specified\" && exit 1"
8
+ },
9
+ "keywords": [],
10
+ "author": "",
11
+ "license": "ISC",
12
+ "access": "restricted",
13
+ "dependencies": {
14
+ "mongoose": "^5.11.18"
15
+ }
16
+ }