@studyportals/campaign-management-api-interface 6.0.0 → 6.0.1-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/package.json +1 -1
- package/src/campaign-management-api.client.d.ts +2 -12
- package/src/campaign-management-api.client.js +2 -138
- package/src/campaign-management-api.client.js.map +1 -1
- package/src/domain/campaign/saving/change/add-custom-products-change.d.ts +1 -1
- package/src/domain/campaign/saving/change/client-services-change.d.ts +1 -1
- package/src/domain/campaign/saving/change/crm-id-change.d.ts +1 -1
- package/src/domain/campaign/saving/change/custom-products-budget-change.d.ts +1 -1
- package/src/domain/campaign/saving/change/delivery-mode-change.d.ts +1 -1
- package/src/domain/campaign/saving/change/end-date-change.d.ts +1 -1
- package/src/domain/campaign/saving/change/extraction/add-custom-products-change-extractor.d.ts +7 -0
- package/src/domain/campaign/saving/change/extraction/add-custom-products-change-extractor.js +20 -0
- package/src/domain/campaign/saving/change/extraction/add-custom-products-change-extractor.js.map +1 -0
- package/src/domain/campaign/saving/change/extraction/changes-extractor.d.ts +12 -0
- package/src/domain/campaign/saving/change/extraction/changes-extractor.js +56 -0
- package/src/domain/campaign/saving/change/extraction/changes-extractor.js.map +1 -0
- package/src/domain/campaign/saving/change/extraction/date-change-extractor.d.ts +9 -0
- package/src/domain/campaign/saving/change/extraction/date-change-extractor.js +22 -0
- package/src/domain/campaign/saving/change/extraction/date-change-extractor.js.map +1 -0
- package/src/domain/campaign/saving/change/extraction/delivery-mode-chage-extractor.d.ts +8 -0
- package/src/domain/campaign/saving/change/extraction/delivery-mode-chage-extractor.js +25 -0
- package/src/domain/campaign/saving/change/extraction/delivery-mode-chage-extractor.js.map +1 -0
- package/src/domain/campaign/saving/change/extraction/i-change-extractor.d.ts +5 -0
- package/src/domain/campaign/saving/change/extraction/i-change-extractor.js +3 -0
- package/src/domain/campaign/saving/change/extraction/i-change-extractor.js.map +1 -0
- package/src/domain/campaign/saving/change/extraction/remove-custom-products-change-extractor.d.ts +7 -0
- package/src/domain/campaign/saving/change/extraction/remove-custom-products-change-extractor.js +22 -0
- package/src/domain/campaign/saving/change/extraction/remove-custom-products-change-extractor.js.map +1 -0
- package/src/domain/campaign/saving/change/extraction/simple-value-change-extractor.d.ts +14 -0
- package/src/domain/campaign/saving/change/extraction/simple-value-change-extractor.js +21 -0
- package/src/domain/campaign/saving/change/extraction/simple-value-change-extractor.js.map +1 -0
- package/src/domain/campaign/saving/change/extraction/update-custom-products-change-extractor.d.ts +7 -0
- package/src/domain/campaign/saving/change/extraction/update-custom-products-change-extractor.js +35 -0
- package/src/domain/campaign/saving/change/extraction/update-custom-products-change-extractor.js.map +1 -0
- package/src/domain/campaign/saving/change/handler-change.d.ts +1 -1
- package/src/domain/campaign/saving/change/listing-budget-change.d.ts +1 -1
- package/src/domain/campaign/saving/change/name-change.d.ts +1 -1
- package/src/domain/campaign/saving/change/partnership-type-change.d.ts +1 -1
- package/src/domain/campaign/saving/change/region-change.d.ts +1 -1
- package/src/domain/campaign/saving/change/remove-custom-products-change.d.ts +1 -1
- package/src/domain/campaign/saving/change/start-date-change.d.ts +1 -1
- package/src/domain/campaign/saving/change/update-custom-products-change.d.ts +1 -1
package/package.json
CHANGED
|
@@ -4,11 +4,8 @@ import { CampaignsDuplicatesDto } from "./domain/campaign/campaign-duplicates.dt
|
|
|
4
4
|
import { DuplicateCampaignDto } from "./domain/campaign/duplicate-campaign.dto";
|
|
5
5
|
import { CampaignEditorGetResultDto } from "./domain/campaign/campaign-editor-get-result.dto";
|
|
6
6
|
import { MinimalUserDto } from "./domain/users/minimal-user.dto";
|
|
7
|
-
import { CampaignListingEntityDto } from "./domain/campaign";
|
|
7
|
+
import { CampaignChange, CampaignListingEntityDto } from "./domain/campaign";
|
|
8
8
|
import { CustomProductDto } from "./domain/campaign/custom-product.dto";
|
|
9
|
-
import { OriginalCampaignDataDto } from "./domain/campaign/saving/original-campaign-data.dto";
|
|
10
|
-
import { UpdatedCampaignDataDto } from "./domain/campaign/saving/updated-campaign-data.dto";
|
|
11
|
-
import { CustomProductDataDto } from "./domain/campaign/custom-product-data.dto";
|
|
12
9
|
import { ValidationStateResponse } from "./domain/campaign/validation-state.response";
|
|
13
10
|
export declare class CampaignManagementAPIClient {
|
|
14
11
|
private readonly baseUrl;
|
|
@@ -23,14 +20,7 @@ export declare class CampaignManagementAPIClient {
|
|
|
23
20
|
getCampaignForCampaignEditor(campaignID: number, jwt?: string): Promise<CampaignEditorGetResultDto>;
|
|
24
21
|
getClientServicesUsers(jwt?: string): Promise<MinimalUserDto[]>;
|
|
25
22
|
getAccountManagers(jwt?: string): Promise<MinimalUserDto[]>;
|
|
26
|
-
saveCampaign(
|
|
27
|
-
parseCustomProductsDate<T extends CustomProductDataDto>(customProducts: T[]): (T & {
|
|
28
|
-
date: string;
|
|
29
|
-
})[];
|
|
30
|
-
parseCustomProductDate<T extends CustomProductDataDto>(customProducts: T): T & {
|
|
31
|
-
date: string;
|
|
32
|
-
};
|
|
33
|
-
private getISODate;
|
|
23
|
+
saveCampaign(campaignId: number, changes: CampaignChange[], jwt: string): Promise<void>;
|
|
34
24
|
getCustomProducts(campaignID: number, jwt?: string): Promise<CustomProductDto[]>;
|
|
35
25
|
getCampaignValidationState(campaignID: number, jwt: string): Promise<ValidationStateResponse>;
|
|
36
26
|
getCampaignListingEntities(campaignID: number, jwt: string): Promise<CampaignListingEntityDto[]>;
|
|
@@ -13,8 +13,6 @@ exports.CampaignManagementAPIClient = void 0;
|
|
|
13
13
|
require("reflect-metadata");
|
|
14
14
|
const inversify_1 = require("inversify");
|
|
15
15
|
const superagent = require("superagent");
|
|
16
|
-
const campaign_1 = require("./domain/campaign");
|
|
17
|
-
const mb_platform_date_time_1 = require("@studyportals/mb-platform-date-time");
|
|
18
16
|
let CampaignManagementAPIClient = class CampaignManagementAPIClient {
|
|
19
17
|
constructor(baseUrl) {
|
|
20
18
|
this.baseUrl = baseUrl;
|
|
@@ -85,144 +83,10 @@ let CampaignManagementAPIClient = class CampaignManagementAPIClient {
|
|
|
85
83
|
const result = await this.getRequest(path, jwt);
|
|
86
84
|
return result.body;
|
|
87
85
|
}
|
|
88
|
-
async saveCampaign(
|
|
89
|
-
const
|
|
90
|
-
const { baseCampaignData: updatedCampaign, customProducts: updatedCustomProducts } = updatedCampaignData;
|
|
91
|
-
const path = `campaigns/${originalCampaign.id}/process-changes`;
|
|
92
|
-
const changes = [];
|
|
93
|
-
const newStartDate = this.getISODate(updatedCampaign.startDate);
|
|
94
|
-
if (this.getISODate(originalCampaign.startDate) !== newStartDate) {
|
|
95
|
-
changes.push({
|
|
96
|
-
type: campaign_1.CampaignChangeEnum.START_DATE,
|
|
97
|
-
startDate: this.getISODate(updatedCampaign.startDate)
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
const newEndDate = this.getISODate(updatedCampaign.endDate);
|
|
101
|
-
if (this.getISODate(originalCampaign.endDate) !== newEndDate) {
|
|
102
|
-
changes.push({
|
|
103
|
-
type: campaign_1.CampaignChangeEnum.END_DATE,
|
|
104
|
-
endDate: this.getISODate(updatedCampaign.endDate)
|
|
105
|
-
});
|
|
106
|
-
}
|
|
107
|
-
const newName = updatedCampaign.name;
|
|
108
|
-
if (originalCampaign.name !== newName) {
|
|
109
|
-
changes.push({
|
|
110
|
-
type: campaign_1.CampaignChangeEnum.NAME,
|
|
111
|
-
name: newName
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
|
-
const newCrmId = updatedCampaign.crmId;
|
|
115
|
-
if (originalCampaign.crmId !== newCrmId) {
|
|
116
|
-
changes.push({
|
|
117
|
-
type: campaign_1.CampaignChangeEnum.CRM_ID,
|
|
118
|
-
crmId: newCrmId
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
|
-
const newRegion = updatedCampaign.region;
|
|
122
|
-
if (originalCampaign.region !== newRegion) {
|
|
123
|
-
changes.push({
|
|
124
|
-
type: campaign_1.CampaignChangeEnum.REGION,
|
|
125
|
-
region: newRegion
|
|
126
|
-
});
|
|
127
|
-
}
|
|
128
|
-
const newHandler = updatedCampaign.accountManager;
|
|
129
|
-
if (originalCampaign.accountManager !== newHandler) {
|
|
130
|
-
changes.push({
|
|
131
|
-
type: campaign_1.CampaignChangeEnum.HANDLER,
|
|
132
|
-
handlerId: newHandler
|
|
133
|
-
});
|
|
134
|
-
}
|
|
135
|
-
const newClientServices = updatedCampaign.clientServicesPerson;
|
|
136
|
-
if (originalCampaign.clientServicesPerson !== newClientServices) {
|
|
137
|
-
changes.push({
|
|
138
|
-
type: campaign_1.CampaignChangeEnum.CLIENT_SERVICES,
|
|
139
|
-
clientServicesId: newClientServices
|
|
140
|
-
});
|
|
141
|
-
}
|
|
142
|
-
const newPartnershipType = updatedCampaign.partnershipType;
|
|
143
|
-
if (originalCampaign.partnershipType !== newPartnershipType) {
|
|
144
|
-
changes.push({
|
|
145
|
-
type: campaign_1.CampaignChangeEnum.PARTNERSHIP_TYPE,
|
|
146
|
-
partnershipType: newPartnershipType
|
|
147
|
-
});
|
|
148
|
-
}
|
|
149
|
-
const newBudget = updatedCampaign.budget;
|
|
150
|
-
if (originalCampaign.budget !== newBudget) {
|
|
151
|
-
changes.push({
|
|
152
|
-
type: campaign_1.CampaignChangeEnum.LISTING_BUDGET,
|
|
153
|
-
budget: newBudget
|
|
154
|
-
});
|
|
155
|
-
}
|
|
156
|
-
const newDeliveryMode = updatedCampaign.deliveryMode;
|
|
157
|
-
if (originalCampaign.deliveryMode.type !== newDeliveryMode.type ||
|
|
158
|
-
(originalCampaign.deliveryMode.type === campaign_1.DeliveryType.CUSTOM_OVERPERFORMANCE &&
|
|
159
|
-
newDeliveryMode.type === campaign_1.DeliveryType.CUSTOM_OVERPERFORMANCE &&
|
|
160
|
-
originalCampaign.deliveryMode.overperformanceLimit !== newDeliveryMode.overperformanceLimit)) {
|
|
161
|
-
changes.push({
|
|
162
|
-
type: campaign_1.CampaignChangeEnum.DELIVERY_MODE,
|
|
163
|
-
deliveryMode: newDeliveryMode
|
|
164
|
-
});
|
|
165
|
-
}
|
|
166
|
-
const newCustomProductsBudget = updatedCampaign.customProductsBudget;
|
|
167
|
-
if (originalCampaign.customProductsBudget !== newCustomProductsBudget) {
|
|
168
|
-
changes.push({
|
|
169
|
-
type: campaign_1.CampaignChangeEnum.CUSTOM_PRODUCTS_BUDGET,
|
|
170
|
-
customProductsBudget: newCustomProductsBudget
|
|
171
|
-
});
|
|
172
|
-
}
|
|
173
|
-
const customProductsToAdd = updatedCustomProducts.filter((customProduct) => "id" in customProduct === false);
|
|
174
|
-
if (customProductsToAdd.length > 0) {
|
|
175
|
-
changes.push({
|
|
176
|
-
type: campaign_1.CampaignChangeEnum.ADD_CUSTOM_PRODUCTS,
|
|
177
|
-
customProducts: this.parseCustomProductsDate(customProductsToAdd)
|
|
178
|
-
});
|
|
179
|
-
}
|
|
180
|
-
const customProductsToUpdate = [];
|
|
181
|
-
const existingCustomProducts = updatedCustomProducts.filter((customProduct) => "id" in customProduct);
|
|
182
|
-
for (const customProduct of existingCustomProducts) {
|
|
183
|
-
const foundOriginalCustomProduct = originalCustomProducts.find((originalCustomProduct) => originalCustomProduct.id === customProduct.id);
|
|
184
|
-
if (foundOriginalCustomProduct === undefined) {
|
|
185
|
-
throw new Error(`Custom product in updated data with ID ${customProduct.id} not found in original custom products`);
|
|
186
|
-
}
|
|
187
|
-
const originalCustomProductUTCDate = mb_platform_date_time_1.UTCDateTime.fromDate(foundOriginalCustomProduct.date).toShortDateString();
|
|
188
|
-
const customProductUTCDate = mb_platform_date_time_1.UTCDateTime.fromDate(customProduct.date).toShortDateString();
|
|
189
|
-
if (originalCustomProductUTCDate !== customProductUTCDate
|
|
190
|
-
|| foundOriginalCustomProduct.productType !== customProduct.productType
|
|
191
|
-
|| foundOriginalCustomProduct.description !== customProduct.description
|
|
192
|
-
|| foundOriginalCustomProduct.name !== customProduct.name
|
|
193
|
-
|| foundOriginalCustomProduct.price !== customProduct.price) {
|
|
194
|
-
customProductsToUpdate.push(customProduct);
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
if (customProductsToUpdate.length > 0) {
|
|
198
|
-
changes.push({
|
|
199
|
-
type: campaign_1.CampaignChangeEnum.UPDATE_CUSTOM_PRODUCTS,
|
|
200
|
-
customProducts: this.parseCustomProductsDate(customProductsToUpdate)
|
|
201
|
-
});
|
|
202
|
-
}
|
|
203
|
-
const customProductsToRemove = originalCustomProducts.filter((originalCustomProduct) => !updatedCustomProducts.some((customProduct) => "id" in customProduct && customProduct.id === originalCustomProduct.id));
|
|
204
|
-
if (customProductsToRemove.length > 0) {
|
|
205
|
-
changes.push({
|
|
206
|
-
type: campaign_1.CampaignChangeEnum.REMOVE_CUSTOM_PRODUCTS,
|
|
207
|
-
customProductsIds: customProductsToRemove.map((customProduct) => customProduct.id)
|
|
208
|
-
});
|
|
209
|
-
}
|
|
86
|
+
async saveCampaign(campaignId, changes, jwt) {
|
|
87
|
+
const path = `campaigns/${campaignId}/process-changes`;
|
|
210
88
|
await this.postRequest(path, changes, jwt);
|
|
211
89
|
}
|
|
212
|
-
parseCustomProductsDate(customProducts) {
|
|
213
|
-
return customProducts.map(product => this.parseCustomProductDate(product));
|
|
214
|
-
}
|
|
215
|
-
parseCustomProductDate(customProducts) {
|
|
216
|
-
return Object.assign(Object.assign({}, customProducts), { date: mb_platform_date_time_1.UTCDateTime.fromDate(customProducts.date).toShortDateString() });
|
|
217
|
-
}
|
|
218
|
-
getISODate(date) {
|
|
219
|
-
const dayString = date.getDate() < 10 ? `0${date.getDate()}` : date.getDate();
|
|
220
|
-
const month = date.getMonth() + 1;
|
|
221
|
-
const monthString = month < 10 ? `0${month}` : month;
|
|
222
|
-
const yearString = date.getFullYear();
|
|
223
|
-
// We do not use the toISOString method because it uses UTC time, which ignores the timezone offset
|
|
224
|
-
return `${yearString}-${monthString}-${dayString}`;
|
|
225
|
-
}
|
|
226
90
|
async getCustomProducts(campaignID, jwt = '') {
|
|
227
91
|
const path = `campaigns/campaign-editor/custom-products/${campaignID}`;
|
|
228
92
|
const result = await this.getRequest(path, jwt);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"campaign-management-api.client.js","sourceRoot":"","sources":["../../src/campaign-management-api.client.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4BAA0B;AAG1B,yCAAuC;AAEvC,yCAAyC;
|
|
1
|
+
{"version":3,"file":"campaign-management-api.client.js","sourceRoot":"","sources":["../../src/campaign-management-api.client.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4BAA0B;AAG1B,yCAAuC;AAEvC,yCAAyC;AAelC,IAAM,2BAA2B,GAAjC,MAAM,2BAA2B;IACvC,YACkB,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;IAC7B,CAAC;IAEE,KAAK,CAAC,qBAAqB,CAAC,mBAA2C,EAAE,GAAG,GAAG,EAAE;QACvF,MAAM,IAAI,GAAG,0BAA0B,CAAC;QAExC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,mBAAmB,EAAE,GAAG,CAAC,CAAC;QACtE,OAAO,MAAM,CAAC,IAA4B,CAAC;IAC5C,CAAC;IAEM,KAAK,CAAC,2BAA2B,CAAC,UAAkB,EAAE,wBAAsD,EAAE,GAAG,GAAG,EAAE;QAC5H,MAAM,IAAI,GAAG,0CAA0C,CAAC;QACxD,MAAM,IAAI,GAAG;YACZ,wBAAwB;YACxB,UAAU;SACV,CAAC;QAEF,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IACzC,CAAC;IAEM,KAAK,CAAC,kCAAkC,CAAC,UAAkB,EAAE,2BAAqC,EAAE,GAAG,GAAG,EAAE;QAClH,MAAM,IAAI,GAAG,6CAA6C,CAAC;QAC3D,MAAM,IAAI,GAAG,EAAE,2BAA2B,EAAE,UAAU,EAAE,CAAC;QAEzD,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IACzC,CAAC;IAEM,KAAK,CAAC,yCAAyC,CAAC,UAAkB,EAAE,GAAG,GAAG,EAAE;QAClF,MAAM,IAAI,GAAG,4CAA4C,CAAC;QAC1D,MAAM,IAAI,GAAG,EAAE,UAAU,EAAE,CAAC;QAE5B,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IACzC,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAAC,UAAkB,EAAE,eAAyB,EAAE,QAAkB,EAAE,GAAG,GAAG,EAAE;QACxG,MAAM,IAAI,GAAG,8BAA8B,CAAC;QAC5C,MAAM,IAAI,GAAG;YACZ,eAAe;YACf,QAAQ;YACR,UAAU;SACV,CAAC;QAEF,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IACzC,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAAC,UAAkB,EAAE,eAAyB,EAAE,QAAkB,EAAE,GAAG,GAAG,EAAE;QAC1G,MAAM,IAAI,GAAG,gCAAgC,CAAC;QAC9C,MAAM,IAAI,GAAG;YACZ,eAAe;YACf,QAAQ;YACR,UAAU;SACV,CAAC;QAEF,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IACzC,CAAC;IAEM,KAAK,CAAC,sCAAsC,CAAC,eAAyB,EAAE,QAAkB,EAAE,wBAAiC,EAAE,GAAW;QAChJ,MAAM,IAAI,GAAG,8CAA8C,CAAC;QAC5D,MAAM,IAAI,GAAG;YACZ,eAAe;YACf,QAAQ;YACR,wBAAwB;SACxB,CAAC;QAEF,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IACzC,CAAC;IAEM,KAAK,CAAC,4BAA4B,CAAC,UAAkB,EAAE,GAAG,GAAG,EAAE;QACrE,MAAM,IAAI,GAAG,6BAA6B,UAAU,EAAE,CAAC;QAEvD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAEhD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAkC,CAAC;QAE3D,uCACI,QAAQ,KACX,SAAS,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EACvC,OAAO,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAClC;IACH,CAAC;IAEM,KAAK,CAAC,sBAAsB,CAAC,GAAG,GAAG,EAAE;QAC3C,MAAM,IAAI,GAAG,iCAAiC,CAAC;QAE/C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAChD,OAAO,MAAM,CAAC,IAAwB,CAAC;IACxC,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAAC,GAAG,GAAG,EAAE;QACvC,MAAM,IAAI,GAAG,4BAA4B,CAAC;QAE1C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAChD,OAAO,MAAM,CAAC,IAAwB,CAAC;IACxC,CAAC;IAEM,KAAK,CAAC,YAAY,CACxB,UAAkB,EAClB,OAAyB,EACzB,GAAW;QAEX,MAAM,IAAI,GAAG,aAAa,UAAU,kBAAkB,CAAC;QAEvD,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;IAC5C,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAAC,UAAkB,EAAE,GAAG,GAAG,EAAE;QAC1D,MAAM,IAAI,GAAG,6CAA6C,UAAU,EAAE,CAAC;QAEvE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAChD,MAAM,sBAAsB,GAAG,MAAM,CAAC,IAA0B,CAAC;QACjE,MAAM,oBAAoB,GAAuB,sBAAsB,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,EAAE;YAC7F,uCACI,aAAa,KAChB,IAAI,EAAE,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IACjC;QACH,CAAC,CAAC,CAAC;QACH,OAAO,oBAAoB,CAAC;IAC7B,CAAC;IAEM,KAAK,CAAC,0BAA0B,CAAC,UAAkB,EAAE,GAAW;QACtE,MAAM,IAAI,GAAG,aAAa,UAAU,aAAa,CAAC;QAElD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAChD,OAAO,MAAM,CAAC,IAA+B,CAAC;IAC/C,CAAC;IAEM,KAAK,CAAC,0BAA0B,CAAC,UAAkB,EAAE,GAAW;QACtE,MAAM,IAAI,GAAG,aAAa,UAAU,mBAAmB,CAAC;QAExD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAChD,OAAO,MAAM,CAAC,IAAkC,CAAC;IAClD,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,WAAmB,EAAE,EAAE,IAAqB,EAAE,MAAc,EAAE;QACvF,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;aAC1D,GAAG,CAAC,cAAc,EAAE,kBAAkB,CAAC;aACvC,GAAG,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;QAE5B,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,WAAmB,EAAE,EAAE,MAAc,EAAE;QAC/D,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;aACzD,GAAG,CAAC,cAAc,EAAE,kBAAkB,CAAC;aACvC,GAAG,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;QAC5B,OAAO,MAAM,OAAO,CAAC;IACtB,CAAC;IAEO,YAAY,CAAC,QAAgB;QACpC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,QAAQ,EAAE,CAAC;IACtC,CAAC;CACD,CAAA;AAzJY,kEAA2B;sCAA3B,2BAA2B;IADvC,IAAA,sBAAU,GAAE;;GACA,2BAA2B,CAyJvC"}
|
|
@@ -2,5 +2,5 @@ import { CustomProductDataRaw } from "../../custom-product-data.raw";
|
|
|
2
2
|
import { CampaignChangeEnum } from "../../enums/campaign-change-enum";
|
|
3
3
|
export type CampaignAddCustomProductsChange = {
|
|
4
4
|
type: CampaignChangeEnum.ADD_CUSTOM_PRODUCTS;
|
|
5
|
-
|
|
5
|
+
value: CustomProductDataRaw[];
|
|
6
6
|
};
|
|
@@ -2,5 +2,5 @@ import { CampaignChangeEnum } from "../../enums/campaign-change-enum";
|
|
|
2
2
|
import { DeliveryMode } from "../../enums/delivery-mode";
|
|
3
3
|
export type CampaignDeliveryModeChange = {
|
|
4
4
|
type: CampaignChangeEnum.DELIVERY_MODE;
|
|
5
|
-
|
|
5
|
+
value: DeliveryMode;
|
|
6
6
|
};
|
package/src/domain/campaign/saving/change/extraction/add-custom-products-change-extractor.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { CampaignAddCustomProductsChange, CustomProductDataRaw } from "../../..";
|
|
2
|
+
export declare class AddCustomProductsChangeExtractor {
|
|
3
|
+
private readonly newCustomProducts;
|
|
4
|
+
constructor(updatedCustomProducts: CustomProductDataRaw[]);
|
|
5
|
+
isDifferent(): boolean;
|
|
6
|
+
produceChange(): CampaignAddCustomProductsChange;
|
|
7
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AddCustomProductsChangeExtractor = void 0;
|
|
4
|
+
const __1 = require("../../..");
|
|
5
|
+
class AddCustomProductsChangeExtractor {
|
|
6
|
+
constructor(updatedCustomProducts) {
|
|
7
|
+
this.newCustomProducts = updatedCustomProducts.filter((customProduct) => "id" in customProduct === false);
|
|
8
|
+
}
|
|
9
|
+
isDifferent() {
|
|
10
|
+
return this.newCustomProducts.length > 0;
|
|
11
|
+
}
|
|
12
|
+
produceChange() {
|
|
13
|
+
return {
|
|
14
|
+
type: __1.CampaignChangeEnum.ADD_CUSTOM_PRODUCTS,
|
|
15
|
+
value: this.newCustomProducts
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.AddCustomProductsChangeExtractor = AddCustomProductsChangeExtractor;
|
|
20
|
+
//# sourceMappingURL=add-custom-products-change-extractor.js.map
|
package/src/domain/campaign/saving/change/extraction/add-custom-products-change-extractor.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"add-custom-products-change-extractor.js","sourceRoot":"","sources":["../../../../../../../src/domain/campaign/saving/change/extraction/add-custom-products-change-extractor.ts"],"names":[],"mappings":";;;AAAA,gCAAqG;AAErG,MAAa,gCAAgC;IAG5C,YAAY,qBAA6C;QACxD,IAAI,CAAC,iBAAiB,GAAG,qBAAqB,CAAC,MAAM,CACpD,CAAC,aAAa,EAAE,EAAE,CAAC,IAAI,IAAI,aAAa,KAAK,KAAK,CAClD,CAAC;IACH,CAAC;IAED,WAAW;QACV,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC;IAC1C,CAAC;IAED,aAAa;QACZ,OAAO;YACN,IAAI,EAAE,sBAAkB,CAAC,mBAAmB;YAC5C,KAAK,EAAE,IAAI,CAAC,iBAAiB;SAC7B,CAAC;IACH,CAAC;CACD;AAnBD,4EAmBC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { CampaignChange, CustomProductDataDto, OriginalCampaignDataDto, UpdatedCampaignDataDto } from "../../..";
|
|
2
|
+
import { IChangeExtractor } from "./i-change-extractor";
|
|
3
|
+
export declare class ChangesExtractor {
|
|
4
|
+
static setupChangeExtractors(originalCampaignData: OriginalCampaignDataDto, updatedCampaignData: UpdatedCampaignDataDto): IChangeExtractor[];
|
|
5
|
+
static extractChangesFromDifference(originalCampaignData: OriginalCampaignDataDto, updatedCampaignData: UpdatedCampaignDataDto): CampaignChange[];
|
|
6
|
+
static parseCustomProductsDate<T extends CustomProductDataDto>(customProducts: T[]): (T & {
|
|
7
|
+
date: string;
|
|
8
|
+
})[];
|
|
9
|
+
static parseCustomProductDate<T extends CustomProductDataDto>(customProducts: T): T & {
|
|
10
|
+
date: string;
|
|
11
|
+
};
|
|
12
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ChangesExtractor = void 0;
|
|
4
|
+
const mb_platform_date_time_1 = require("@studyportals/mb-platform-date-time");
|
|
5
|
+
const __1 = require("../../..");
|
|
6
|
+
const date_change_extractor_1 = require("./date-change-extractor");
|
|
7
|
+
const simple_value_change_extractor_1 = require("./simple-value-change-extractor");
|
|
8
|
+
const delivery_mode_chage_extractor_1 = require("./delivery-mode-chage-extractor");
|
|
9
|
+
const add_custom_products_change_extractor_1 = require("./add-custom-products-change-extractor");
|
|
10
|
+
const update_custom_products_change_extractor_1 = require("./update-custom-products-change-extractor");
|
|
11
|
+
const remove_custom_products_change_extractor_1 = require("./remove-custom-products-change-extractor");
|
|
12
|
+
class ChangesExtractor {
|
|
13
|
+
static setupChangeExtractors(originalCampaignData, updatedCampaignData) {
|
|
14
|
+
const { baseCampaignData: originalCampaign, customProducts: originalCustomProducts } = originalCampaignData;
|
|
15
|
+
const { baseCampaignData: updatedCampaign, customProducts: updatedCustomProducts } = updatedCampaignData;
|
|
16
|
+
const parsedUpdatedCustomProducts = this.parseCustomProductsDate(updatedCustomProducts);
|
|
17
|
+
const parsedOriginalCustomProducts = this.parseCustomProductsDate(originalCustomProducts);
|
|
18
|
+
return [
|
|
19
|
+
new date_change_extractor_1.DateChangeExtractor(originalCampaign.startDate, updatedCampaign.startDate, __1.CampaignChangeEnum.START_DATE),
|
|
20
|
+
new date_change_extractor_1.DateChangeExtractor(originalCampaign.endDate, updatedCampaign.endDate, __1.CampaignChangeEnum.END_DATE),
|
|
21
|
+
new simple_value_change_extractor_1.SimpleValueChangeExtractor(originalCampaign.name, updatedCampaign.name, __1.CampaignChangeEnum.NAME),
|
|
22
|
+
new simple_value_change_extractor_1.SimpleValueChangeExtractor(originalCampaign.crmId, updatedCampaign.crmId, __1.CampaignChangeEnum.CRM_ID),
|
|
23
|
+
new simple_value_change_extractor_1.SimpleValueChangeExtractor(originalCampaign.region, updatedCampaign.region, __1.CampaignChangeEnum.REGION),
|
|
24
|
+
new simple_value_change_extractor_1.SimpleValueChangeExtractor(originalCampaign.accountManager, updatedCampaign.accountManager, __1.CampaignChangeEnum.HANDLER),
|
|
25
|
+
new simple_value_change_extractor_1.SimpleValueChangeExtractor(originalCampaign.clientServicesPerson, updatedCampaign.clientServicesPerson, __1.CampaignChangeEnum.CLIENT_SERVICES),
|
|
26
|
+
new simple_value_change_extractor_1.SimpleValueChangeExtractor(originalCampaign.partnershipType, updatedCampaign.partnershipType, __1.CampaignChangeEnum.PARTNERSHIP_TYPE),
|
|
27
|
+
new simple_value_change_extractor_1.SimpleValueChangeExtractor(originalCampaign.budget, updatedCampaign.budget, __1.CampaignChangeEnum.LISTING_BUDGET),
|
|
28
|
+
new delivery_mode_chage_extractor_1.DeliveryModeChangeExtractor(originalCampaign.deliveryMode, updatedCampaign.deliveryMode),
|
|
29
|
+
new simple_value_change_extractor_1.SimpleValueChangeExtractor(originalCampaign.customProductsBudget, updatedCampaign.customProductsBudget, __1.CampaignChangeEnum.CUSTOM_PRODUCTS_BUDGET),
|
|
30
|
+
new add_custom_products_change_extractor_1.AddCustomProductsChangeExtractor(parsedUpdatedCustomProducts),
|
|
31
|
+
new update_custom_products_change_extractor_1.UpdateCustomProductsChangeExtractor(parsedOriginalCustomProducts, parsedUpdatedCustomProducts),
|
|
32
|
+
new remove_custom_products_change_extractor_1.RemoveCustomProductsChangeExtractor(parsedOriginalCustomProducts, parsedUpdatedCustomProducts),
|
|
33
|
+
];
|
|
34
|
+
}
|
|
35
|
+
static extractChangesFromDifference(originalCampaignData, updatedCampaignData) {
|
|
36
|
+
if (originalCampaignData.baseCampaignData.id !== updatedCampaignData.baseCampaignData.id) {
|
|
37
|
+
throw new Error("Original and updated campaign IDs do not match.");
|
|
38
|
+
}
|
|
39
|
+
const changeExtractors = this.setupChangeExtractors(originalCampaignData, updatedCampaignData);
|
|
40
|
+
const changes = [];
|
|
41
|
+
for (const changeExtractor of changeExtractors) {
|
|
42
|
+
if (changeExtractor.isDifferent()) {
|
|
43
|
+
changes.push(changeExtractor.produceChange());
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return changes;
|
|
47
|
+
}
|
|
48
|
+
static parseCustomProductsDate(customProducts) {
|
|
49
|
+
return customProducts.map(product => this.parseCustomProductDate(product));
|
|
50
|
+
}
|
|
51
|
+
static parseCustomProductDate(customProducts) {
|
|
52
|
+
return Object.assign(Object.assign({}, customProducts), { date: mb_platform_date_time_1.LocalDateTime.fromDate(customProducts.date).toShortDateString() });
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
exports.ChangesExtractor = ChangesExtractor;
|
|
56
|
+
//# sourceMappingURL=changes-extractor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"changes-extractor.js","sourceRoot":"","sources":["../../../../../../../src/domain/campaign/saving/change/extraction/changes-extractor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { CampaignChangeEnum, CampaignEndDateChange, CampaignStartDateChange } from "../../..";
|
|
2
|
+
export declare class DateChangeExtractor {
|
|
3
|
+
private readonly originalDate;
|
|
4
|
+
private readonly newDate;
|
|
5
|
+
private readonly changeType;
|
|
6
|
+
constructor(originalDate: Date, newDate: Date, changeType: CampaignChangeEnum.START_DATE | CampaignChangeEnum.END_DATE);
|
|
7
|
+
isDifferent(): boolean;
|
|
8
|
+
produceChange(): CampaignStartDateChange | CampaignEndDateChange;
|
|
9
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DateChangeExtractor = void 0;
|
|
4
|
+
const mb_platform_date_time_1 = require("@studyportals/mb-platform-date-time");
|
|
5
|
+
class DateChangeExtractor {
|
|
6
|
+
constructor(originalDate, newDate, changeType) {
|
|
7
|
+
this.originalDate = mb_platform_date_time_1.LocalDateTime.fromDate(originalDate);
|
|
8
|
+
this.newDate = mb_platform_date_time_1.LocalDateTime.fromDate(newDate);
|
|
9
|
+
this.changeType = changeType;
|
|
10
|
+
}
|
|
11
|
+
isDifferent() {
|
|
12
|
+
return !this.originalDate.equalDate(this.newDate);
|
|
13
|
+
}
|
|
14
|
+
produceChange() {
|
|
15
|
+
return {
|
|
16
|
+
type: this.changeType,
|
|
17
|
+
value: this.newDate.toShortDateString()
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.DateChangeExtractor = DateChangeExtractor;
|
|
22
|
+
//# sourceMappingURL=date-change-extractor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"date-change-extractor.js","sourceRoot":"","sources":["../../../../../../../src/domain/campaign/saving/change/extraction/date-change-extractor.ts"],"names":[],"mappings":";;;AAAA,+EAAoE;AAGpE,MAAa,mBAAmB;IAK/B,YACC,YAAkB,EAClB,OAAa,EACb,UAAuE;QAEvE,IAAI,CAAC,YAAY,GAAG,qCAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACzD,IAAI,CAAC,OAAO,GAAG,qCAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC9B,CAAC;IAED,WAAW;QACV,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnD,CAAC;IAED,aAAa;QACZ,OAAO;YACN,IAAI,EAAE,IAAI,CAAC,UAAU;YACrB,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE;SACvC,CAAC;IACH,CAAC;CACD;AAzBD,kDAyBC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { CampaignDeliveryModeChange, DeliveryMode } from "../../..";
|
|
2
|
+
export declare class DeliveryModeChangeExtractor {
|
|
3
|
+
private readonly oldDeliveryMode;
|
|
4
|
+
private readonly newDeliveryMode;
|
|
5
|
+
constructor(oldDeliveryMode: DeliveryMode, newDeliveryMode: DeliveryMode);
|
|
6
|
+
isDifferent(): boolean;
|
|
7
|
+
produceChange(): CampaignDeliveryModeChange;
|
|
8
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DeliveryModeChangeExtractor = void 0;
|
|
4
|
+
const __1 = require("../../..");
|
|
5
|
+
class DeliveryModeChangeExtractor {
|
|
6
|
+
constructor(oldDeliveryMode, newDeliveryMode) {
|
|
7
|
+
this.oldDeliveryMode = oldDeliveryMode;
|
|
8
|
+
this.newDeliveryMode = newDeliveryMode;
|
|
9
|
+
}
|
|
10
|
+
isDifferent() {
|
|
11
|
+
const differentType = this.oldDeliveryMode.type !== this.newDeliveryMode.type;
|
|
12
|
+
const differentOverperformanceLimit = this.oldDeliveryMode.type === __1.DeliveryType.CUSTOM_OVERPERFORMANCE
|
|
13
|
+
&& this.newDeliveryMode.type === __1.DeliveryType.CUSTOM_OVERPERFORMANCE
|
|
14
|
+
&& this.oldDeliveryMode.overperformanceLimit !== this.newDeliveryMode.overperformanceLimit;
|
|
15
|
+
return differentType || differentOverperformanceLimit;
|
|
16
|
+
}
|
|
17
|
+
produceChange() {
|
|
18
|
+
return {
|
|
19
|
+
type: __1.CampaignChangeEnum.DELIVERY_MODE,
|
|
20
|
+
value: this.newDeliveryMode
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.DeliveryModeChangeExtractor = DeliveryModeChangeExtractor;
|
|
25
|
+
//# sourceMappingURL=delivery-mode-chage-extractor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delivery-mode-chage-extractor.js","sourceRoot":"","sources":["../../../../../../../src/domain/campaign/saving/change/extraction/delivery-mode-chage-extractor.ts"],"names":[],"mappings":";;;AAAA,gCAAsG;AAEtG,MAAa,2BAA2B;IAIvC,YAAY,eAA6B,EAAE,eAA6B;QACvE,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;IACxC,CAAC;IAED,WAAW;QACV,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,KAAK,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;QAC9E,MAAM,6BAA6B,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,KAAK,gBAAY,CAAC,sBAAsB;eACnG,IAAI,CAAC,eAAe,CAAC,IAAI,KAAK,gBAAY,CAAC,sBAAsB;eACjE,IAAI,CAAC,eAAe,CAAC,oBAAoB,KAAK,IAAI,CAAC,eAAe,CAAC,oBAAoB,CAAC;QAC5F,OAAO,aAAa,IAAI,6BAA6B,CAAC;IACvD,CAAC;IAED,aAAa;QACZ,OAAO;YACN,IAAI,EAAE,sBAAkB,CAAC,aAAa;YACtC,KAAK,EAAE,IAAI,CAAC,eAAe;SAC3B,CAAC;IACH,CAAC;CAGD;AAzBD,kEAyBC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i-change-extractor.js","sourceRoot":"","sources":["../../../../../../../src/domain/campaign/saving/change/extraction/i-change-extractor.ts"],"names":[],"mappings":""}
|
package/src/domain/campaign/saving/change/extraction/remove-custom-products-change-extractor.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { CampaignRemoveCustomProductsChange, CustomProductDataRaw, CustomProductRaw } from "../../..";
|
|
2
|
+
export declare class RemoveCustomProductsChangeExtractor {
|
|
3
|
+
private readonly removedCustomProductsIds;
|
|
4
|
+
constructor(originalCustomProducts: CustomProductRaw[], updatedCustomProducts: (CustomProductDataRaw | CustomProductRaw)[]);
|
|
5
|
+
isDifferent(): boolean;
|
|
6
|
+
produceChange(): CampaignRemoveCustomProductsChange;
|
|
7
|
+
}
|
package/src/domain/campaign/saving/change/extraction/remove-custom-products-change-extractor.js
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RemoveCustomProductsChangeExtractor = void 0;
|
|
4
|
+
const __1 = require("../../..");
|
|
5
|
+
class RemoveCustomProductsChangeExtractor {
|
|
6
|
+
constructor(originalCustomProducts, updatedCustomProducts) {
|
|
7
|
+
const customProductsToRemove = originalCustomProducts.filter((originalCustomProduct) => !updatedCustomProducts.some((customProduct) => "id" in customProduct
|
|
8
|
+
&& customProduct.id === originalCustomProduct.id));
|
|
9
|
+
this.removedCustomProductsIds = customProductsToRemove.map((customProduct) => customProduct.id);
|
|
10
|
+
}
|
|
11
|
+
isDifferent() {
|
|
12
|
+
return this.removedCustomProductsIds.length > 0;
|
|
13
|
+
}
|
|
14
|
+
produceChange() {
|
|
15
|
+
return {
|
|
16
|
+
type: __1.CampaignChangeEnum.REMOVE_CUSTOM_PRODUCTS,
|
|
17
|
+
value: this.removedCustomProductsIds
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.RemoveCustomProductsChangeExtractor = RemoveCustomProductsChangeExtractor;
|
|
22
|
+
//# sourceMappingURL=remove-custom-products-change-extractor.js.map
|
package/src/domain/campaign/saving/change/extraction/remove-custom-products-change-extractor.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remove-custom-products-change-extractor.js","sourceRoot":"","sources":["../../../../../../../src/domain/campaign/saving/change/extraction/remove-custom-products-change-extractor.ts"],"names":[],"mappings":";;;AAAA,gCAA0H;AAE1H,MAAa,mCAAmC;IAG/C,YACC,sBAA0C,EAC1C,qBAAkE;QAElE,MAAM,sBAAsB,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC,qBAAqB,EAAE,EAAE,CACtF,CAAC,qBAAqB,CAAC,IAAI,CAC1B,CAAC,aAAa,EAAE,EAAE,CAAC,IAAI,IAAI,aAAa;eACrC,aAAa,CAAC,EAAE,KAAK,qBAAqB,CAAC,EAAE,CAChD,CACD,CAAC;QAEF,IAAI,CAAC,wBAAwB,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACjG,CAAC;IAED,WAAW;QACV,OAAO,IAAI,CAAC,wBAAwB,CAAC,MAAM,GAAG,CAAC,CAAC;IACjD,CAAC;IAED,aAAa;QACZ,OAAO;YACN,IAAI,EAAE,sBAAkB,CAAC,sBAAsB;YAC/C,KAAK,EAAE,IAAI,CAAC,wBAAwB;SACpC,CAAC;IACH,CAAC;CAGD;AA7BD,kFA6BC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { CampaignChangeEnum } from "../../..";
|
|
2
|
+
type SupportedChangeType = CampaignChangeEnum.NAME | CampaignChangeEnum.CRM_ID | CampaignChangeEnum.REGION | CampaignChangeEnum.HANDLER | CampaignChangeEnum.CLIENT_SERVICES | CampaignChangeEnum.PARTNERSHIP_TYPE | CampaignChangeEnum.LISTING_BUDGET | CampaignChangeEnum.CUSTOM_PRODUCTS_BUDGET;
|
|
3
|
+
export declare class SimpleValueChangeExtractor<T, K extends SupportedChangeType> {
|
|
4
|
+
private readonly originalValue;
|
|
5
|
+
private readonly newValue;
|
|
6
|
+
readonly changeType: K;
|
|
7
|
+
constructor(originalValue: T, newValue: T, changeType: K);
|
|
8
|
+
isDifferent(): boolean;
|
|
9
|
+
produceChange(): {
|
|
10
|
+
type: K;
|
|
11
|
+
value: T;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SimpleValueChangeExtractor = void 0;
|
|
4
|
+
class SimpleValueChangeExtractor {
|
|
5
|
+
constructor(originalValue, newValue, changeType) {
|
|
6
|
+
this.originalValue = originalValue;
|
|
7
|
+
this.newValue = newValue;
|
|
8
|
+
this.changeType = changeType;
|
|
9
|
+
}
|
|
10
|
+
isDifferent() {
|
|
11
|
+
return this.originalValue !== this.newValue;
|
|
12
|
+
}
|
|
13
|
+
produceChange() {
|
|
14
|
+
return {
|
|
15
|
+
type: this.changeType,
|
|
16
|
+
value: this.newValue
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.SimpleValueChangeExtractor = SimpleValueChangeExtractor;
|
|
21
|
+
//# sourceMappingURL=simple-value-change-extractor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"simple-value-change-extractor.js","sourceRoot":"","sources":["../../../../../../../src/domain/campaign/saving/change/extraction/simple-value-change-extractor.ts"],"names":[],"mappings":";;;AAMA,MAAa,0BAA0B;IAKtC,YACC,aAAgB,EAChB,QAAW,EACX,UAAa;QAEb,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC9B,CAAC;IAED,WAAW;QACV,OAAO,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,QAAQ,CAAC;IAC7C,CAAC;IAED,aAAa;QAIZ,OAAO;YACN,IAAI,EAAE,IAAI,CAAC,UAAU;YACrB,KAAK,EAAE,IAAI,CAAC,QAAQ;SACpB,CAAC;IACH,CAAC;CACD;AA5BD,gEA4BC"}
|
package/src/domain/campaign/saving/change/extraction/update-custom-products-change-extractor.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { CampaignUpdateCustomProductsChange, CustomProductDataRaw, CustomProductRaw } from "../../..";
|
|
2
|
+
export declare class UpdateCustomProductsChangeExtractor {
|
|
3
|
+
private readonly updatedCustomProducts;
|
|
4
|
+
constructor(originalCustomProducts: CustomProductRaw[], updatedCustomProducts: (CustomProductRaw | CustomProductDataRaw)[]);
|
|
5
|
+
isDifferent(): boolean;
|
|
6
|
+
produceChange(): CampaignUpdateCustomProductsChange;
|
|
7
|
+
}
|
package/src/domain/campaign/saving/change/extraction/update-custom-products-change-extractor.js
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UpdateCustomProductsChangeExtractor = void 0;
|
|
4
|
+
const __1 = require("../../..");
|
|
5
|
+
class UpdateCustomProductsChangeExtractor {
|
|
6
|
+
constructor(originalCustomProducts, updatedCustomProducts) {
|
|
7
|
+
this.updatedCustomProducts = [];
|
|
8
|
+
const existingCustomProducts = updatedCustomProducts.filter((customProduct) => "id" in customProduct);
|
|
9
|
+
for (const customProduct of existingCustomProducts) {
|
|
10
|
+
const foundOriginalCustomProduct = originalCustomProducts.find((originalCustomProduct) => originalCustomProduct.id === customProduct.id);
|
|
11
|
+
if (foundOriginalCustomProduct === undefined) {
|
|
12
|
+
throw new Error(`Custom product in updated data with ID ${customProduct.id} not found in original custom products`);
|
|
13
|
+
}
|
|
14
|
+
const hasProductChanged = foundOriginalCustomProduct.date !== customProduct.date
|
|
15
|
+
|| foundOriginalCustomProduct.productType !== customProduct.productType
|
|
16
|
+
|| foundOriginalCustomProduct.description !== customProduct.description
|
|
17
|
+
|| foundOriginalCustomProduct.name !== customProduct.name
|
|
18
|
+
|| foundOriginalCustomProduct.price !== customProduct.price;
|
|
19
|
+
if (hasProductChanged) {
|
|
20
|
+
this.updatedCustomProducts.push(customProduct);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
isDifferent() {
|
|
25
|
+
return this.updatedCustomProducts.length > 0;
|
|
26
|
+
}
|
|
27
|
+
produceChange() {
|
|
28
|
+
return {
|
|
29
|
+
type: __1.CampaignChangeEnum.UPDATE_CUSTOM_PRODUCTS,
|
|
30
|
+
value: this.updatedCustomProducts
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.UpdateCustomProductsChangeExtractor = UpdateCustomProductsChangeExtractor;
|
|
35
|
+
//# sourceMappingURL=update-custom-products-change-extractor.js.map
|
package/src/domain/campaign/saving/change/extraction/update-custom-products-change-extractor.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-custom-products-change-extractor.js","sourceRoot":"","sources":["../../../../../../../src/domain/campaign/saving/change/extraction/update-custom-products-change-extractor.ts"],"names":[],"mappings":";;;AAAA,gCAGkB;AAElB,MAAa,mCAAmC;IAG/C,YACC,sBAA0C,EAC1C,qBAAkE;QAElE,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;QAChC,MAAM,sBAAsB,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC,IAAI,IAAI,aAAa,CAAC,CAAC;QAEtG,KAAK,MAAM,aAAa,IAAI,sBAAsB,EAAE,CAAC;YACpD,MAAM,0BAA0B,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC,qBAAqB,EAAE,EAAE,CACxF,qBAAqB,CAAC,EAAE,KAAK,aAAa,CAAC,EAAE,CAC7C,CAAC;YAEF,IAAI,0BAA0B,KAAK,SAAS,EAAE,CAAC;gBAC9C,MAAM,IAAI,KAAK,CAAC,0CAA0C,aAAa,CAAC,EAAE,wCAAwC,CAAC,CAAC;YACrH,CAAC;YAED,MAAM,iBAAiB,GAAG,0BAA0B,CAAC,IAAI,KAAK,aAAa,CAAC,IAAI;mBAC5E,0BAA0B,CAAC,WAAW,KAAK,aAAa,CAAC,WAAW;mBACpE,0BAA0B,CAAC,WAAW,KAAK,aAAa,CAAC,WAAW;mBACpE,0BAA0B,CAAC,IAAI,KAAK,aAAa,CAAC,IAAI;mBACtD,0BAA0B,CAAC,KAAK,KAAK,aAAa,CAAC,KAAK,CAAA;YAE5D,IAAI,iBAAiB,EAAE,CAAC;gBACvB,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAChD,CAAC;QACF,CAAC;IACF,CAAC;IAED,WAAW;QACV,OAAO,IAAI,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC,CAAC;IAC9C,CAAC;IAED,aAAa;QACZ,OAAO;YACN,IAAI,EAAE,sBAAkB,CAAC,sBAAsB;YAC/C,KAAK,EAAE,IAAI,CAAC,qBAAqB;SACjC,CAAC;IACH,CAAC;CACD;AAzCD,kFAyCC"}
|
|
@@ -2,5 +2,5 @@ import { CampaignChangeEnum } from "../../enums/campaign-change-enum";
|
|
|
2
2
|
import { PartnershipType } from "../../enums/partnership-type.enum";
|
|
3
3
|
export type CampaignPartnershipTypeChange = {
|
|
4
4
|
type: CampaignChangeEnum.PARTNERSHIP_TYPE;
|
|
5
|
-
|
|
5
|
+
value: PartnershipType;
|
|
6
6
|
};
|
|
@@ -2,5 +2,5 @@ import { CustomProductRaw } from "../../custom-product.raw";
|
|
|
2
2
|
import { CampaignChangeEnum } from "../../enums/campaign-change-enum";
|
|
3
3
|
export type CampaignUpdateCustomProductsChange = {
|
|
4
4
|
type: CampaignChangeEnum.UPDATE_CUSTOM_PRODUCTS;
|
|
5
|
-
|
|
5
|
+
value: CustomProductRaw[];
|
|
6
6
|
};
|