@escapenavigator/services 2.0.32 → 2.0.34
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/dist/api/init-client-api.d.ts +0 -2
- package/dist/api/init-client-api.js +0 -2
- package/dist/api/orders-api/fast-stat.d.ts +47 -10
- package/dist/api/parse-results-api/index.d.ts +12 -0
- package/dist/api/parse-results-api/index.js +13 -0
- package/dist/api/slots-api/index.d.ts +2 -0
- package/dist/api/slots-api/index.js +2 -0
- package/dist/api/slots-api/set-resource-override.d.ts +11 -0
- package/dist/api/slots-api/set-resource-override.js +12 -0
- package/package.json +4 -4
- package/dist/api/analytics-chat-api/ask.d.ts +0 -27
- package/dist/api/analytics-chat-api/ask.js +0 -12
- package/dist/api/analytics-chat-api/index.d.ts +0 -6
- package/dist/api/analytics-chat-api/index.js +0 -7
|
@@ -6,7 +6,6 @@ import { agbApiDeclaration } from './agb-api';
|
|
|
6
6
|
import { aggregatorCompaniesApiDeclaration } from './aggregator-companies-api';
|
|
7
7
|
import { aggregatorQuestsApiDeclaration } from './aggregator-quests-api';
|
|
8
8
|
import { agregatorApiDeclaration } from './agregator-api';
|
|
9
|
-
import { analyticsChatApiDeclaration } from './analytics-chat-api';
|
|
10
9
|
import { articlesApiDeclaration } from './articles-api';
|
|
11
10
|
import { cashboxesApiDeclaration } from './cashboxes-api';
|
|
12
11
|
import { certificateDesignsApiDeclaration } from './certificate-designs-api';
|
|
@@ -173,7 +172,6 @@ export type InitApiDeclaration = {
|
|
|
173
172
|
certificateUploadsApi: Api<typeof certificateUploadsApiDeclaration>;
|
|
174
173
|
certificatesaleDiscounts: Api<typeof certificatesaleDiscountsApiDeclaration>;
|
|
175
174
|
navigatorCertificates: Api<typeof navigatorCertificateApiDeclaration>;
|
|
176
|
-
analyticsChat: Api<typeof analyticsChatApiDeclaration>;
|
|
177
175
|
coalitions: Api<typeof coalitionApiDeclaration>;
|
|
178
176
|
academy: Api<typeof academyApiDeclaration>;
|
|
179
177
|
};
|
|
@@ -9,7 +9,6 @@ var agb_api_1 = require("./agb-api");
|
|
|
9
9
|
var aggregator_companies_api_1 = require("./aggregator-companies-api");
|
|
10
10
|
var aggregator_quests_api_1 = require("./aggregator-quests-api");
|
|
11
11
|
var agregator_api_1 = require("./agregator-api");
|
|
12
|
-
var analytics_chat_api_1 = require("./analytics-chat-api");
|
|
13
12
|
var articles_api_1 = require("./articles-api");
|
|
14
13
|
var cashboxes_api_1 = require("./cashboxes-api");
|
|
15
14
|
var certificate_designs_api_1 = require("./certificate-designs-api");
|
|
@@ -177,7 +176,6 @@ var initClientApi = function (url, clientOptions) { return ({
|
|
|
177
176
|
certificatesaleDiscounts: (0, _1.initApi)(certificatesales_discounts_api_1.certificatesaleDiscountsApiDeclaration, url, clientOptions),
|
|
178
177
|
certificatesales: (0, _1.initApi)(certificatesales_api_1.certificateSalesApiDeclaration, url, clientOptions),
|
|
179
178
|
navigatorCertificates: (0, _1.initApi)(navigator_certificate_api_1.navigatorCertificateApiDeclaration, url, clientOptions),
|
|
180
|
-
analyticsChat: (0, _1.initApi)(analytics_chat_api_1.analyticsChatApiDeclaration, url, clientOptions),
|
|
181
179
|
coalitions: (0, _1.initApi)(coalition_api_1.coalitionApiDeclaration, url, clientOptions),
|
|
182
180
|
academy: (0, _1.initApi)(academy_api_1.academyApiDeclaration, url, clientOptions),
|
|
183
181
|
// subscription: initApi(subscriptionApiDeclaration, url, clientOptions),
|
|
@@ -2,20 +2,57 @@ import { QueryDto } from '@escapenavigator/types/dist/shared/query.dto';
|
|
|
2
2
|
import { ApiMethodDeclaration } from '..';
|
|
3
3
|
type ParamsData = QueryDto;
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* `
|
|
8
|
-
*
|
|
9
|
-
* по `order-upsellings` мог материализоваться полностью на жирных
|
|
10
|
-
* профилях — см. `packages/api/docs/optimization/08-order-fast-stat.md`.
|
|
5
|
+
* Поле, по которому бэк построил период агрегации: `created` — дата
|
|
6
|
+
* создания брони, `date` — дата проведения игры. Выбирается по фильтрам
|
|
7
|
+
* пользователя (`resolveFastStatPeriodField` в `OrderService`), UI
|
|
8
|
+
* обязан подписывать виджет именно этим полем.
|
|
11
9
|
*/
|
|
12
|
-
type
|
|
10
|
+
export type FastStatPeriodField = 'created' | 'date';
|
|
11
|
+
/**
|
|
12
|
+
* Период, за который посчитан (или не посчитан) виджет.
|
|
13
|
+
* `periodFrom`/`periodTo` — календарные даты `yyyy-MM-dd` в таймзоне
|
|
14
|
+
* профиля, не таймстемпы: границы суток разворачивает бэк, а UI просто
|
|
15
|
+
* печатает их как есть.
|
|
16
|
+
*/
|
|
17
|
+
type FastStatPeriod = {
|
|
18
|
+
periodField: FastStatPeriodField;
|
|
19
|
+
periodFrom: string;
|
|
20
|
+
periodTo: string;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Ответ — размеченное объединение по `periodTooWide`.
|
|
24
|
+
*
|
|
25
|
+
* Окно шире `maxDays` бэк не агрегирует вообще: цифры за последний месяц
|
|
26
|
+
* широкого диапазона выглядели бы как статистика по всей выборке из
|
|
27
|
+
* таблицы. Поэтому в этой ветке чисел нет физически — UI обязан показать
|
|
28
|
+
* вместо них просьбу сузить период, а не нули.
|
|
29
|
+
*
|
|
30
|
+
* В обычной ветке значения уже приведены к number (`fastStat` в
|
|
31
|
+
* `OrderService` конвертит `getRawOne()`-строки), а `periodDefaulted`
|
|
32
|
+
* говорит, что границы пользователь не выбирал и подпись может остаться
|
|
33
|
+
* коротким «за последние N дней». Поле `addonsTotal` убрано: UI его не
|
|
34
|
+
* показывает и подзапрос-агрегат по `order-upsellings` мог
|
|
35
|
+
* материализоваться полностью на жирных профилях — см.
|
|
36
|
+
* `packages/api/docs/optimization/08-order-fast-stat.md`.
|
|
37
|
+
*/
|
|
38
|
+
type ResponseData = FastStatPeriod & ({
|
|
39
|
+
periodTooWide: true;
|
|
40
|
+
maxDays: number;
|
|
41
|
+
} | {
|
|
42
|
+
periodTooWide: false;
|
|
43
|
+
periodDefaulted: boolean;
|
|
13
44
|
total: number;
|
|
14
45
|
happendAmountTotal: number;
|
|
15
46
|
happend: number;
|
|
47
|
+
/**
|
|
48
|
+
* Брони с игрой ещё впереди (та же выборка, `utcDate` в
|
|
49
|
+
* будущем). Нужны для окна, целиком лежащего в будущем: там
|
|
50
|
+
* `happend` честно равен нулю, и без этой пары карточка
|
|
51
|
+
* «Состоялось» показывала «0 (0 ₽)» на десятке живых броней.
|
|
52
|
+
*/
|
|
53
|
+
upcoming: number;
|
|
54
|
+
upcomingAmountTotal: number;
|
|
16
55
|
cancelled: number;
|
|
17
|
-
|
|
18
|
-
periodTo: string;
|
|
19
|
-
};
|
|
56
|
+
});
|
|
20
57
|
export declare const fastStat: ApiMethodDeclaration<ParamsData, ResponseData>;
|
|
21
58
|
export {};
|
|
@@ -8,6 +8,12 @@ declare const count: ApiMethodDeclaration<QueryDto, number>;
|
|
|
8
8
|
declare const getOne: ApiMethodDeclaration<{
|
|
9
9
|
id: number;
|
|
10
10
|
}, ParseResultRO>;
|
|
11
|
+
/** Следующая задача, ждущая проверки — чтобы не закрывать модалку. */
|
|
12
|
+
declare const next: ApiMethodDeclaration<{
|
|
13
|
+
exclude?: number;
|
|
14
|
+
}, {
|
|
15
|
+
id: number | null;
|
|
16
|
+
}>;
|
|
11
17
|
/** Кнопка «Спарсить сайт» в карточке компании. */
|
|
12
18
|
declare const enqueue: ApiMethodDeclaration<{
|
|
13
19
|
profileId: number;
|
|
@@ -40,6 +46,10 @@ declare const reject: ApiMethodDeclaration<{
|
|
|
40
46
|
}, {
|
|
41
47
|
ok: boolean;
|
|
42
48
|
}>;
|
|
49
|
+
/** Закрыть скопом все задачи «без изменений». */
|
|
50
|
+
declare const bulkMarkApplied: ApiMethodDeclaration<Record<string, never>, {
|
|
51
|
+
affected: number;
|
|
52
|
+
}>;
|
|
43
53
|
declare const retry: ApiMethodDeclaration<{
|
|
44
54
|
id: number;
|
|
45
55
|
}, {
|
|
@@ -49,11 +59,13 @@ type ApiDeclaration = {
|
|
|
49
59
|
query: typeof query;
|
|
50
60
|
count: typeof count;
|
|
51
61
|
getOne: typeof getOne;
|
|
62
|
+
next: typeof next;
|
|
52
63
|
enqueue: typeof enqueue;
|
|
53
64
|
update: typeof update;
|
|
54
65
|
rebuildDiff: typeof rebuildDiff;
|
|
55
66
|
apply: typeof apply;
|
|
56
67
|
markApplied: typeof markApplied;
|
|
68
|
+
bulkMarkApplied: typeof bulkMarkApplied;
|
|
57
69
|
reject: typeof reject;
|
|
58
70
|
retry: typeof retry;
|
|
59
71
|
};
|
|
@@ -18,6 +18,12 @@ var getOne = function (_a) {
|
|
|
18
18
|
method: 'GET',
|
|
19
19
|
});
|
|
20
20
|
};
|
|
21
|
+
/** Следующая задача, ждущая проверки — чтобы не закрывать модалку. */
|
|
22
|
+
var next = function (params) { return ({
|
|
23
|
+
url: '/parse-results/next',
|
|
24
|
+
method: 'GET',
|
|
25
|
+
params: params,
|
|
26
|
+
}); };
|
|
21
27
|
/** Кнопка «Спарсить сайт» в карточке компании. */
|
|
22
28
|
var enqueue = function (_a) {
|
|
23
29
|
var profileId = _a.profileId;
|
|
@@ -63,6 +69,11 @@ var reject = function (_a) {
|
|
|
63
69
|
method: 'POST',
|
|
64
70
|
});
|
|
65
71
|
};
|
|
72
|
+
/** Закрыть скопом все задачи «без изменений». */
|
|
73
|
+
var bulkMarkApplied = function () { return ({
|
|
74
|
+
url: '/parse-results/bulk-mark-applied',
|
|
75
|
+
method: 'POST',
|
|
76
|
+
}); };
|
|
66
77
|
var retry = function (_a) {
|
|
67
78
|
var id = _a.id;
|
|
68
79
|
return ({
|
|
@@ -74,11 +85,13 @@ exports.parseResultsApiDeclaration = {
|
|
|
74
85
|
query: query,
|
|
75
86
|
count: count,
|
|
76
87
|
getOne: getOne,
|
|
88
|
+
next: next,
|
|
77
89
|
enqueue: enqueue,
|
|
78
90
|
update: update,
|
|
79
91
|
rebuildDiff: rebuildDiff,
|
|
80
92
|
apply: apply,
|
|
81
93
|
markApplied: markApplied,
|
|
94
|
+
bulkMarkApplied: bulkMarkApplied,
|
|
82
95
|
reject: reject,
|
|
83
96
|
retry: retry,
|
|
84
97
|
};
|
|
@@ -8,6 +8,7 @@ import { forceRemoveHold } from './force-remove-hold';
|
|
|
8
8
|
import { invalidateDay } from './invalidate-day';
|
|
9
9
|
import { oneQuestroomDaySlots } from './one-questroom-day-slots';
|
|
10
10
|
import { remove } from './remove';
|
|
11
|
+
import { setSlotResourceOverride } from './set-resource-override';
|
|
11
12
|
import { slotDetails } from './slot-details';
|
|
12
13
|
import { updateBreaks } from './update-breaks';
|
|
13
14
|
import { updateSlot } from './update-slot';
|
|
@@ -21,6 +22,7 @@ type ApiDeclaration = {
|
|
|
21
22
|
invalidateDay: typeof invalidateDay;
|
|
22
23
|
oneQuestroomDaySlots: typeof oneQuestroomDaySlots;
|
|
23
24
|
addOrRemoveBreak: typeof addOrRemoveBreak;
|
|
25
|
+
setSlotResourceOverride: typeof setSlotResourceOverride;
|
|
24
26
|
create: typeof create;
|
|
25
27
|
remove: typeof remove;
|
|
26
28
|
updateSlot: typeof updateSlot;
|
|
@@ -11,6 +11,7 @@ var force_remove_hold_1 = require("./force-remove-hold");
|
|
|
11
11
|
var invalidate_day_1 = require("./invalidate-day");
|
|
12
12
|
var one_questroom_day_slots_1 = require("./one-questroom-day-slots");
|
|
13
13
|
var remove_1 = require("./remove");
|
|
14
|
+
var set_resource_override_1 = require("./set-resource-override");
|
|
14
15
|
var slot_details_1 = require("./slot-details");
|
|
15
16
|
var update_breaks_1 = require("./update-breaks");
|
|
16
17
|
var update_slot_1 = require("./update-slot");
|
|
@@ -25,6 +26,7 @@ exports.slotsApiDeclaration = {
|
|
|
25
26
|
invalidateDay: invalidate_day_1.invalidateDay,
|
|
26
27
|
oneQuestroomDaySlots: one_questroom_day_slots_1.oneQuestroomDaySlots,
|
|
27
28
|
addOrRemoveBreak: add_or_remove_break_1.addOrRemoveBreak,
|
|
29
|
+
setSlotResourceOverride: set_resource_override_1.setSlotResourceOverride,
|
|
28
30
|
create: create_1.create,
|
|
29
31
|
remove: remove_1.remove,
|
|
30
32
|
slotDetails: slot_details_1.slotDetails,
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ResponseObject } from '@escapenavigator/types/dist/shared/ro';
|
|
2
|
+
import { SuccessRO } from '@escapenavigator/types/dist/shared/success.ro';
|
|
3
|
+
import { SetSlotResourceOverrideDto } from '@escapenavigator/types/dist/slot/set-slot-resource-override.dto';
|
|
4
|
+
import { ApiMethodDeclaration } from '..';
|
|
5
|
+
type ParamsData = {
|
|
6
|
+
id: ResponseObject['id'];
|
|
7
|
+
data: SetSlotResourceOverrideDto;
|
|
8
|
+
};
|
|
9
|
+
type ResponseData = SuccessRO;
|
|
10
|
+
export declare const setSlotResourceOverride: ApiMethodDeclaration<ParamsData, ResponseData>;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.setSlotResourceOverride = void 0;
|
|
4
|
+
var setSlotResourceOverride = function (_a) {
|
|
5
|
+
var id = _a.id, data = _a.data;
|
|
6
|
+
return ({
|
|
7
|
+
url: "/slots/resource-override/".concat(id),
|
|
8
|
+
method: 'PATCH',
|
|
9
|
+
data: data,
|
|
10
|
+
});
|
|
11
|
+
};
|
|
12
|
+
exports.setSlotResourceOverride = setSlotResourceOverride;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@escapenavigator/services",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.34",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -12,10 +12,10 @@
|
|
|
12
12
|
"scripts": {
|
|
13
13
|
"build": "rm -rf dist && tsc --project tsconfig.json"
|
|
14
14
|
},
|
|
15
|
-
"gitHead": "
|
|
15
|
+
"gitHead": "e7c356a5eb4bdb5d606be29aa0e8571073d0c531",
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@escapenavigator/types": "^2.0.
|
|
18
|
-
"@escapenavigator/utils": "^2.0.
|
|
17
|
+
"@escapenavigator/types": "^2.0.32",
|
|
18
|
+
"@escapenavigator/utils": "^2.0.34",
|
|
19
19
|
"axios": "^0.21.4",
|
|
20
20
|
"class-transformer": "^0.5.1",
|
|
21
21
|
"class-validator": "^0.13.2",
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { ApiMethodDeclaration } from '..';
|
|
2
|
-
type ParamsData = {
|
|
3
|
-
data: {
|
|
4
|
-
question: string;
|
|
5
|
-
conversationId?: string;
|
|
6
|
-
};
|
|
7
|
-
};
|
|
8
|
-
export type AnalyticsChatToolCall = {
|
|
9
|
-
name: string;
|
|
10
|
-
args: Record<string, unknown>;
|
|
11
|
-
rows: number;
|
|
12
|
-
latencyMs: number;
|
|
13
|
-
error?: string;
|
|
14
|
-
};
|
|
15
|
-
export type AnalyticsChatResponse = {
|
|
16
|
-
answer: string;
|
|
17
|
-
data: Array<{
|
|
18
|
-
name: string;
|
|
19
|
-
result: unknown;
|
|
20
|
-
}>;
|
|
21
|
-
toolCalls: AnalyticsChatToolCall[];
|
|
22
|
-
promptTokens: number;
|
|
23
|
-
completionTokens: number;
|
|
24
|
-
latencyMs: number;
|
|
25
|
-
};
|
|
26
|
-
export declare const ask: ApiMethodDeclaration<ParamsData, AnalyticsChatResponse>;
|
|
27
|
-
export {};
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ask = void 0;
|
|
4
|
-
var ask = function (_a) {
|
|
5
|
-
var data = _a.data;
|
|
6
|
-
return ({
|
|
7
|
-
url: '/analytics-chat/ask',
|
|
8
|
-
method: 'POST',
|
|
9
|
-
data: data,
|
|
10
|
-
});
|
|
11
|
-
};
|
|
12
|
-
exports.ask = ask;
|