@bprotsyk/aso-core 2.1.48 → 2.1.49

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.
@@ -192,34 +192,32 @@ async function upsertStreamToCampaign(campaign, stream) {
192
192
  }
193
193
  exports.upsertStreamToCampaign = upsertStreamToCampaign;
194
194
  async function cloneOWCampaign(app) {
195
- let name = `#${app.id} [◈]`;
196
- // Спочатку перевіряємо існуючі кампанії
197
- let allCampaigns = await getAllCampaigns();
198
- let matchingCampaign = allCampaigns.filter((c) => new RegExp(`#${app.id}.*◈`).test(c.name));
199
- if (matchingCampaign.length > 0)
200
- return matchingCampaign[0];
201
- // Отримуємо домени перед клонуванням
202
- let allDomains = await exports.KeitaroService.getDomains(true);
203
- if (!allDomains || allDomains.length === 0) {
204
- throw Error(`Failed to get active domains`);
205
- }
206
- const domain = allDomains[Math.floor(Math.random() * allDomains.length)];
207
- // Створюємо базові параметри для нової кампанії
208
- let campaignPayload = {
209
- name: name,
210
- traffic_source_id: keitaro_utils_1.TRAFFIC_SOURCE_ID_FLASH_AI,
211
- domain_id: domain.id,
212
- parameters: (0, keitaro_utils_1.prepareOWCampaignParameters)(app)
213
- };
214
- // Спробуємо створити нову кампанію замість клонування
215
195
  try {
216
- const campaign = await createCampaign(campaignPayload);
196
+ let name = `#${app.id} [◈]`;
197
+ let allCampaigns = await getAllCampaigns();
198
+ let matchingCampaign = allCampaigns.filter((c) => new RegExp(`#${app.id}.*◈`).test(c.name));
199
+ if (matchingCampaign.length > 0)
200
+ return matchingCampaign[0];
201
+ const { data: campaigns } = await http_1.default.post(`/campaigns/2673/clone`);
202
+ if (campaigns.length == 0)
203
+ throw Error("Campaign cloning falied");
204
+ let clonedCampaign = campaigns[0];
205
+ let allDomains = await exports.KeitaroService.getDomains(true);
206
+ if (!allDomains) {
207
+ throw Error(`Failed to get all domains list`);
208
+ }
209
+ const domain = allDomains[Math.floor(Math.random() * allDomains.length)];
210
+ let payload = {
211
+ name: name,
212
+ traffic_source_id: keitaro_utils_1.TRAFFIC_SOURCE_ID_FLASH_AI,
213
+ domain_id: domain.id,
214
+ parameters: (0, keitaro_utils_1.prepareOWCampaignParameters)(app)
215
+ };
216
+ const { data: campaign } = await http_1.default.put(`/campaigns/${clonedCampaign.id}`, payload);
217
217
  return campaign;
218
218
  }
219
219
  catch (error) {
220
- // Розширене логування помилки
221
220
  console.error('Campaign creation failed. Details:', {
222
- payload: campaignPayload,
223
221
  errorStatus: error.response?.status,
224
222
  errorData: error.response?.data,
225
223
  errorMessage: error.message
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bprotsyk/aso-core",
3
- "version": "2.1.48",
3
+ "version": "2.1.49",
4
4
  "main": "lib/index.js",
5
5
  "types": "lib/index.d.ts",
6
6
  "scripts": {
@@ -238,42 +238,44 @@ export async function upsertStreamToCampaign(campaign: IKeitaroCampaign, stream:
238
238
  }
239
239
 
240
240
  async function cloneOWCampaign(app: IApp): Promise<IKeitaroCampaign> {
241
+ try{
241
242
  let name = `#${app.id} [◈]`
242
243
 
243
- // Спочатку перевіряємо існуючі кампанії
244
244
  let allCampaigns = await getAllCampaigns()
245
245
  let matchingCampaign = allCampaigns.filter((c) => new RegExp(`#${app.id}.*◈`).test(c.name))
246
246
  if (matchingCampaign.length > 0) return matchingCampaign[0]
247
247
 
248
- // Отримуємо домени перед клонуванням
248
+ const { data: campaigns } = await keitaroApi.post(`/campaigns/2673/clone`);
249
+
250
+ if (campaigns.length == 0) throw Error("Campaign cloning falied")
251
+
252
+ let clonedCampaign: IKeitaroCampaign = campaigns[0]
253
+
249
254
  let allDomains = await KeitaroService.getDomains(true)
250
- if (!allDomains || allDomains.length === 0) {
251
- throw Error(`Failed to get active domains`)
255
+ if (!allDomains) {
256
+ throw Error(`Failed to get all domains list`)
252
257
  }
258
+
253
259
  const domain = allDomains[Math.floor(Math.random() * allDomains.length)];
254
260
 
255
- // Створюємо базові параметри для нової кампанії
256
- let campaignPayload: Partial<IKeitaroCampaign> = {
261
+ let payload: Partial<IKeitaroCampaign> = {
257
262
  name: name,
258
263
  traffic_source_id: TRAFFIC_SOURCE_ID_FLASH_AI,
259
264
  domain_id: domain.id,
260
265
  parameters: prepareOWCampaignParameters(app)
261
266
  }
262
267
 
263
- // Спробуємо створити нову кампанію замість клонування
264
- try {
265
- const campaign = await createCampaign(campaignPayload)
266
- return campaign
267
- } catch (error: any) {
268
- // Розширене логування помилки
269
- console.error('Campaign creation failed. Details:', {
270
- payload: campaignPayload,
268
+ const { data: campaign } = await keitaroApi.put(`/campaigns/${clonedCampaign.id}`, payload)
269
+
270
+ return campaign
271
+ } catch (error: any) {
272
+ console.error('Campaign creation failed. Details:', {
271
273
  errorStatus: error.response?.status,
272
274
  errorData: error.response?.data,
273
275
  errorMessage: error.message
274
276
  })
275
277
  throw error
276
- }
278
+ }
277
279
  }
278
280
 
279
281
  async function cloneDCampaign(app: IApp): Promise<IKeitaroCampaign> {