complexqa_frontend_core 1.10.10 → 1.11.1

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "complexqa_frontend_core",
3
- "version": "1.10.10",
3
+ "version": "1.11.1",
4
4
  "description": "core of web ",
5
5
  "type": "module",
6
6
  "exports": {
@@ -9,6 +9,8 @@ import { TeamMemberApi } from "./team_member_api.js";
9
9
  import { TestRunApi } from "./test_run_api.js";
10
10
  import { TestRunResultApi } from "./test_run_result_api.js";
11
11
  import { UserProfileApi } from "./user_profile_api.js";
12
+ import { TaskApi } from "./task_api.js";
13
+ import { TestAccountApi } from "./test_account_api.js";
12
14
 
13
15
  /**
14
16
  * Обертка над axios
@@ -40,6 +42,7 @@ export class Api
40
42
  host_api = false;
41
43
  frontend_host = false;
42
44
  general_domain = false;
45
+ site_section = false;
43
46
 
44
47
 
45
48
  /**
@@ -88,6 +91,12 @@ export class Api
88
91
  this.dev_stage_config = init_options.dev_stage_config;
89
92
  }
90
93
 
94
+
95
+ if (init_options.site_section)
96
+ {
97
+ this.site_section = init_options.site_section;
98
+ }
99
+
91
100
  this.init_options = init_options;
92
101
  this.constructor._instance = this;
93
102
 
@@ -133,6 +142,10 @@ export class Api
133
142
  this.test_suite = new TestSuiteApi(payload);
134
143
  this.test_run = new TestRunApi(payload);
135
144
  this.test_run_result = new TestRunResultApi(payload);
136
- this.user_profile = new UserProfileApi(payload);
145
+ this.user_profile = new UserProfileApi(payload);
146
+ this.task = new TaskApi(payload);
147
+ this.test_account = new TestAccountApi(payload);
148
+
149
+
137
150
  }
138
151
  }
@@ -0,0 +1,39 @@
1
+ import { ApiAbstractElementClass } from "./api_abstract_element_class.js";
2
+ import { typeTeam } from "../types/family_elements/typeTeam.js";
3
+
4
+ /**
5
+ *
6
+ * @version v.0.1 (21/03/2026)
7
+ */
8
+ export class TaskApi extends ApiAbstractElementClass
9
+ {
10
+ module_prefix = 'task';
11
+
12
+ constructor(options)
13
+ {
14
+ super(options);
15
+ this.set_element_class_instance(typeTeam);
16
+ }
17
+
18
+
19
+
20
+ /**
21
+ *
22
+ * @version v.0.1 (21/03/2026)
23
+ * @param payload
24
+ * @returns {Promise<{payload: (*|{}), response: Promise<*>}>}
25
+ */
26
+ async get_current_user_tasks(payload = {})
27
+ {
28
+ let url = `/${ this.api_prefix }/${ this.module_prefix }/get_current_user_tasks`;
29
+
30
+ payload = this.handle_request_payload(payload);
31
+ let response = this.api_request(url, payload);
32
+ response = this.handle_response(response);
33
+
34
+ return {
35
+ response: response,
36
+ payload : payload
37
+ };
38
+ }
39
+ }
@@ -35,4 +35,25 @@ export class TeamManagementApi extends ApiAbstractElementClass
35
35
  payload : payload
36
36
  };
37
37
  }
38
+
39
+
40
+ /**
41
+ *
42
+ * @version v.0.1 (21/03/2026)
43
+ * @param payload
44
+ * @returns {Promise<{payload: (*|{}), response: Promise<*>}>}
45
+ */
46
+ async get_team_total_statistic(payload = {})
47
+ {
48
+ let url = `/${ this.api_prefix }/${ this.module_prefix }/get_team_total_statistic`;
49
+
50
+ payload = this.handle_request_payload(payload);
51
+ let response = this.api_request(url, payload);
52
+ response = this.handle_response(response);
53
+
54
+ return {
55
+ response: response,
56
+ payload : payload
57
+ };
58
+ }
38
59
  }
@@ -0,0 +1,17 @@
1
+ import { ApiAbstractElementClass } from "./api_abstract_element_class.js";
2
+ import { typeTestAccount } from "../types/family_elements/typeTestAccount.js";
3
+
4
+ /**
5
+ *
6
+ * @version v.0.1 (21/03/2026)
7
+ */
8
+ export class TestAccountApi extends ApiAbstractElementClass
9
+ {
10
+ module_prefix = 'test_account';
11
+
12
+ constructor(options)
13
+ {
14
+ super(options);
15
+ this.set_element_class_instance(typeTestAccount);
16
+ }
17
+ }
@@ -4,6 +4,7 @@ import { is_array } from "../utils/utils.js";
4
4
  import { typeTeam } from "../types/family_elements/typeTeam.js";
5
5
 
6
6
  /**
7
+ * Сервис данных по текущему пользователю
7
8
  *
8
9
  * @version v.1.1 (27/07/2025)
9
10
  */
@@ -3,6 +3,8 @@ import { is_object } from "../../utils/utils";
3
3
 
4
4
 
5
5
  /**
6
+ * Надо пересмотреть тут всё
7
+ *
6
8
  * @version v.2.0 (07/07/2024)
7
9
  */
8
10
  export class typeTask extends familyGeneralElement
@@ -11,7 +13,6 @@ export class typeTask extends familyGeneralElement
11
13
  team_id; // foreign key
12
14
  task_performer_id; // foreign key // @todo переименовать с общепринятой практикой
