@comet/brevo-api 3.0.0-canary-20240920122446 → 3.0.0-canary-20241017075628

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.
Files changed (39) hide show
  1. package/lib/brevo-api/brevo-api-campaigns.service.d.ts.map +1 -1
  2. package/lib/brevo-api/brevo-api-campaigns.service.js +152 -96
  3. package/lib/brevo-api/brevo-api-campaigns.service.js.map +1 -1
  4. package/lib/brevo-api/brevo-api-contact.service.d.ts +2 -2
  5. package/lib/brevo-api/brevo-api-contact.service.d.ts.map +1 -1
  6. package/lib/brevo-api/brevo-api-contact.service.js +158 -76
  7. package/lib/brevo-api/brevo-api-contact.service.js.map +1 -1
  8. package/lib/brevo-api/brevo-api-transactional-mails.service.d.ts.map +1 -1
  9. package/lib/brevo-api/brevo-api-transactional-mails.service.js +21 -10
  10. package/lib/brevo-api/brevo-api-transactional-mails.service.js.map +1 -1
  11. package/lib/brevo-api/brevo-api.utils.d.ts +3 -0
  12. package/lib/brevo-api/brevo-api.utils.d.ts.map +1 -1
  13. package/lib/brevo-api/brevo-api.utils.js +21 -2
  14. package/lib/brevo-api/brevo-api.utils.js.map +1 -1
  15. package/lib/brevo-contact/brevo-contact-import.console.d.ts.map +1 -1
  16. package/lib/brevo-contact/brevo-contact-import.console.js +10 -6
  17. package/lib/brevo-contact/brevo-contact-import.console.js.map +1 -1
  18. package/lib/brevo-contact/brevo-contact-import.controller.d.ts.map +1 -1
  19. package/lib/brevo-contact/brevo-contact-import.controller.js +13 -16
  20. package/lib/brevo-contact/brevo-contact-import.controller.js.map +1 -1
  21. package/lib/brevo-contact/brevo-contact-import.service.d.ts +27 -11
  22. package/lib/brevo-contact/brevo-contact-import.service.d.ts.map +1 -1
  23. package/lib/brevo-contact/brevo-contact-import.service.js +168 -77
  24. package/lib/brevo-contact/brevo-contact-import.service.js.map +1 -1
  25. package/lib/brevo-contact/brevo-contact.resolver.d.ts.map +1 -1
  26. package/lib/brevo-contact/brevo-contact.resolver.js +5 -1
  27. package/lib/brevo-contact/brevo-contact.resolver.js.map +1 -1
  28. package/lib/brevo-contact/brevo-contacts.service.d.ts +1 -2
  29. package/lib/brevo-contact/brevo-contacts.service.d.ts.map +1 -1
  30. package/lib/brevo-contact/brevo-contacts.service.js +2 -2
  31. package/lib/brevo-contact/brevo-contacts.service.js.map +1 -1
  32. package/lib/target-group/target-group.resolver.d.ts.map +1 -1
  33. package/lib/target-group/target-group.resolver.js +3 -0
  34. package/lib/target-group/target-group.resolver.js.map +1 -1
  35. package/lib/target-group/target-groups.service.d.ts.map +1 -1
  36. package/lib/target-group/target-groups.service.js +85 -50
  37. package/lib/target-group/target-groups.service.js.map +1 -1
  38. package/lib/tsconfig.build.tsbuildinfo +1 -1
  39. package/package.json +3 -1
@@ -26,6 +26,7 @@ const cms_api_1 = require("@comet/cms-api");
26
26
  const core_1 = require("@mikro-orm/core");
27
27
  const nestjs_1 = require("@mikro-orm/nestjs");
28
28
  const common_1 = require("@nestjs/common");
29
+ const brevo_api_utils_1 = require("../brevo-api/brevo-api.utils");
29
30
  const brevo_api_contact_service_1 = require("../brevo-api/brevo-api-contact.service");
