@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
|
-
|
|
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
package/src/app/app.ts
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
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
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
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
|
-
|
|
49
|
+
testC()
|