abmp-npm 1.1.91 → 1.1.92

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.
@@ -11,7 +11,7 @@ const elevatedCreateContact = auth.elevate(contacts.createContact);
11
11
  * @param {boolean} allowDuplicates - Allow duplicates if contact with same email already exists, will be true only when handling existing members, after that should be removed
12
12
  * @returns {Promise<Object>} - Contact data
13
13
  */
14
- async function createContact(contactData, allowDuplicates = false) {
14
+ async function createSiteContact(contactData, allowDuplicates = false) {
15
15
  if (!contactData || !(contactData.contactFormEmail || contactData.email)) {
16
16
  throw new Error('Contact data is required');
17
17
  }
@@ -157,5 +157,5 @@ const updateMemberContactInfo = async (data, existingMemberData) => {
157
157
 
158
158
  module.exports = {
159
159
  updateMemberContactInfo,
160
- createContact,
160
+ createSiteContact,
161
161
  };
@@ -1,5 +1,3 @@
1
- const { COLLECTIONS } = require('../public/consts');
2
-
3
1
  const { ensureUniqueUrlsInBatch } = require('./daily-pull/bulk-process-methods');
4
2
  const { wixData } = require('./elevated-modules');
5
3
  const { bulkSaveMembers } = require('./members-data-methods');
@@ -17,14 +15,4 @@ async function deduplicateURls(collectionName, duplicateUrlsList) {
17
15
  return await bulkSaveMembers(membersWithUniqueUrls, collectionName);
18
16
  }
19
17
 
20
- async function copyContactIdToWixMemberId() {
21
- const query = wixData.query(COLLECTIONS.MEMBERS_DATA).isNotEmpty('contactId');
22
- const members = await queryAllItems(query);
23
- const updatedMembers = members.map(member => ({
24
- ...member,
25
- wixMemberId: member.contactId,
26
- }));
27
- return await bulkSaveMembers(updatedMembers, COLLECTIONS.MEMBERS_DATA);
28
- }
29
-
30
- module.exports = { deduplicateURls, copyContactIdToWixMemberId };
18
+ module.exports = { deduplicateURls };
@@ -5,7 +5,7 @@ const { decode } = require('jwt-js-decode');
5
5
  const { CONFIG_KEYS, SSO_TOKEN_AUTH_API_URL } = require('../consts');
6
6
  const { MEMBER_ACTIONS } = require('../daily-pull/consts');
7
7
  const { getCurrentMember } = require('../members-area-methods');
8
- const { getMemberByContactId, prepareMemberForSSOLogin } = require('../members-data-methods');
8
+ const { getCMSMemberByWixMemberId, prepareMemberForSSOLogin } = require('../members-data-methods');
9
9
  const {
10
10
  formatDateToMonthYear,
11
11
  getAddressDisplayOptions,
@@ -37,12 +37,12 @@ async function validateMemberToken(memberIdInput) {
37
37
  }
38
38
 
39
39
  const [dbMember, siteConfigs] = await Promise.all([
40
- getMemberByContactId(member._id),
40
+ getCMSMemberByWixMemberId(member._id),
41
41
  getSiteConfigs(),
42
42
  ]);
43
43
  const siteAssociation = siteConfigs[CONFIG_KEYS.SITE_ASSOCIATION];
44
44
  const membersExternalPortalUrl = siteConfigs[CONFIG_KEYS.MEMBERS_EXTERNAL_PORTAL_URL];
45
- console.log('dbMember by contact id is:', dbMember);
45
+ console.log('dbMember by wix member id is:', dbMember);
46
46
  console.log('member._id', member._id);
47
47
 
48
48
  if (!dbMember?._id) {
@@ -1,7 +1,7 @@
1
1
  const { COLLECTIONS } = require('../public/consts');
2
2
 
3
3
  const { MEMBERSHIPS_TYPES } = require('./consts');
4
- const { updateMemberContactInfo, createContact } = require('./contacts-methods');
4
+ const { updateMemberContactInfo, createSiteContact } = require('./contacts-methods');
5
5
  const { MEMBER_ACTIONS } = require('./daily-pull/consts');
6
6
  const { wixData } = require('./elevated-modules');
7
7
  const { createSiteMember, getCurrentMember } = require('./members-area-methods');
@@ -42,14 +42,17 @@ async function createContactAndMemberIfNew(memberData) {
42
42
  phones: memberData.phones,
43
43
  contactFormEmail: memberData.contactFormEmail || memberData.email,
44
44
  };
45
- const [wixMemberId, wixContactId] = await Promise.all([
46
- createSiteMember(toCreateMemberData),
47
- createContact(toCreateMemberData),
48
- ]);
45
+ const needsWixMember = !memberData.wixMemberId;
46
+ const needsWixContact = !memberData.wixContactId;
47
+ const createPromises = [
48
+ needsWixMember && createSiteMember(toCreateMemberData),
49
+ needsWixContact && createSiteContact(toCreateMemberData),
50
+ ].filter(Boolean);
51
+ const [newWixMemberId, newWixContactId] = await Promise.all(createPromises);
49
52
  let memberDataWithContactId = {
50
53
  ...memberData,
51
- wixMemberId,
52
- wixContactId,
54
+ wixMemberId: newWixMemberId || memberData.wixMemberId,
55
+ wixContactId: newWixContactId || memberData.wixContactId,
53
56
  };
54
57
  const updatedResult = await updateMember(memberDataWithContactId);
55
58
  memberDataWithContactId = {
@@ -173,26 +176,26 @@ async function getMemberBySlug({
173
176
  }
174
177
  }
175
178
 
176
- async function getMemberByContactId(contactId) {
177
- if (!contactId) {
178
- throw new Error('Contact ID is required');
179
+ async function getCMSMemberByWixMemberId(wixMemberId) {
180
+ if (!wixMemberId) {
181
+ throw new Error('Wix Member ID is required');
179
182
  }
180
183
  try {
181
184
  const members = await wixData
182
185
  .query(COLLECTIONS.MEMBERS_DATA)
183
- .eq('contactId', contactId)
186
+ .eq('wixMemberId', wixMemberId)
184
187
  .limit(2)
185
188
  .find()
186
189
  .then(res => res.items);
187
190
  if (members.length > 1) {
188
191
  throw new Error(
189
- `[getMemberByContactId] Multiple members found with contactId ${contactId} membersIds are : [${members.map(member => member.memberId).join(', ')}]`
192
+ `[getCMSMemberByWixMemberId] Multiple members found with wixMemberId ${wixMemberId} membersIds are : [${members.map(member => member.memberId).join(', ')}]`
190
193
  );
191
194
  }
192
195
  return members[0] || null;
193
196
  } catch (error) {
194
197
  throw new Error(
195
- `[getMemberByContactId] Failed to retrieve member by contactId ${contactId} data: ${error.message}`
198
+ `[getCMSMemberByWixMemberId] Failed to retrieve member by wixMemberId ${wixMemberId} data: ${error.message}`
196
199
  );
197
200
  }
198
201
  }
@@ -456,11 +459,11 @@ const getQAUsers = async () => {
456
459
  * @param {Object} memberData - Member data from DB
457
460
  * @returns {Promise<Object>} - Member data with contactId
458
461
  */
459
- async function ensureMemberHasContact(memberData) {
462
+ async function ensureWixMemberAndContactExist(memberData) {
460
463
  if (!memberData) {
461
464
  throw new Error('Member data is required');
462
465
  }
463
- if (!memberData.contactId) {
466
+ if (!memberData.wixContactId || !memberData.wixMemberId) {
464
467
  const memberDataWithContactId = await createContactAndMemberIfNew(memberData);
465
468
  return memberDataWithContactId;
466
469
  }
@@ -478,7 +481,7 @@ async function prepareMemberForSSOLogin(data) {
478
481
  throw new Error(`Member data not found for memberId ${memberId}`);
479
482
  }
480
483
  console.log('memberData', memberData);
481
- return await ensureMemberHasContact(memberData);
484
+ return await ensureWixMemberAndContactExist(memberData);
482
485
  } catch (error) {
483
486
  console.error('Error in prepareMemberForSSOLogin', error.message);
484
487
  throw error;
@@ -495,7 +498,7 @@ async function prepareMemberForQALogin(email) {
495
498
  throw new Error(`Member data not found for email ${email}`);
496
499
  }
497
500
  console.log('memberData', memberData);
498
- return await ensureMemberHasContact(memberData);
501
+ return await ensureWixMemberAndContactExist(memberData);
499
502
  } catch (error) {
500
503
  console.error('Error in prepareMemberForQALogin', error.message);
501
504
  throw error;
@@ -517,7 +520,7 @@ async function trackButtonClick({ pageName, buttonName }) {
517
520
  return null;
518
521
  }
519
522
 
520
- const dbMember = await getMemberByContactId(wixMember._id);
523
+ const dbMember = await getCMSMemberByWixMemberId(wixMember._id);
521
524
 
522
525
  if (!dbMember) {
523
526
  console.warn(
@@ -547,20 +550,14 @@ async function trackButtonClick({ pageName, buttonName }) {
547
550
  }
548
551
  }
549
552
 
550
- async function getAllMembersWithWixMemberId() {
551
- const membersQuery = wixData.query(COLLECTIONS.MEMBERS_DATA).isNotEmpty('wixMemberId');
552
- return await queryAllItems(membersQuery);
553
- }
554
-
555
553
  module.exports = {
556
554
  findMemberByWixDataId,
557
555
  createContactAndMemberIfNew,
558
- getAllMembersWithWixMemberId,
559
556
  saveRegistrationData,
560
557
  bulkSaveMembers,
561
558
  findMemberById,
562
559
  getMemberBySlug,
563
- getMemberByContactId,
560
+ getCMSMemberByWixMemberId,
564
561
  getAllEmptyAboutYouMembers,
565
562
  updateMember,
566
563
  getAllMembersWithExternalImages,
@@ -16,8 +16,6 @@ const TASKS_NAMES = {
16
16
  migrateUrlsChunk: 'migrateUrlsChunk',
17
17
  scheduleGenerateMissingUrls: 'scheduleGenerateMissingUrls',
18
18
  generateUrlsChunk: 'generateUrlsChunk',
19
- scheduleCreateContactsFromMembers: 'scheduleCreateContactsFromMembers',
20
- createContactsFromMembers: 'createContactsFromMembers',
21
19
  };
22
20
 
23
21
  module.exports = {
@@ -16,8 +16,6 @@ const {
16
16
  migrateContactFormEmails,
17
17
  scheduleEmailSync,
18
18
  syncMemberLoginEmails,
19
- scheduleCreateContactsFromMembers,
20
- createContactsFromMembers,
21
19
  } = require('./tasks-process-methods');
22
20
  const {
23
21
  scheduleMigrateExistingUrls,
@@ -155,20 +153,6 @@ const TASKS = {
155
153
  shouldSkipCheck: () => false,
156
154
  estimatedDurationSec: 80,
157
155
  },
158
- [TASKS_NAMES.scheduleCreateContactsFromMembers]: {
159
- name: TASKS_NAMES.scheduleCreateContactsFromMembers,
160
- getIdentifier: () => 'SHOULD_NEVER_SKIP',
161
- process: scheduleCreateContactsFromMembers,
162
- shouldSkipCheck: () => false,
163
- estimatedDurationSec: 80,
164
- },
165
- [TASKS_NAMES.createContactsFromMembers]: {
166
- name: TASKS_NAMES.createContactsFromMembers,
167
- getIdentifier: task => task.data,
168
- process: createContactsFromMembers,
169
- shouldSkipCheck: () => false,
170
- estimatedDurationSec: 80,
171
- },
172
156
  };
173
157
 
174
158
  module.exports = { TASKS };
@@ -13,8 +13,6 @@ const {
13
13
  bulkSaveMembers,
14
14
  getAllUpdatedLoginEmails,
15
15
  getMembersByIds,
16
- createContactAndMemberIfNew,
17
- getAllMembersWithWixMemberId,
18
16
  } = require('../members-data-methods');
19
17
  const {
20
18
  getCompleteStateList,
@@ -532,46 +530,6 @@ const syncMemberLoginEmails = async data => {
532
530
  throw new Error(errorMessage);
533
531
  }
534
532
  };
535
- /**
536
- * Schedules tasks to create contacts from members
537
- * dev-only task, run only once by the developers
538
- */
539
- const scheduleCreateContactsFromMembers = async () => {
540
- const members = await getAllMembersWithWixMemberId();
541
- console.log(
542
- `Starting to schedule create contacts from members tasks for ${members.length} members in chunks of 500 members`
543
- );
544
- const membersChunks = chunkArray(members, 500);
545
- for (let chunkIndex = 0; chunkIndex < membersChunks.length; chunkIndex++) {
546
- const chunk = membersChunks[chunkIndex];
547
- const toScheduleTask = {
548
- name: TASKS_NAMES.createContactsFromMembers,
549
- data: { chunk, chunkIndex },
550
- };
551
- await taskManager().schedule(toScheduleTask);
552
- console.log(`Scheduled task for chunk ${chunkIndex} with ${chunk.length} members`);
553
- }
554
- console.log(`Successfully scheduled ${membersChunks.length} tasks for ${members.length} members`);
555
- };
556
-
557
- /**
558
- * Creates contacts from members
559
- * dev-only task, run only once by the developers
560
- */
561
- const createContactsFromMembers = async data => {
562
- const { chunk, chunkIndex } = data;
563
- console.log(`Creating contacts from ${chunk.length} members in chunk ${chunkIndex}`);
564
- const createPromises = chunk.map(member => createContactAndMemberIfNew(member));
565
- const createResults = await Promise.all(createPromises);
566
- console.log(
567
- `Created ${createResults.length} contacts from ${chunk.length} members in chunk ${chunkIndex}`
568
- );
569
- const saveResult = await bulkSaveMembers(createResults);
570
- console.log(
571
- `Successfully saved ${saveResult.totalSaved} contacts from ${chunk.length} members in chunk ${chunkIndex}`
572
- );
573
- return saveResult;
574
- };
575
533
 
576
534
  module.exports = {
577
535
  scheduleTaskForEmptyAboutYouMembers,
@@ -584,6 +542,4 @@ module.exports = {
584
542
  migrateContactFormEmails,
585
543
  scheduleEmailSync,
586
544
  syncMemberLoginEmails,
587
- scheduleCreateContactsFromMembers, // run only once by the developers
588
- createContactsFromMembers,
589
545
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "abmp-npm",
3
- "version": "1.1.91",
3
+ "version": "1.1.92",
4
4
  "main": "index.js",
5
5
  "scripts": {
6
6
  "check-cycles": "madge --circular .",