30
31
  let TargetGroupsService = class TargetGroupsService {
31
32
  constructor(repository, brevoApiContactsService, entityManager) {
@@ -46,9 +47,21 @@ let TargetGroupsService = class TargetGroupsService {
46
47
  checkIfContactIsInTargetGroup(contactAttributes, filters) {
47
48
  if (filters && contactAttributes) {
48
49
  for (const [key, value] of Object.entries(filters)) {
49
- if (!value)
50
+ if (!value || value.length === 0)
50
51
  continue;
51
- if (value.includes(contactAttributes[key])) {
52
+ let isFound = false;
53
+ if (Array.isArray(contactAttributes[key])) {
54
+ for (const attribute of contactAttributes[key]) {
55
+ if (value.includes(attribute)) {
56
+ isFound = true;
57
+ break;
58
+ }
59
+ }
60
+ if (isFound) {
61
+ continue;
62
+ }
63
+ }
64
+ else if (value.includes(contactAttributes[key])) {
52
65
  continue;
53
66
  }
54
67
  return false;
@@ -59,36 +72,46 @@ let TargetGroupsService = class TargetGroupsService {
59
72
  }
60
73
  assignContactsToContactList(targetGroup, scope, filters) {
61
74
  return __awaiter(this, void 0, void 0, function* () {
62
- const mainScopeTargetGroupList = yield this.repository.findOneOrFail({ scope, isMainList: true });
63
- let offset = 0;
64
- let totalCount = 0;
65
- do {
66
- const [contacts, totalContacts] = yield this.brevoApiContactsService.findContactsByListId(mainScopeTargetGroupList.brevoId, 50, offset, scope);
67
- totalCount = totalContacts;
68
- offset += contacts.length;
69
- const contactsInContactList = [];
70
- const contactsNotInContactList = [];
71
- for (const contact of contacts) {
72
- const contactIsInTargetGroupByFilters = this.checkIfContactIsInTargetGroup(contact.attributes, filters);
73
- const manuallyAssignedTargetGroup = targetGroup.assignedContactsTargetGroupBrevoId;
74
- const contactIsManuallyAssignedToTargetGroup = manuallyAssignedTargetGroup
75
- ? contact.listIds.includes(manuallyAssignedTargetGroup)
76
- : false;
77
- if (contactIsInTargetGroupByFilters || contactIsManuallyAssignedToTargetGroup) {
78
- contactsInContactList.push(contact);
75
+ try {
76
+ const mainScopeTargetGroupList = yield this.repository.findOneOrFail({ scope, isMainList: true });
77
+ let offset = 0;
78
+ let totalCount = 0;
79
+ do {
80
+ try {
81
+ const [contacts, totalContacts] = yield this.brevoApiContactsService.findContactsByListId(mainScopeTargetGroupList.brevoId, 50, offset, scope);
82
+ totalCount = totalContacts;
83
+ offset += contacts.length;
84
+ const contactsInContactList = [];
85
+ const contactsNotInContactList = [];
86
+ for (const contact of contacts) {
87
+ const contactIsInTargetGroupByFilters = this.checkIfContactIsInTargetGroup(contact.attributes, filters);
88
+ const manuallyAssignedTargetGroup = targetGroup.assignedContactsTargetGroupBrevoId;
89
+ const contactIsManuallyAssignedToTargetGroup = manuallyAssignedTargetGroup
90
+ ? contact.listIds.includes(manuallyAssignedTargetGroup)
91
+ : false;
92
+ if (contactIsInTargetGroupByFilters || contactIsManuallyAssignedToTargetGroup) {
93
+ contactsInContactList.push(contact);
94
+ }
95
+ else {
96
+ contactsNotInContactList.push(contact);
97
+ }
98
+ }
99
+ if (contactsInContactList.length > 0) {
100
+ yield this.brevoApiContactsService.updateMultipleContacts(contactsInContactList.map((contact) => ({ id: contact.id, listIds: [targetGroup.brevoId] })), scope);
101
+ }
102
+ if (contactsNotInContactList.length > 0) {
103
+ yield this.brevoApiContactsService.updateMultipleContacts(contactsNotInContactList.map((contact) => ({ id: contact.id, unlinkListIds: [targetGroup.brevoId] })), scope);
104
+ }
79
105
  }
80
- else {
81
- contactsNotInContactList.push(contact);
106
+ catch (error) {
107
+ (0, brevo_api_utils_1.handleBrevoError)(error);
82
108
  }
83
- }
84
- if (contactsInContactList.length > 0) {
85
- yield this.brevoApiContactsService.updateMultipleContacts(contactsInContactList.map((contact) => ({ id: contact.id, listIds: [targetGroup.brevoId] })), scope);
86
- }
87
- if (contactsNotInContactList.length > 0) {
88
- yield this.brevoApiContactsService.updateMultipleContacts(contactsNotInContactList.map((contact) => ({ id: contact.id, unlinkListIds: [targetGroup.brevoId] })), scope);
89
- }
90
- } while (offset < totalCount);
91
- return true;
109
+ } while (offset < totalCount);
110
+ return true;
111
+ }
112
+ catch (error) {
113
+ (0, brevo_api_utils_1.handleBrevoError)(error);
114
+ }
92
115
  });
93
116
  }
94
117
  findTargetGroups({ offset, limit, where, }) {
@@ -99,34 +122,46 @@ let TargetGroupsService = class TargetGroupsService {
99
122
  }
100
123
  createIfNotExistMainTargetGroupForScope(scope) {
101
124
  return __awaiter(this, void 0, void 0, function* () {
102
- const mainList = yield this.repository.findOne({ scope, isMainList: true });
103
- if (mainList) {
104
- return mainList;
125
+ try {
126
+ const mainList = yield this.repository.findOne({ scope, isMainList: true });
127
+ if (mainList) {
128
+ return mainList;
129
+ }
130
+ const title = "Main list for current scope";
131
+ const brevoId = yield this.brevoApiContactsService.createBrevoContactList(title, scope);
132
+ if (brevoId) {
133
+ const mainTargetGroupForScope = this.repository.create({ title, brevoId, scope, isMainList: true });
134
+ yield this.entityManager.flush();
135
+ return mainTargetGroupForScope;
136
+ }
137
+ throw new Error("Brevo Error: Could not create contact list");
105
138
  }
106
- const title = "Main list for current scope";
107
- const brevoId = yield this.brevoApiContactsService.createBrevoContactList(title, scope);
108
- if (brevoId) {
109
- const mainTargetGroupForScope = this.repository.create({ title, brevoId, scope, isMainList: true });
110
- yield this.entityManager.flush();
111
- return mainTargetGroupForScope;
139
+ catch (error) {
140
+ (0, brevo_api_utils_1.handleBrevoError)(error);
141
+ throw error;
112
142
  }
113
- throw new Error("Brevo Error: Could not create contact list");
114
143
  });
115
144
  }
116
145
  createIfNotExistsManuallyAssignedContactsTargetGroup(targetGroup) {
117
146
  return __awaiter(this, void 0, void 0, function* () {
118
- if (targetGroup.assignedContactsTargetGroupBrevoId) {
119
- return targetGroup.assignedContactsTargetGroupBrevoId;
147
+ try {
148
+ if (targetGroup.assignedContactsTargetGroupBrevoId) {
149
+ return targetGroup.assignedContactsTargetGroupBrevoId;
150
+ }
151
+ const brevoId = yield this.brevoApiContactsService.createBrevoContactList(`Manually assigned contacts for target group ${targetGroup.brevoId}`, targetGroup.scope);
152
+ if (!brevoId) {
153
+ throw new Error("Brevo Error: Could not create target group in brevo");
154
+ }
155
+ (0, core_1.wrap)(targetGroup).assign({
156
+ assignedContactsTargetGroupBrevoId: brevoId,
157
+ });
158
+ yield this.entityManager.flush();
159
+ return brevoId;
120
160
  }
121
- const brevoId = yield this.brevoApiContactsService.createBrevoContactList(`Manually assigned contacts for target group ${targetGroup.brevoId}`, targetGroup.scope);
122
- if (!brevoId) {
123
- throw new Error("Brevo Error: Could not create target group in brevo");
161
+ catch (error) {
162
+ (0, brevo_api_utils_1.handleBrevoError)(error);
163
+ throw error;
124
164
  }
125
- (0, core_1.wrap)(targetGroup).assign({
126
- assignedContactsTargetGroupBrevoId: brevoId,
127
- });
128
- yield this.entityManager.flush();
129
- return brevoId;
130
165
  });
131
166
  }
132
167
  };
@@ -1 +1 @@
1
- {"version":3,"file":"target-groups.service.js","sourceRoot":"","sources":["../../src/target-group/target-groups.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"target-groups.service.js","sourceRoot":"","sources":["../../src/target-group/target-groups.service.ts"],"names":[],"mappings":"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"}