13
15
  task_initiator_id; // foreign key // @todo переименовать с общепринятой практикой
14
- task_type; // enum => сделать тест, выполнить тест, итд (!не дублирует предмет задания - тут тип + действие)
15
16
  task_status; // enum
16
17
  project_id; // foreign key (денормализация) (а надо ли)
17
18
  task_subject_element_type; // предмет задания
@@ -19,6 +20,7 @@ export class typeTask extends familyGeneralElement
19
20
 
20
21
 
21
22
  primary_key = 'task_id';
23
+ api_key = 'task';
22
24
 
23
25
  structure_scheme = {
24
26
  task_id : 'integer | require',
@@ -32,26 +34,6 @@ export class typeTask extends familyGeneralElement
32
34
  task_subject_id : 'integer | optional',
33
35
  };
34
36
 
35
- available_enum_values = {
36
- task_status: [ 'OPEN', 'IN_PROGRESS', 'DONE', 'CANCELLED' ],
37
- // тут будет много, все надо перечислить, чтобы просто по каждой описать свой код
38
- // и не все комбинации action + element доступны и могут существовать
39
- task_type : [
40
- 'CREATE_PROJECT_DOCUMENT',
41
- 'CREATE_FUNCTIONAL',
42
- 'CREATE_TESTCASE',
43
- 'CREATE_TEST_RUN',
44
- 'RUN_TEST_RUN'
45
- ],
46
- task_subject_element_type: [
47
- 'PROJECT',
48
- 'PROJECT_DOCUMENT',
49
- 'TEST_SUITE',
50
- 'TEST_CASE',
51
- 'TEST_RUN',
52
- 'TEST_RESULT',
53
- ],
54
- };
55
37
 
56
38
 
57
39
  /**
@@ -75,4 +57,16 @@ export class typeTask extends familyGeneralElement
75
57
 
76
58
  return this;
77
59
  }
60
+
61
+
62
+ /**
63
+ * Return collection grouped elements (search by assigned_to)
64
+ *
65
+ * @version v.0.1 (21/03/2026)
66
+ * @returns {Promise<*>}
67
+ */
68
+ async get_current_user_tasks()
69
+ {
70
+ return ApiService[ this.api_key ].get_current_user_tasks();
71
+ }
78
72
  }
@@ -28,7 +28,7 @@ export class typeTeam extends familyGeneralElement
28
28
  team_id : 'integer | require',
29
29
  team_status : 'string | enum | require',
30
30
  team_type : 'string | enum | require',
31
- price_id : 'integer | enum | require',
31
+ price_id : 'integer | enum | require',
32
32
  team_country_code: 'string | country_code | require',
33
33
  team_name : 'string | unique | require',
34
34
  team_slug : 'string | unique | require',
@@ -68,7 +68,6 @@ export class typeTeam extends familyGeneralElement
68
68
  }
69
69
 
70
70
 
71
-
72
71
  /**
73
72
  *
74
73
  * @version v.0.1 (03/02/2026)
@@ -81,7 +80,7 @@ export class typeTeam extends familyGeneralElement
81
80
  /**
82
81
  * {Api} ApiService
83
82
  */
84
- return ApiService[this.api_key].is_team_slug_available(payload).then((response) =>
83
+ return ApiService[ this.api_key ].is_team_slug_available(payload).then((response) =>
85
84
  {
86
85
  if (typeof callback?.success === 'function')
87
86
  {
@@ -102,4 +101,16 @@ export class typeTeam extends familyGeneralElement
102
101
  }
103
102
  });
104
103
  }
104
+
105
+
106
+ /**
107
+ * Return {"project":1,"test_suite":1,"test_case":1,"test_case_step":1,"test_runs":1,"team_member":1}
108
+ *
109
+ * @version v.0.1 (21/03/2026)
110
+ * @returns {Promise<object>}
111
+ */
112
+ async get_team_total_statistic()
113
+ {
114
+ return ApiService[ this.api_key ].get_team_total_statistic();
115
+ }
105
116
  }
@@ -0,0 +1,55 @@
1
+ import { familyGeneralElement } from "./0_familyGeneralElement";
2
+ import { is_object } from "../../utils/utils";
3
+
4
+ /**
5
+ * Тестовые аккаунты
6
+ *
7
+ *
8
+ * @version v.0.1 (21/03/2026)
9
+ */
10
+ export class typeTestAccount extends familyGeneralElement
11
+ {
12
+ test_account_id;
13
+ team_id;
14
+ project_id;
15
+ resource;
16
+ login;
17
+ password;
18
+ test_account_description;
19
+
20
+ primary_key = 'test_account_id';
21
+ api_key = 'test_account';
22
+
23
+ structure_scheme = {
24
+ test_account_id : 'integer | require',
25
+ project_id : 'integer | require',
26
+ team_id : 'integer | require',
27
+ resource : 'string | require',
28
+ login : 'string | require',
29
+ password : 'string | optional',
30
+ test_account_description: 'string | optional',
31
+ };
32
+
33
+
34
+ /**
35
+ *
36
+ * @param {object|false|undefined} data
37
+ */
38
+ constructor(data = false)
39
+ {
40
+ super();
41
+
42
+ if (data && is_object(data))
43
+ {
44
+ _.mapObject(data, (value, key) =>
45
+ {
46
+ if (this.hasOwnProperty(key))
47
+ {
48
+ this [ key ] = value;
49
+ }
50
+ });
51
+ }
52
+
53
+ return this;
54
+ }
55
+ }