@bprotsyk/aso-core 2.1.45 → 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,27 +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
|
-
if (campaigns.length == 0)
|
|
202
|
-
throw Error("Campaign cloning falied");
|
|
203
|
-
let clonedCampaign = campaigns[0];
|
|
201
|
+
// Отримуємо домени перед клонуванням
|
|
204
202
|
let allDomains = await exports.KeitaroService.getDomains(true);
|
|
205
|
-
if (!allDomains) {
|
|
206
|
-
throw Error(`Failed to get
|
|
203
|
+
if (!allDomains || allDomains.length === 0) {
|
|
204
|
+
throw Error(`Failed to get active domains`);
|
|
207
205
|
}
|
|
208
206
|
const domain = allDomains[Math.floor(Math.random() * allDomains.length)];
|
|
209
|
-
|
|
207
|
+
// Створюємо базові параметри для нової кампанії
|
|
208
|
+
let campaignPayload = {
|
|
210
209
|
name: name,
|
|
211
210
|
traffic_source_id: keitaro_utils_1.TRAFFIC_SOURCE_ID_FLASH_AI,
|
|
212
211
|
domain_id: domain.id,
|
|
213
212
|
parameters: (0, keitaro_utils_1.prepareOWCampaignParameters)(app)
|
|
214
213
|
};
|
|
215
|
-
|
|
216
|
-
|
|
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
|
+
}
|
|
217
223
|
}
|
|
218
224
|
async function cloneDCampaign(app) {
|
|
219
225
|
let name = `D #${app.id} (${app.bundle})`;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bprotsyk/aso-core",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.47",
|
|
4
4
|
"main": "lib/index.js",
|
|
5
5
|
"types": "lib/index.d.ts",
|
|
6
6
|
"scripts": {
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"devDependencies": {
|
|
43
43
|
"@types/mustache": "^4.2.5",
|
|
44
44
|
"@types/node": "^20.14.12",
|
|
45
|
-
"@types/react": "^18.3.
|
|
45
|
+
"@types/react": "^18.3.18",
|
|
46
46
|
"@types/react-dom": "^18.3.0",
|
|
47
47
|
"copyfiles": "^2.4.1",
|
|
48
48
|
"typedoc": "^0.23.28",
|
|
@@ -240,33 +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
|
-
|
|
249
|
-
if (campaigns.length == 0) throw Error("Campaign cloning falied")
|
|
250
|
-
|
|
251
|
-
let clonedCampaign: IKeitaroCampaign = campaigns[0]
|
|
252
|
-
|
|
248
|
+
// Отримуємо домени перед клонуванням
|
|
253
249
|
let allDomains = await KeitaroService.getDomains(true)
|
|
254
|
-
if (!allDomains) {
|
|
255
|
-
throw Error(`Failed to get
|
|
250
|
+
if (!allDomains || allDomains.length === 0) {
|
|
251
|
+
throw Error(`Failed to get active domains`)
|
|
256
252
|
}
|
|
257
|
-
|
|
258
253
|
const domain = allDomains[Math.floor(Math.random() * allDomains.length)];
|
|
259
254
|
|
|
260
|
-
|
|
255
|
+
// Створюємо базові параметри для нової кампанії
|
|
256
|
+
let campaignPayload: Partial<IKeitaroCampaign> = {
|
|
261
257
|
name: name,
|
|
262
258
|
traffic_source_id: TRAFFIC_SOURCE_ID_FLASH_AI,
|
|
263
259
|
domain_id: domain.id,
|
|
264
260
|
parameters: prepareOWCampaignParameters(app)
|
|
265
261
|
}
|
|
266
262
|
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
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
|
+
}
|
|
270
271
|
}
|
|
271
272
|
|
|
272
273
|
async function cloneDCampaign(app: IApp): Promise<IKeitaroCampaign> {
|