@bprotsyk/aso-core 2.1.108 → 2.1.110

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.
package/lib/app/app.d.ts CHANGED
@@ -133,7 +133,8 @@ export declare enum AppStatus {
133
133
  PUBLISHED = "PUBLISHED",
134
134
  MODERATION = "ACTIVE",
135
135
  REMOVED = "REMOVED",
136
- ARCHIVED = "ARCHIVED"
136
+ ARCHIVED = "ARCHIVED",
137
+ TEST = "TEST"
137
138
  }
138
139
  export interface IRemoveDataParams {
139
140
  buttonText: string;
package/lib/app/app.js CHANGED
@@ -64,6 +64,7 @@ var AppStatus;
64
64
  AppStatus["MODERATION"] = "ACTIVE";
65
65
  AppStatus["REMOVED"] = "REMOVED";
66
66
  AppStatus["ARCHIVED"] = "ARCHIVED";
67
+ AppStatus["TEST"] = "TEST";
67
68
  })(AppStatus = exports.AppStatus || (exports.AppStatus = {}));
68
69
  var IntegrationVersion;
69
70
  (function (IntegrationVersion) {
@@ -29,8 +29,12 @@ async function getTraffleOffersGroups() {
29
29
  }
30
30
  async function createGroup(name, type) {
31
31
  let allGroups = await http_1.default.get(`/groups?type=${type}`);
32
- let existingGroup = allGroups.data.find((group) => group.name == name);
32
+ // Пошук існуючої групи з різними варіантами співпадіння
33
+ let existingGroup = allGroups.data.find((group) => {
34
+ return String(group.name).trim() === String(name).trim();
35
+ });
33
36
  if (existingGroup) {
37
+ console.log(`[createGroup] Found existing group:`, existingGroup);
34
38
  return existingGroup;
35
39
  }
36
40
  try {
@@ -41,7 +45,53 @@ async function createGroup(name, type) {
41
45
  return response.data;
42
46
  }
43
47
  catch (error) {
44
- console.error("Error creating group:", error);
48
+ console.error("Error creating group:", error.message);
49
+ // Якщо група вже існує або не можемо створити, використовуємо eltrafico
50
+ if (error.response && (error.response.status === 422 || error.response.status === 403)) {
51
+ const errorData = error.response.data;
52
+ console.error("Validation error details:", errorData);
53
+ console.log(`Cannot create/access group "${name}". Trying to use "eltrafico" group...`);
54
+ // Шукаємо існуючу групу "eltrafico"
55
+ let eltraficoGroup = allGroups.data.find((group) => {
56
+ return String(group.name).toLowerCase().trim() === "eltrafico";
57
+ });
58
+ if (eltraficoGroup) {
59
+ console.log("Found existing eltrafico group:", eltraficoGroup);
60
+ return eltraficoGroup;
61
+ }
62
+ // Якщо групи "eltrafico" немає, створюємо її
63
+ console.log("Creating new eltrafico group...");
64
+ try {
65
+ const eltraficoResponse = await http_1.default.post('/groups', {
66
+ name: "eltrafico",
67
+ type: type
68
+ });
69
+ console.log("Created eltrafico group:", eltraficoResponse.data);
70
+ return eltraficoResponse.data;
71
+ }
72
+ catch (eltraficoError) {
73
+ console.error("Failed to create eltrafico group:", eltraficoError.message);
74
+ // Якщо eltrafico теж не можемо створити, можливо вона вже існує
75
+ if (eltraficoError.response && eltraficoError.response.status === 422) {
76
+ // Оновлюємо список груп і шукаємо eltrafico ще раз
77
+ const freshGroups = await http_1.default.get(`/groups?type=${type}`);
78
+ eltraficoGroup = freshGroups.data.find((group) => {
79
+ return String(group.name).toLowerCase().trim() === "eltrafico";
80
+ });
81
+ if (eltraficoGroup) {
82
+ console.log("Found eltrafico group after refresh:", eltraficoGroup);
83
+ return eltraficoGroup;
84
+ }
85
+ }
86
+ // В крайньому випадку використовуємо першу доступну групу
87
+ if (allGroups.data && allGroups.data.length > 0) {
88
+ const fallbackGroup = allGroups.data[0];
89
+ console.log(`Using first available group as last resort:`, fallbackGroup);
90
+ return fallbackGroup;
91
+ }
92
+ throw new Error(`Cannot create or access any groups for type "${type}".`);
93
+ }
94
+ }
45
95
  throw error;
46
96
  }
47
97
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bprotsyk/aso-core",
3
- "version": "2.1.108",
3
+ "version": "2.1.110",
4
4
  "main": "lib/index.js",
5
5
  "types": "lib/index.d.ts",
6
6
  "scripts": {
package/src/app/app.ts CHANGED
@@ -178,7 +178,8 @@ export enum AppStatus {
178
178
  PUBLISHED = "PUBLISHED",
179
179
  MODERATION = "ACTIVE",
180
180
  REMOVED = "REMOVED",
181
- ARCHIVED = "ARCHIVED"
181
+ ARCHIVED = "ARCHIVED",
182
+ TEST = "TEST"
182
183
  }
183
184
 
184
185
  export interface IRemoveDataParams {
@@ -65,9 +65,14 @@ async function getTraffleOffersGroups(): Promise<any[]> {
65
65
  async function createGroup(name: string, type: "campaigns" | "offers" | "landings" | "domains"): Promise<{ id: number, name: string, position: number, type: string }> {
66
66
 
67
67
  let allGroups = await keitaroApi.get(`/groups?type=${type}`)
68
- let existingGroup = allGroups.data.find((group: any) => group.name == name)
68
+
69
+ // Пошук існуючої групи з різними варіантами співпадіння
70
+ let existingGroup = allGroups.data.find((group: any) => {
71
+ return String(group.name).trim() === String(name).trim();
72
+ });
69
73
 
70
74
  if (existingGroup) {
75
+ console.log(`[createGroup] Found existing group:`, existingGroup);
71
76
  return existingGroup;
72
77
  }
73
78
 
@@ -78,8 +83,63 @@ async function createGroup(name: string, type: "campaigns" | "offers" | "landing
78
83
  });
79
84
 
80
85
  return response.data;
81
- } catch (error) {
82
- console.error("Error creating group:", error);
86
+ } catch (error: any) {
87
+ console.error("Error creating group:", error.message);
88
+
89
+ // Якщо група вже існує або не можемо створити, використовуємо eltrafico
90
+ if (error.response && (error.response.status === 422 || error.response.status === 403)) {
91
+ const errorData = error.response.data;
92
+ console.error("Validation error details:", errorData);
93
+
94
+ console.log(`Cannot create/access group "${name}". Trying to use "eltrafico" group...`);
95
+
96
+ // Шукаємо існуючу групу "eltrafico"
97
+ let eltraficoGroup = allGroups.data.find((group: any) => {
98
+ return String(group.name).toLowerCase().trim() === "eltrafico";
99
+ });
100
+
101
+ if (eltraficoGroup) {
102
+ console.log("Found existing eltrafico group:", eltraficoGroup);
103
+ return eltraficoGroup;
104
+ }
105
+
106
+ // Якщо групи "eltrafico" немає, створюємо її
107
+ console.log("Creating new eltrafico group...");
108
+ try {
109
+ const eltraficoResponse = await keitaroApi.post('/groups', {
110
+ name: "eltrafico",
111
+ type: type
112
+ });
113
+ console.log("Created eltrafico group:", eltraficoResponse.data);
114
+ return eltraficoResponse.data;
115
+ } catch (eltraficoError: any) {
116
+ console.error("Failed to create eltrafico group:", eltraficoError.message);
117
+
118
+ // Якщо eltrafico теж не можемо створити, можливо вона вже існує
119
+ if (eltraficoError.response && eltraficoError.response.status === 422) {
120
+ // Оновлюємо список груп і шукаємо eltrafico ще раз
121
+ const freshGroups = await keitaroApi.get(`/groups?type=${type}`);
122
+ eltraficoGroup = freshGroups.data.find((group: any) => {
123
+ return String(group.name).toLowerCase().trim() === "eltrafico";
124
+ });
125
+
126
+ if (eltraficoGroup) {
127
+ console.log("Found eltrafico group after refresh:", eltraficoGroup);
128
+ return eltraficoGroup;
129
+ }
130
+ }
131
+
132
+ // В крайньому випадку використовуємо першу доступну групу
133
+ if (allGroups.data && allGroups.data.length > 0) {
134
+ const fallbackGroup = allGroups.data[0];
135
+ console.log(`Using first available group as last resort:`, fallbackGroup);
136
+ return fallbackGroup;
137
+ }
138
+
139
+ throw new Error(`Cannot create or access any groups for type "${type}".`);
140
+ }
141
+ }
142
+
83
143
  throw error;
84
144
  }
85
145
  }
package/test-keitaro.js CHANGED
@@ -1,38 +1,49 @@
1
1
  const { TraffleKeitaroService } = require('./lib/network/keitaro/traffle/traffle-keitaro-service');
2
2
  const { EPlatform } = require('./lib/app/app');
3
3
 
4
- async function testClone() {
5
- try {
6
- // Тестові дані для створення кампанії
7
- const testApp = {
8
- id: 901,
9
- bundle: "com.test.app",
10
- name: "Test App",
11
- platforms: {
12
- '@': {
13
- geo: ["UA", "RU", "US"],
14
- appsflyerParams: {
15
- apiToken: "test_token"
16
- }
17
- }
18
- },
19
- domainParams: {
20
- name: "test.com"
21
- }
22
- };
23
-
24
- // Створюємо Traffle кампанію
25
- const result = await TraffleKeitaroService.cloneTraffleCampaign(
26
- testApp,
27
- EPlatform.GENERAL,
28
- true // addDefaultStreams
29
- );
4
+ // async function testClone() {
5
+ // try {
6
+ // // Тестові дані для створення кампанії
7
+ // const testApp = {
8
+ // id: 901,
9
+ // bundle: "com.test.app",
10
+ // name: "Test App",
11
+ // platforms: {
12
+ // '@': {
13
+ // geo: ["UA", "RU", "US"],
14
+ // appsflyerParams: {
15
+ // apiToken: "test_token"
16
+ // }
17
+ // }
18
+ // },
19
+ // domainParams: {
20
+ // name: "test.com"
21
+ // }
22
+ // };
23
+
24
+ // // Створюємо Traffle кампанію
25
+ // const result = await TraffleKeitaroService.cloneTraffleCampaign(
26
+ // testApp,
27
+ // EPlatform.GENERAL,
28
+ // true // addDefaultStreams
29
+ // );
30
30
 
31
- console.log('Cloned campaign:', result);
32
- console.log(`domain`, result.domain.split('/')[2])
33
- } catch (error) {
34
- console.error('Error:', error);
35
- }
31
+ // console.log('Cloned campaign:', result);
32
+ // console.log(`domain`, result.domain.split('/')[2])
33
+ // } catch (error) {
34
+ // console.error('Error:', error);
35
+ // }
36
+ // }
37
+
38
+ // testClone();
39
+
40
+
41
+
42
+
43
+ async function testC() {
44
+
45
+ const createGroup = await TraffleKeitaroService.createGroup("727", "campaigns")
46
+ console.log(`createGroup`, createGroup)
36
47
  }
37
48
 
38
- testClone();
49
+ testC()