@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
- const { data: campaigns } = await http_1.default.post(`/campaigns/2673/clone`);
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 all domains list`);
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
- let payload = {
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
- const { data: campaign } = await http_1.default.put(`/campaigns/${clonedCampaign.id}`, payload);
216
- return campaign;
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.45",
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.12",
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
- const { data: campaigns } = await keitaroApi.post(`/campaigns/2673/clone`);
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 all domains list`)
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
- let payload: Partial<IKeitaroCampaign> = {
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
- const { data: campaign } = await keitaroApi.put(`/campaigns/${clonedCampaign.id}`, payload)
268
-
269
- return campaign
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> {