@bprotsyk/aso-core 2.1.46 → 2.1.47
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.
|
@@ -193,29 +193,33 @@ async function upsertStreamToCampaign(campaign, stream) {
|
|
|
193
193
|
exports.upsertStreamToCampaign = upsertStreamToCampaign;
|
|
194
194
|
async function cloneOWCampaign(app) {
|
|
195
195
|
let name = `#${app.id} [◈]`;
|
|
196
|
+
// Спочатку перевіряємо існуючі кампанії
|
|
196
197
|
let allCampaigns = await getAllCampaigns();
|
|
197
198
|
let matchingCampaign = allCampaigns.filter((c) => new RegExp(`#${app.id}.*◈`).test(c.name));
|
|
198
199
|
if (matchingCampaign.length > 0)
|
|
199
200
|
return matchingCampaign[0];
|
|
200
|
-
|
|
201
|
-
name: name
|
|
202
|
-
});
|
|
203
|
-
if (campaigns.length == 0)
|
|
204
|
-
throw Error("Campaign cloning falied");
|
|
205
|
-
let clonedCampaign = campaigns[0];
|
|
201
|
+
// Отримуємо домени перед клонуванням
|
|
206
202
|
let allDomains = await exports.KeitaroService.getDomains(true);
|
|
207
|
-
if (!allDomains) {
|
|
208
|
-
throw Error(`Failed to get
|
|
203
|
+
if (!allDomains || allDomains.length === 0) {
|
|
204
|
+
throw Error(`Failed to get active domains`);
|
|
209
205
|
}
|
|
210
206
|
const domain = allDomains[Math.floor(Math.random() * allDomains.length)];
|
|
211
|
-
|
|
207
|
+
// Створюємо базові параметри для нової кампанії
|
|
208
|
+
let campaignPayload = {
|
|
212
209
|
name: name,
|
|
213
210
|
traffic_source_id: keitaro_utils_1.TRAFFIC_SOURCE_ID_FLASH_AI,
|
|
214
211
|
domain_id: domain.id,
|
|
215
212
|
parameters: (0, keitaro_utils_1.prepareOWCampaignParameters)(app)
|
|
216
213
|
};
|
|
217
|
-
|
|
218
|
-
|
|
214
|
+
// Спробуємо створити нову кампанію замість клонування
|
|
215
|
+
try {
|
|
216
|
+
const campaign = await createCampaign(campaignPayload);
|
|
217
|
+
return campaign;
|
|
218
|
+
}
|
|
219
|
+
catch (error) {
|
|
220
|
+
console.error('Failed to create campaign:', error);
|
|
221
|
+
throw new Error(`Failed to create campaign: ${error.message}`);
|
|
222
|
+
}
|
|
219
223
|
}
|
|
220
224
|
async function cloneDCampaign(app) {
|
|
221
225
|
let name = `D #${app.id} (${app.bundle})`;
|
package/package.json
CHANGED
|
@@ -240,35 +240,34 @@ export async function upsertStreamToCampaign(campaign: IKeitaroCampaign, stream:
|
|
|
240
240
|
async function cloneOWCampaign(app: IApp): Promise<IKeitaroCampaign> {
|
|
241
241
|
let name = `#${app.id} [◈]`
|
|
242
242
|
|
|
243
|
+
// Спочатку перевіряємо існуючі кампанії
|
|
243
244
|
let allCampaigns = await getAllCampaigns()
|
|
244
245
|
let matchingCampaign = allCampaigns.filter((c) => new RegExp(`#${app.id}.*◈`).test(c.name))
|
|
245
246
|
if (matchingCampaign.length > 0) return matchingCampaign[0]
|
|
246
247
|
|
|
247
|
-
|
|
248
|
-
name: name
|
|
249
|
-
});
|
|
250
|
-
|
|
251
|
-
if (campaigns.length == 0) throw Error("Campaign cloning falied")
|
|
252
|
-
|
|
253
|
-
let clonedCampaign: IKeitaroCampaign = campaigns[0]
|
|
254
|
-
|
|
248
|
+
// Отримуємо домени перед клонуванням
|
|
255
249
|
let allDomains = await KeitaroService.getDomains(true)
|
|
256
|
-
if (!allDomains) {
|
|
257
|
-
throw Error(`Failed to get
|
|
250
|
+
if (!allDomains || allDomains.length === 0) {
|
|
251
|
+
throw Error(`Failed to get active domains`)
|
|
258
252
|
}
|
|
259
|
-
|
|
260
253
|
const domain = allDomains[Math.floor(Math.random() * allDomains.length)];
|
|
261
254
|
|
|
262
|
-
|
|
255
|
+
// Створюємо базові параметри для нової кампанії
|
|
256
|
+
let campaignPayload: Partial<IKeitaroCampaign> = {
|
|
263
257
|
name: name,
|
|
264
258
|
traffic_source_id: TRAFFIC_SOURCE_ID_FLASH_AI,
|
|
265
259
|
domain_id: domain.id,
|
|
266
260
|
parameters: prepareOWCampaignParameters(app)
|
|
267
261
|
}
|
|
268
262
|
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
263
|
+
// Спробуємо створити нову кампанію замість клонування
|
|
264
|
+
try {
|
|
265
|
+
const campaign = await createCampaign(campaignPayload)
|
|
266
|
+
return campaign
|
|
267
|
+
} catch (error: any) {
|
|
268
|
+
console.error('Failed to create campaign:', error)
|
|
269
|
+
throw new Error(`Failed to create campaign: ${error.message}`)
|
|
270
|
+
}
|
|
272
271
|
}
|
|
273
272
|
|
|
274
273
|
async function cloneDCampaign(app: IApp): Promise<IKeitaroCampaign> {
|