@bprotsyk/aso-core 2.1.46 → 2.1.48

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,39 @@ 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
- const { data: campaigns } = await http_1.default.post(`/campaigns/2673/clone`, {
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 all domains list`);
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
- let payload = {
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
- const { data: campaign } = await http_1.default.put(`/campaigns/${clonedCampaign.id}`, payload);
218
- return campaign;
214
+ // Спробуємо створити нову кампанію замість клонування
215
+ try {
216
+ const campaign = await createCampaign(campaignPayload);
217
+ return campaign;
218
+ }
219
+ catch (error) {
220
+ // Розширене логування помилки
221
+ console.error('Campaign creation failed. Details:', {
222
+ payload: campaignPayload,
223
+ errorStatus: error.response?.status,
224
+ errorData: error.response?.data,
225
+ errorMessage: error.message
226
+ });
227
+ throw error;
228
+ }
219
229
  }
220
230
  async function cloneDCampaign(app) {
221
231
  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.46",
3
+ "version": "2.1.48",
4
4
  "main": "lib/index.js",
5
5
  "types": "lib/index.d.ts",
6
6
  "scripts": {
@@ -240,35 +240,40 @@ 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
- const { data: campaigns } = await keitaroApi.post(`/campaigns/2673/clone`, {
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 all domains list`)
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
- let payload: Partial<IKeitaroCampaign> = {
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
- const { data: campaign } = await keitaroApi.put(`/campaigns/${clonedCampaign.id}`, payload)
270
-
271
- return campaign
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,
271
+ errorStatus: error.response?.status,
272
+ errorData: error.response?.data,
273
+ errorMessage: error.message
274
+ })
275
+ throw error
276
+ }
272
277
  }
273
278
 
274
279
  async function cloneDCampaign(app: IApp): Promise<IKeitaroCampaign> {