shuttlepro-shared 1.2.38 → 1.2.40
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.
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
const { UserRole } = require("../../models/UserRole");
|
|
2
|
-
const {
|
|
3
|
-
getDataFromRedisSet,
|
|
4
|
-
addArrayToRedisSet,
|
|
5
|
-
} = require("../../config/redis");
|
|
2
|
+
const { getRedisData, setRedisData } = require("../../config/redis");
|
|
6
3
|
|
|
7
4
|
const defaultSelect =
|
|
8
5
|
"iconUrl thumbUrl name productsCount ordersCount contact email address websiteUrl facebookUrl twitterUrl instagramUrl members defaultModule";
|
|
@@ -13,7 +10,12 @@ const CACHE_KEY_USER_WORKSPACE_PREFIX = "userrole_workspace_";
|
|
|
13
10
|
|
|
14
11
|
// Clear user workspace cache
|
|
15
12
|
const clearUserWorkspaceCache = async (userId) => {
|
|
16
|
-
await
|
|
13
|
+
await setRedisData(
|
|
14
|
+
`${CACHE_KEY_USER_WORKSPACE_PREFIX}${userId}`,
|
|
15
|
+
null,
|
|
16
|
+
null,
|
|
17
|
+
0
|
|
18
|
+
);
|
|
17
19
|
};
|
|
18
20
|
|
|
19
21
|
// Get cached members
|
|
@@ -23,7 +25,7 @@ const getCachedMembers = async (filter = {}) => {
|
|
|
23
25
|
? `${CACHE_KEY_ALL_MEMBERS}_${JSON.stringify(filter)}`
|
|
24
26
|
: CACHE_KEY_ALL_MEMBERS;
|
|
25
27
|
|
|
26
|
-
let members = await
|
|
28
|
+
let members = await getRedisData(cacheKey);
|
|
27
29
|
|
|
28
30
|
if (!members) {
|
|
29
31
|
members = await UserRole.find(filter)
|
|
@@ -41,7 +43,7 @@ const getCachedMembers = async (filter = {}) => {
|
|
|
41
43
|
.lean()
|
|
42
44
|
.exec();
|
|
43
45
|
|
|
44
|
-
await
|
|
46
|
+
await setRedisData(cacheKey, members, null, 0);
|
|
45
47
|
}
|
|
46
48
|
|
|
47
49
|
return members;
|
|
@@ -69,7 +71,7 @@ const updateCachedMembers = async (filter = {}) => {
|
|
|
69
71
|
.lean()
|
|
70
72
|
.exec();
|
|
71
73
|
|
|
72
|
-
await
|
|
74
|
+
await setRedisData(cacheKey, members, null, 0);
|
|
73
75
|
return members;
|
|
74
76
|
};
|
|
75
77
|
|
|
@@ -123,9 +125,7 @@ const deleteUserRole = async (id) => {
|
|
|
123
125
|
|
|
124
126
|
const findUserWorkspaces = async (userId) => {
|
|
125
127
|
const cacheKey = `${CACHE_KEY_USER_WORKSPACE_PREFIX}${userId}`;
|
|
126
|
-
|
|
127
|
-
let userRoleWithWorkspaces = await getDataFromRedisSet(cacheKey);
|
|
128
|
-
console.log(userRoleWithWorkspaces, "from cache");
|
|
128
|
+
let userRoleWithWorkspaces = await getRedisData(cacheKey);
|
|
129
129
|
if (!userRoleWithWorkspaces.length) {
|
|
130
130
|
userRoleWithWorkspaces = await UserRole.find({
|
|
131
131
|
userId: userId,
|
|
@@ -143,16 +143,17 @@ const findUserWorkspaces = async (userId) => {
|
|
|
143
143
|
})
|
|
144
144
|
.lean()
|
|
145
145
|
.exec();
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
146
|
+
userRoleWithWorkspaces = userRoleWithWorkspaces.map((ur) => {
|
|
147
|
+
return {
|
|
148
|
+
...ur?.workspaceId,
|
|
149
|
+
id: ur?.workspaceId?._id?.toString(),
|
|
150
|
+
_id: ur?.workspaceId?._id?.toString(),
|
|
151
|
+
role: ur?.roleId?.name || "",
|
|
152
|
+
permissions: ur?.roleId?.modulePermissions?.modules || [],
|
|
153
|
+
};
|
|
154
|
+
});
|
|
155
|
+
if (userRoleWithWorkspaces.length) {
|
|
156
|
+
await setRedisData(cacheKey, userRoleWithWorkspaces, null, 0);
|
|
156
157
|
}
|
|
157
158
|
}
|
|
158
159
|
return userRoleWithWorkspaces;
|
package/config/redis.js
CHANGED
|
@@ -104,46 +104,6 @@ const addDataToRedisSet = async (key, value) => {
|
|
|
104
104
|
}
|
|
105
105
|
};
|
|
106
106
|
|
|
107
|
-
const addArrayToRedisSet = async (key, value) => {
|
|
108
|
-
try {
|
|
109
|
-
await connectRedis();
|
|
110
|
-
|
|
111
|
-
const arr = Array.isArray(value) ? value : [value];
|
|
112
|
-
|
|
113
|
-
console.log(arr, "arr");
|
|
114
|
-
|
|
115
|
-
// Convert each item to string (usually JSON)
|
|
116
|
-
const stringifiedArr = arr.map((item) => JSON.stringify(item));
|
|
117
|
-
|
|
118
|
-
console.log(stringifiedArr, "stringifiedArr");
|
|
119
|
-
|
|
120
|
-
await client.sAdd(key, ...stringifiedArr);
|
|
121
|
-
return true;
|
|
122
|
-
} catch (err) {
|
|
123
|
-
console.error("Add Error:", err);
|
|
124
|
-
return false;
|
|
125
|
-
}
|
|
126
|
-
};
|
|
127
|
-
|
|
128
|
-
const getDataFromRedisSet = async (key) => {
|
|
129
|
-
try {
|
|
130
|
-
await connectRedis();
|
|
131
|
-
const values = await client.sMembers(key);
|
|
132
|
-
|
|
133
|
-
// Parse each stringified JSON back to object
|
|
134
|
-
return values.map((item) => {
|
|
135
|
-
try {
|
|
136
|
-
return JSON.parse(item);
|
|
137
|
-
} catch (e) {
|
|
138
|
-
return item; // fallback in case it's not JSON
|
|
139
|
-
}
|
|
140
|
-
});
|
|
141
|
-
} catch (err) {
|
|
142
|
-
console.error("Get Error:", err);
|
|
143
|
-
return [];
|
|
144
|
-
}
|
|
145
|
-
};
|
|
146
|
-
|
|
147
107
|
const removeDataFromRedisSet = async (key, value) => {
|
|
148
108
|
try {
|
|
149
109
|
await connectRedis();
|
|
@@ -228,6 +188,4 @@ module.exports = {
|
|
|
228
188
|
addDataToRedisSet,
|
|
229
189
|
removeDataFromRedisSet,
|
|
230
190
|
isMemberOfRedisSet,
|
|
231
|
-
getDataFromRedisSet,
|
|
232
|
-
addArrayToRedisSet,
|
|
233
191
|
};
|