@plusscommunities/pluss-core-aws 1.5.4 → 1.5.7-beta.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.
@@ -0,0 +1,16 @@
1
+ const getRef = require("../common/getRef");
2
+
3
+ module.exports = async (site, key) => {
4
+ return new Promise((resolve, reject) => {
5
+ getRef("sites", "Id", site)
6
+ .then((item) => {
7
+ if (item && item.Settings) {
8
+ return resolve(item.Settings[key]);
9
+ }
10
+ return resolve(undefined);
11
+ })
12
+ .catch((error) => {
13
+ return resolve(undefined);
14
+ });
15
+ });
16
+ };
@@ -1,7 +1,9 @@
1
1
  const _ = require("lodash");
2
2
  const indexQuery = require("../../db/common/indexQuery");
3
+ const getRef = require("../../db/common/getRef");
3
4
  const scanRefRecursive = require("../../db/common/scanRefRecursive");
4
5
  const userToUserPreview = require("../userToUserPreview");
6
+ const { getRowId } = require("..");
5
7
 
6
8
  const getUsers = async (site) => {
7
9
  if (site === "all") {
@@ -105,6 +107,42 @@ const getTagMatches = async (users, audienceTypeSelection, site) => {
105
107
  );
106
108
  };
107
109
 
110
+ const getEventMatches = async (users, audienceTypeSelection) => {
111
+ const logId = log("getEventMatches", "input", {
112
+ usersLength: users.length,
113
+ audienceTypeSelection,
114
+ });
115
+ let eventAudiences = [];
116
+ if (Array.isArray(audienceTypeSelection)) {
117
+ eventAudiences = _.filter(
118
+ audienceTypeSelection,
119
+ (at) => at.AudienceType === "EventAudience"
120
+ );
121
+ } else {
122
+ eventAudiences.push({ AudienceTypeSelection: audienceTypeSelection });
123
+ }
124
+
125
+ let userIds = [];
126
+
127
+ for (let i = 0; i < eventAudiences.length; i++) {
128
+ log("getEventMatches", "MatchingEventAudience", eventAudiences[i]);
129
+ const eventRep = await getRef(
130
+ "eventreps",
131
+ "RowId",
132
+ getRowId(
133
+ eventAudiences[i].AudienceTypeSelection.RowId,
134
+ eventAudiences[i].AudienceTypeSelection.RepId
135
+ )
136
+ );
137
+ if (eventRep && eventRep.Attendees) {
138
+ userIds = _.concat(userIds, Object.keys(eventRep.Attendees));
139
+ }
140
+
141
+ log("getEventMatches", "userIdsLength", userIds.length);
142
+ }
143
+ return _.filter(users, (u) => _.some(userIds, u.id));
144
+ };
145
+
108
146
  module.exports = async (
109
147
  site,
110
148
  audienceType,
@@ -138,11 +176,20 @@ module.exports = async (
138
176
  audienceTypeSelection,
139
177
  site
140
178
  );
179
+ const eventMatches = await getEventMatches(users, audienceTypeSelection);
141
180
 
142
181
  // console.log("categoryMatches", categoryMatches);
143
182
  // console.log("typeMatches", typeMatches);
144
183
  // console.log("tagMatches", tagMatches);
145
- return _.unionBy(categoryMatches, typeMatches, tagMatches, "id");
184
+ return _.unionBy(
185
+ categoryMatches,
186
+ typeMatches,
187
+ tagMatches,
188
+ eventMatches,
189
+ "id"
190
+ );
191
+ case "EventAudience":
192
+ return await getEventMatches(users, audienceTypeSelection);
146
193
  case "Category":
147
194
  return await getCategoryMatches(users, audienceTypeSelection, site);
148
195
  case "UserType":
@@ -0,0 +1,11 @@
1
+ const getSiteSetting = require("../../db/auth/getSiteSetting");
2
+
3
+ module.exports = async (site, key, expectedValue) => {
4
+ return new Promise(async (resolve) => {
5
+ if (!site) {
6
+ return resolve(false);
7
+ }
8
+ const siteSetting = await getSiteSetting(site, key);
9
+ return resolve(siteSetting === expectedValue);
10
+ });
11
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plusscommunities/pluss-core-aws",
3
- "version": "1.5.4",
3
+ "version": "1.5.7-beta.0",
4
4
  "description": "Core extension package for Pluss Communities platform",
5
5
  "scripts": {
6
6
  "betapatch": "npm version prepatch --preid=beta",