@aepstore-dev/contracts 1.68.0 → 1.69.0
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/gen/activity.ts +270 -270
- package/gen/auth.ts +323 -323
- package/gen/mail.ts +121 -121
- package/gen/payments.ts +1048 -1048
- package/gen/support.d.ts +39 -2
- package/gen/support.js +2 -0
- package/gen/support.ts +53 -4
- package/gen/taxonomy.ts +185 -185
- package/gen/upload.ts +287 -287
- package/gen/users.ts +1026 -1026
- package/package.json +1 -1
- package/proto/support.proto +46 -11
package/gen/support.d.ts
CHANGED
|
@@ -39,6 +39,9 @@ export interface Ticket {
|
|
|
39
39
|
rating: number;
|
|
40
40
|
/** true if the current user has already reported it */
|
|
41
41
|
hasComplaint: boolean;
|
|
42
|
+
unreadMessagesCount: number;
|
|
43
|
+
lastReadMessageId: string;
|
|
44
|
+
lastReadAt: string;
|
|
42
45
|
}
|
|
43
46
|
export interface TicketMessage {
|
|
44
47
|
id: string;
|
|
@@ -58,6 +61,7 @@ export interface TicketMessage {
|
|
|
58
61
|
* клиент — username, системное — ''.
|
|
59
62
|
*/
|
|
60
63
|
authorName: string;
|
|
64
|
+
deletedAt: string;
|
|
61
65
|
}
|
|
62
66
|
export interface TicketAttachment {
|
|
63
67
|
fileName: string;
|
|
@@ -113,6 +117,35 @@ export interface GetTicketRequest {
|
|
|
113
117
|
/** staff see internal notes + any ticket */
|
|
114
118
|
isStaff: boolean;
|
|
115
119
|
}
|
|
120
|
+
export interface ListTicketMessagesRequest {
|
|
121
|
+
ticketId: string;
|
|
122
|
+
requesterId: string;
|
|
123
|
+
/** staff see internal notes + any ticket */
|
|
124
|
+
isStaff: boolean;
|
|
125
|
+
/** page=1 returns latest messages */
|
|
126
|
+
page: number;
|
|
127
|
+
/** default 30, max 100 */
|
|
128
|
+
limit: number;
|
|
129
|
+
}
|
|
130
|
+
export interface TicketMessagesListResponse {
|
|
131
|
+
items: TicketMessage[];
|
|
132
|
+
total: number;
|
|
133
|
+
page: number;
|
|
134
|
+
limit: number;
|
|
135
|
+
}
|
|
136
|
+
export interface MarkTicketReadRequest {
|
|
137
|
+
ticketId: string;
|
|
138
|
+
requesterId: string;
|
|
139
|
+
/** optional; empty means latest visible message */
|
|
140
|
+
lastReadMessageId: string;
|
|
141
|
+
}
|
|
142
|
+
export interface TicketReadState {
|
|
143
|
+
ticketId: string;
|
|
144
|
+
userId: string;
|
|
145
|
+
lastReadMessageId: string;
|
|
146
|
+
lastReadAt: string;
|
|
147
|
+
unreadMessagesCount: number;
|
|
148
|
+
}
|
|
116
149
|
export interface ListMyTicketsRequest {
|
|
117
150
|
authorId: string;
|
|
118
151
|
/** single value OR comma-separated (e.g. "OPEN,PENDING,IN_PROGRESS") */
|
|
@@ -231,11 +264,13 @@ export interface SupportServiceClient {
|
|
|
231
264
|
ping(request: PingRequest): Observable<PingResponse>;
|
|
232
265
|
/** user */
|
|
233
266
|
createTicket(request: CreateTicketRequest): Observable<Ticket>;
|
|
234
|
-
getTicket(request: GetTicketRequest): Observable<
|
|
267
|
+
getTicket(request: GetTicketRequest): Observable<Ticket>;
|
|
268
|
+
listTicketMessages(request: ListTicketMessagesRequest): Observable<TicketMessagesListResponse>;
|
|
235
269
|
listMyTickets(request: ListMyTicketsRequest): Observable<TicketsListResponse>;
|
|
236
270
|
replyTicket(request: ReplyTicketRequest): Observable<TicketMessage>;
|
|
237
271
|
closeTicket(request: CloseTicketRequest): Observable<Ticket>;
|
|
238
272
|
reopenTicket(request: ReopenTicketRequest): Observable<ReopenTicketResponse>;
|
|
273
|
+
markTicketRead(request: MarkTicketReadRequest): Observable<TicketReadState>;
|
|
239
274
|
reportTicket(request: ReportTicketRequest): Observable<SupportTicketComplaint>;
|
|
240
275
|
rateTicket(request: RateTicketRequest): Observable<SupportTicketRating>;
|
|
241
276
|
/** staff/admin */
|
|
@@ -255,11 +290,13 @@ export interface SupportServiceController {
|
|
|
255
290
|
ping(request: PingRequest): Promise<PingResponse> | Observable<PingResponse> | PingResponse;
|
|
256
291
|
/** user */
|
|
257
292
|
createTicket(request: CreateTicketRequest): Promise<Ticket> | Observable<Ticket> | Ticket;
|
|
258
|
-
getTicket(request: GetTicketRequest): Promise<
|
|
293
|
+
getTicket(request: GetTicketRequest): Promise<Ticket> | Observable<Ticket> | Ticket;
|
|
294
|
+
listTicketMessages(request: ListTicketMessagesRequest): Promise<TicketMessagesListResponse> | Observable<TicketMessagesListResponse> | TicketMessagesListResponse;
|
|
259
295
|
listMyTickets(request: ListMyTicketsRequest): Promise<TicketsListResponse> | Observable<TicketsListResponse> | TicketsListResponse;
|
|
260
296
|
replyTicket(request: ReplyTicketRequest): Promise<TicketMessage> | Observable<TicketMessage> | TicketMessage;
|
|
261
297
|
closeTicket(request: CloseTicketRequest): Promise<Ticket> | Observable<Ticket> | Ticket;
|
|
262
298
|
reopenTicket(request: ReopenTicketRequest): Promise<ReopenTicketResponse> | Observable<ReopenTicketResponse> | ReopenTicketResponse;
|
|
299
|
+
markTicketRead(request: MarkTicketReadRequest): Promise<TicketReadState> | Observable<TicketReadState> | TicketReadState;
|
|
263
300
|
reportTicket(request: ReportTicketRequest): Promise<SupportTicketComplaint> | Observable<SupportTicketComplaint> | SupportTicketComplaint;
|
|
264
301
|
rateTicket(request: RateTicketRequest): Promise<SupportTicketRating> | Observable<SupportTicketRating> | SupportTicketRating;
|
|
265
302
|
/** staff/admin */
|
package/gen/support.js
CHANGED
|
@@ -17,10 +17,12 @@ function SupportServiceControllerMethods() {
|
|
|
17
17
|
"ping",
|
|
18
18
|
"createTicket",
|
|
19
19
|
"getTicket",
|
|
20
|
+
"listTicketMessages",
|
|
20
21
|
"listMyTickets",
|
|
21
22
|
"replyTicket",
|
|
22
23
|
"closeTicket",
|
|
23
24
|
"reopenTicket",
|
|
25
|
+
"markTicketRead",
|
|
24
26
|
"reportTicket",
|
|
25
27
|
"rateTicket",
|
|
26
28
|
"listTickets",
|
package/gen/support.ts
CHANGED
|
@@ -51,6 +51,9 @@ export interface Ticket {
|
|
|
51
51
|
rating: number;
|
|
52
52
|
/** true if the current user has already reported it */
|
|
53
53
|
hasComplaint: boolean;
|
|
54
|
+
unreadMessagesCount: number;
|
|
55
|
+
lastReadMessageId: string;
|
|
56
|
+
lastReadAt: string;
|
|
54
57
|
}
|
|
55
58
|
|
|
56
59
|
export interface TicketMessage {
|
|
@@ -71,6 +74,7 @@ export interface TicketMessage {
|
|
|
71
74
|
* клиент — username, системное — ''.
|
|
72
75
|
*/
|
|
73
76
|
authorName: string;
|
|
77
|
+
deletedAt: string;
|
|
74
78
|
}
|
|
75
79
|
|
|
76
80
|
export interface TicketAttachment {
|
|
@@ -133,6 +137,39 @@ export interface GetTicketRequest {
|
|
|
133
137
|
isStaff: boolean;
|
|
134
138
|
}
|
|
135
139
|
|
|
140
|
+
export interface ListTicketMessagesRequest {
|
|
141
|
+
ticketId: string;
|
|
142
|
+
requesterId: string;
|
|
143
|
+
/** staff see internal notes + any ticket */
|
|
144
|
+
isStaff: boolean;
|
|
145
|
+
/** page=1 returns latest messages */
|
|
146
|
+
page: number;
|
|
147
|
+
/** default 30, max 100 */
|
|
148
|
+
limit: number;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
export interface TicketMessagesListResponse {
|
|
152
|
+
items: TicketMessage[];
|
|
153
|
+
total: number;
|
|
154
|
+
page: number;
|
|
155
|
+
limit: number;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
export interface MarkTicketReadRequest {
|
|
159
|
+
ticketId: string;
|
|
160
|
+
requesterId: string;
|
|
161
|
+
/** optional; empty means latest visible message */
|
|
162
|
+
lastReadMessageId: string;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
export interface TicketReadState {
|
|
166
|
+
ticketId: string;
|
|
167
|
+
userId: string;
|
|
168
|
+
lastReadMessageId: string;
|
|
169
|
+
lastReadAt: string;
|
|
170
|
+
unreadMessagesCount: number;
|
|
171
|
+
}
|
|
172
|
+
|
|
136
173
|
export interface ListMyTicketsRequest {
|
|
137
174
|
authorId: string;
|
|
138
175
|
/** single value OR comma-separated (e.g. "OPEN,PENDING,IN_PROGRESS") */
|
|
@@ -271,7 +308,9 @@ export interface SupportServiceClient {
|
|
|
271
308
|
|
|
272
309
|
createTicket(request: CreateTicketRequest): Observable<Ticket>;
|
|
273
310
|
|
|
274
|
-
getTicket(request: GetTicketRequest): Observable<
|
|
311
|
+
getTicket(request: GetTicketRequest): Observable<Ticket>;
|
|
312
|
+
|
|
313
|
+
listTicketMessages(request: ListTicketMessagesRequest): Observable<TicketMessagesListResponse>;
|
|
275
314
|
|
|
276
315
|
listMyTickets(request: ListMyTicketsRequest): Observable<TicketsListResponse>;
|
|
277
316
|
|
|
@@ -281,6 +320,8 @@ export interface SupportServiceClient {
|
|
|
281
320
|
|
|
282
321
|
reopenTicket(request: ReopenTicketRequest): Observable<ReopenTicketResponse>;
|
|
283
322
|
|
|
323
|
+
markTicketRead(request: MarkTicketReadRequest): Observable<TicketReadState>;
|
|
324
|
+
|
|
284
325
|
reportTicket(request: ReportTicketRequest): Observable<SupportTicketComplaint>;
|
|
285
326
|
|
|
286
327
|
rateTicket(request: RateTicketRequest): Observable<SupportTicketRating>;
|
|
@@ -314,9 +355,11 @@ export interface SupportServiceController {
|
|
|
314
355
|
|
|
315
356
|
createTicket(request: CreateTicketRequest): Promise<Ticket> | Observable<Ticket> | Ticket;
|
|
316
357
|
|
|
317
|
-
getTicket(
|
|
318
|
-
|
|
319
|
-
|
|
358
|
+
getTicket(request: GetTicketRequest): Promise<Ticket> | Observable<Ticket> | Ticket;
|
|
359
|
+
|
|
360
|
+
listTicketMessages(
|
|
361
|
+
request: ListTicketMessagesRequest,
|
|
362
|
+
): Promise<TicketMessagesListResponse> | Observable<TicketMessagesListResponse> | TicketMessagesListResponse;
|
|
320
363
|
|
|
321
364
|
listMyTickets(
|
|
322
365
|
request: ListMyTicketsRequest,
|
|
@@ -330,6 +373,10 @@ export interface SupportServiceController {
|
|
|
330
373
|
request: ReopenTicketRequest,
|
|
331
374
|
): Promise<ReopenTicketResponse> | Observable<ReopenTicketResponse> | ReopenTicketResponse;
|
|
332
375
|
|
|
376
|
+
markTicketRead(
|
|
377
|
+
request: MarkTicketReadRequest,
|
|
378
|
+
): Promise<TicketReadState> | Observable<TicketReadState> | TicketReadState;
|
|
379
|
+
|
|
333
380
|
reportTicket(
|
|
334
381
|
request: ReportTicketRequest,
|
|
335
382
|
): Promise<SupportTicketComplaint> | Observable<SupportTicketComplaint> | SupportTicketComplaint;
|
|
@@ -365,10 +412,12 @@ export function SupportServiceControllerMethods() {
|
|
|
365
412
|
"ping",
|
|
366
413
|
"createTicket",
|
|
367
414
|
"getTicket",
|
|
415
|
+
"listTicketMessages",
|
|
368
416
|
"listMyTickets",
|
|
369
417
|
"replyTicket",
|
|
370
418
|
"closeTicket",
|
|
371
419
|
"reopenTicket",
|
|
420
|
+
"markTicketRead",
|
|
372
421
|
"reportTicket",
|
|
373
422
|
"rateTicket",
|
|
374
423
|
"listTickets",
|
package/gen/taxonomy.ts
CHANGED
|
@@ -1,185 +1,185 @@
|
|
|
1
|
-
// Code generated by protoc-gen-ts_proto. DO NOT EDIT.
|
|
2
|
-
// versions:
|
|
3
|
-
// protoc-gen-ts_proto v2.10.1
|
|
4
|
-
// protoc v7.35.0
|
|
5
|
-
// source: taxonomy.proto
|
|
6
|
-
|
|
7
|
-
/* eslint-disable */
|
|
8
|
-
import { GrpcMethod, GrpcStreamMethod } from "@nestjs/microservices";
|
|
9
|
-
import { Observable } from "rxjs";
|
|
10
|
-
|
|
11
|
-
export const protobufPackage = "taxonomy.v1";
|
|
12
|
-
|
|
13
|
-
export interface Category {
|
|
14
|
-
id: string;
|
|
15
|
-
name: string;
|
|
16
|
-
description: string;
|
|
17
|
-
createdAt: string;
|
|
18
|
-
updatedAt: string;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
export interface Application {
|
|
22
|
-
id: string;
|
|
23
|
-
name: string;
|
|
24
|
-
description: string;
|
|
25
|
-
createdAt: string;
|
|
26
|
-
updatedAt: string;
|
|
27
|
-
/** public S3 URL to brand SVG (admin-set), empty if none */
|
|
28
|
-
iconUrl: string;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
export interface Tag {
|
|
32
|
-
id: string;
|
|
33
|
-
name: string;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
export interface Empty {
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
export interface CategoriesListResponse {
|
|
40
|
-
items: Category[];
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
export interface ApplicationsListResponse {
|
|
44
|
-
items: Application[];
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
export interface QueryTagsRequest {
|
|
48
|
-
search: string;
|
|
49
|
-
page: number;
|
|
50
|
-
limit: number;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
export interface TagsListResponse {
|
|
54
|
-
items: Tag[];
|
|
55
|
-
total: number;
|
|
56
|
-
page: number;
|
|
57
|
-
limit: number;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
export interface CreateCategoryRequest {
|
|
61
|
-
name: string;
|
|
62
|
-
description: string;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
export interface CategoryResponse {
|
|
66
|
-
category: Category | undefined;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
export interface CreateApplicationRequest {
|
|
70
|
-
name: string;
|
|
71
|
-
description: string;
|
|
72
|
-
iconUrl: string;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
export interface UpdateApplicationRequest {
|
|
76
|
-
id: string;
|
|
77
|
-
/** optional — empty keeps current */
|
|
78
|
-
name: string;
|
|
79
|
-
/** optional */
|
|
80
|
-
description: string;
|
|
81
|
-
/** optional — empty keeps current */
|
|
82
|
-
iconUrl: string;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
export interface ApplicationResponse {
|
|
86
|
-
application: Application | undefined;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
export interface CreateIconUploadUrlRequest {
|
|
90
|
-
fileName: string;
|
|
91
|
-
/** e.g. image/svg+xml */
|
|
92
|
-
mimeType: string;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
export interface IconUploadUrlResponse {
|
|
96
|
-
/** presigned PUT URL — client uploads the SVG bytes here */
|
|
97
|
-
uploadUrl: string;
|
|
98
|
-
/** final public URL to store as Application.iconUrl */
|
|
99
|
-
iconUrl: string;
|
|
100
|
-
fileKey: string;
|
|
101
|
-
expiresIn: number;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
export const TAXONOMY_V1_PACKAGE_NAME = "taxonomy.v1";
|
|
105
|
-
|
|
106
|
-
export interface TaxonomyServiceClient {
|
|
107
|
-
findAllCategories(request: Empty): Observable<CategoriesListResponse>;
|
|
108
|
-
|
|
109
|
-
findAllApplications(request: Empty): Observable<ApplicationsListResponse>;
|
|
110
|
-
|
|
111
|
-
findAllTags(request: QueryTagsRequest): Observable<TagsListResponse>;
|
|
112
|
-
|
|
113
|
-
createCategory(request: CreateCategoryRequest): Observable<CategoryResponse>;
|
|
114
|
-
|
|
115
|
-
createApplication(request: CreateApplicationRequest): Observable<ApplicationResponse>;
|
|
116
|
-
|
|
117
|
-
updateApplication(request: UpdateApplicationRequest): Observable<ApplicationResponse>;
|
|
118
|
-
|
|
119
|
-
/**
|
|
120
|
-
* Mint a presigned PUT URL for an application icon SVG (proxies upload-service,
|
|
121
|
-
* kind=ICON → public/icons/). Client PUTs the bytes to upload_url, then passes
|
|
122
|
-
* icon_url to Create/UpdateApplication.
|
|
123
|
-
*/
|
|
124
|
-
|
|
125
|
-
createIconUploadUrl(request: CreateIconUploadUrlRequest): Observable<IconUploadUrlResponse>;
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
export interface TaxonomyServiceController {
|
|
129
|
-
findAllCategories(
|
|
130
|
-
request: Empty,
|
|
131
|
-
): Promise<CategoriesListResponse> | Observable<CategoriesListResponse> | CategoriesListResponse;
|
|
132
|
-
|
|
133
|
-
findAllApplications(
|
|
134
|
-
request: Empty,
|
|
135
|
-
): Promise<ApplicationsListResponse> | Observable<ApplicationsListResponse> | ApplicationsListResponse;
|
|
136
|
-
|
|
137
|
-
findAllTags(request: QueryTagsRequest): Promise<TagsListResponse> | Observable<TagsListResponse> | TagsListResponse;
|
|
138
|
-
|
|
139
|
-
createCategory(
|
|
140
|
-
request: CreateCategoryRequest,
|
|
141
|
-
): Promise<CategoryResponse> | Observable<CategoryResponse> | CategoryResponse;
|
|
142
|
-
|
|
143
|
-
createApplication(
|
|
144
|
-
request: CreateApplicationRequest,
|
|
145
|
-
): Promise<ApplicationResponse> | Observable<ApplicationResponse> | ApplicationResponse;
|
|
146
|
-
|
|
147
|
-
updateApplication(
|
|
148
|
-
request: UpdateApplicationRequest,
|
|
149
|
-
): Promise<ApplicationResponse> | Observable<ApplicationResponse> | ApplicationResponse;
|
|
150
|
-
|
|
151
|
-
/**
|
|
152
|
-
* Mint a presigned PUT URL for an application icon SVG (proxies upload-service,
|
|
153
|
-
* kind=ICON → public/icons/). Client PUTs the bytes to upload_url, then passes
|
|
154
|
-
* icon_url to Create/UpdateApplication.
|
|
155
|
-
*/
|
|
156
|
-
|
|
157
|
-
createIconUploadUrl(
|
|
158
|
-
request: CreateIconUploadUrlRequest,
|
|
159
|
-
): Promise<IconUploadUrlResponse> | Observable<IconUploadUrlResponse> | IconUploadUrlResponse;
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
export function TaxonomyServiceControllerMethods() {
|
|
163
|
-
return function (constructor: Function) {
|
|
164
|
-
const grpcMethods: string[] = [
|
|
165
|
-
"findAllCategories",
|
|
166
|
-
"findAllApplications",
|
|
167
|
-
"findAllTags",
|
|
168
|
-
"createCategory",
|
|
169
|
-
"createApplication",
|
|
170
|
-
"updateApplication",
|
|
171
|
-
"createIconUploadUrl",
|
|
172
|
-
];
|
|
173
|
-
for (const method of grpcMethods) {
|
|
174
|
-
const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
|
|
175
|
-
GrpcMethod("TaxonomyService", method)(constructor.prototype[method], method, descriptor);
|
|
176
|
-
}
|
|
177
|
-
const grpcStreamMethods: string[] = [];
|
|
178
|
-
for (const method of grpcStreamMethods) {
|
|
179
|
-
const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
|
|
180
|
-
GrpcStreamMethod("TaxonomyService", method)(constructor.prototype[method], method, descriptor);
|
|
181
|
-
}
|
|
182
|
-
};
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
export const TAXONOMY_SERVICE_NAME = "TaxonomyService";
|
|
1
|
+
// Code generated by protoc-gen-ts_proto. DO NOT EDIT.
|
|
2
|
+
// versions:
|
|
3
|
+
// protoc-gen-ts_proto v2.10.1
|
|
4
|
+
// protoc v7.35.0
|
|
5
|
+
// source: taxonomy.proto
|
|
6
|
+
|
|
7
|
+
/* eslint-disable */
|
|
8
|
+
import { GrpcMethod, GrpcStreamMethod } from "@nestjs/microservices";
|
|
9
|
+
import { Observable } from "rxjs";
|
|
10
|
+
|
|
11
|
+
export const protobufPackage = "taxonomy.v1";
|
|
12
|
+
|
|
13
|
+
export interface Category {
|
|
14
|
+
id: string;
|
|
15
|
+
name: string;
|
|
16
|
+
description: string;
|
|
17
|
+
createdAt: string;
|
|
18
|
+
updatedAt: string;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export interface Application {
|
|
22
|
+
id: string;
|
|
23
|
+
name: string;
|
|
24
|
+
description: string;
|
|
25
|
+
createdAt: string;
|
|
26
|
+
updatedAt: string;
|
|
27
|
+
/** public S3 URL to brand SVG (admin-set), empty if none */
|
|
28
|
+
iconUrl: string;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export interface Tag {
|
|
32
|
+
id: string;
|
|
33
|
+
name: string;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export interface Empty {
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export interface CategoriesListResponse {
|
|
40
|
+
items: Category[];
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export interface ApplicationsListResponse {
|
|
44
|
+
items: Application[];
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export interface QueryTagsRequest {
|
|
48
|
+
search: string;
|
|
49
|
+
page: number;
|
|
50
|
+
limit: number;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export interface TagsListResponse {
|
|
54
|
+
items: Tag[];
|
|
55
|
+
total: number;
|
|
56
|
+
page: number;
|
|
57
|
+
limit: number;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export interface CreateCategoryRequest {
|
|
61
|
+
name: string;
|
|
62
|
+
description: string;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export interface CategoryResponse {
|
|
66
|
+
category: Category | undefined;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export interface CreateApplicationRequest {
|
|
70
|
+
name: string;
|
|
71
|
+
description: string;
|
|
72
|
+
iconUrl: string;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export interface UpdateApplicationRequest {
|
|
76
|
+
id: string;
|
|
77
|
+
/** optional — empty keeps current */
|
|
78
|
+
name: string;
|
|
79
|
+
/** optional */
|
|
80
|
+
description: string;
|
|
81
|
+
/** optional — empty keeps current */
|
|
82
|
+
iconUrl: string;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export interface ApplicationResponse {
|
|
86
|
+
application: Application | undefined;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
export interface CreateIconUploadUrlRequest {
|
|
90
|
+
fileName: string;
|
|
91
|
+
/** e.g. image/svg+xml */
|
|
92
|
+
mimeType: string;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
export interface IconUploadUrlResponse {
|
|
96
|
+
/** presigned PUT URL — client uploads the SVG bytes here */
|
|
97
|
+
uploadUrl: string;
|
|
98
|
+
/** final public URL to store as Application.iconUrl */
|
|
99
|
+
iconUrl: string;
|
|
100
|
+
fileKey: string;
|
|
101
|
+
expiresIn: number;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
export const TAXONOMY_V1_PACKAGE_NAME = "taxonomy.v1";
|
|
105
|
+
|
|
106
|
+
export interface TaxonomyServiceClient {
|
|
107
|
+
findAllCategories(request: Empty): Observable<CategoriesListResponse>;
|
|
108
|
+
|
|
109
|
+
findAllApplications(request: Empty): Observable<ApplicationsListResponse>;
|
|
110
|
+
|
|
111
|
+
findAllTags(request: QueryTagsRequest): Observable<TagsListResponse>;
|
|
112
|
+
|
|
113
|
+
createCategory(request: CreateCategoryRequest): Observable<CategoryResponse>;
|
|
114
|
+
|
|
115
|
+
createApplication(request: CreateApplicationRequest): Observable<ApplicationResponse>;
|
|
116
|
+
|
|
117
|
+
updateApplication(request: UpdateApplicationRequest): Observable<ApplicationResponse>;
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Mint a presigned PUT URL for an application icon SVG (proxies upload-service,
|
|
121
|
+
* kind=ICON → public/icons/). Client PUTs the bytes to upload_url, then passes
|
|
122
|
+
* icon_url to Create/UpdateApplication.
|
|
123
|
+
*/
|
|
124
|
+
|
|
125
|
+
createIconUploadUrl(request: CreateIconUploadUrlRequest): Observable<IconUploadUrlResponse>;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
export interface TaxonomyServiceController {
|
|
129
|
+
findAllCategories(
|
|
130
|
+
request: Empty,
|
|
131
|
+
): Promise<CategoriesListResponse> | Observable<CategoriesListResponse> | CategoriesListResponse;
|
|
132
|
+
|
|
133
|
+
findAllApplications(
|
|
134
|
+
request: Empty,
|
|
135
|
+
): Promise<ApplicationsListResponse> | Observable<ApplicationsListResponse> | ApplicationsListResponse;
|
|
136
|
+
|
|
137
|
+
findAllTags(request: QueryTagsRequest): Promise<TagsListResponse> | Observable<TagsListResponse> | TagsListResponse;
|
|
138
|
+
|
|
139
|
+
createCategory(
|
|
140
|
+
request: CreateCategoryRequest,
|
|
141
|
+
): Promise<CategoryResponse> | Observable<CategoryResponse> | CategoryResponse;
|
|
142
|
+
|
|
143
|
+
createApplication(
|
|
144
|
+
request: CreateApplicationRequest,
|
|
145
|
+
): Promise<ApplicationResponse> | Observable<ApplicationResponse> | ApplicationResponse;
|
|
146
|
+
|
|
147
|
+
updateApplication(
|
|
148
|
+
request: UpdateApplicationRequest,
|
|
149
|
+
): Promise<ApplicationResponse> | Observable<ApplicationResponse> | ApplicationResponse;
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* Mint a presigned PUT URL for an application icon SVG (proxies upload-service,
|
|
153
|
+
* kind=ICON → public/icons/). Client PUTs the bytes to upload_url, then passes
|
|
154
|
+
* icon_url to Create/UpdateApplication.
|
|
155
|
+
*/
|
|
156
|
+
|
|
157
|
+
createIconUploadUrl(
|
|
158
|
+
request: CreateIconUploadUrlRequest,
|
|
159
|
+
): Promise<IconUploadUrlResponse> | Observable<IconUploadUrlResponse> | IconUploadUrlResponse;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
export function TaxonomyServiceControllerMethods() {
|
|
163
|
+
return function (constructor: Function) {
|
|
164
|
+
const grpcMethods: string[] = [
|
|
165
|
+
"findAllCategories",
|
|
166
|
+
"findAllApplications",
|
|
167
|
+
"findAllTags",
|
|
168
|
+
"createCategory",
|
|
169
|
+
"createApplication",
|
|
170
|
+
"updateApplication",
|
|
171
|
+
"createIconUploadUrl",
|
|
172
|
+
];
|
|
173
|
+
for (const method of grpcMethods) {
|
|
174
|
+
const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
|
|
175
|
+
GrpcMethod("TaxonomyService", method)(constructor.prototype[method], method, descriptor);
|
|
176
|
+
}
|
|
177
|
+
const grpcStreamMethods: string[] = [];
|
|
178
|
+
for (const method of grpcStreamMethods) {
|
|
179
|
+
const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
|
|
180
|
+
GrpcStreamMethod("TaxonomyService", method)(constructor.prototype[method], method, descriptor);
|
|
181
|
+
}
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
export const TAXONOMY_SERVICE_NAME = "TaxonomyService";
|