diff --git a/appointmentQuery.client.ts b/appointmentQuery.client.ts index 98746b49..3777281a 100644 --- a/appointmentQuery.client.ts +++ b/appointmentQuery.client.ts @@ -13,6 +13,7 @@ import type { CountLinesResult } from "./shared"; import type { CountLinesQuery } from "./shared"; import type { GetKPIDataResult } from "./clickhouse"; import type { GetKPIDataQuery } from "./clickhouse"; +import type { CrossExtractQuery } from "./shared"; import type { ExtractResult } from "./shared"; import type { ExtractQuery } from "./shared"; import type { ElementByMatchResult } from "./shared"; @@ -50,6 +51,10 @@ export interface IAppointmentQueryClient { * @generated from protobuf rpc: Extract */ extract(input: ExtractQuery, options?: RpcOptions): UnaryCall; + /** + * @generated from protobuf rpc: CrossExtract + */ + crossExtract(input: CrossExtractQuery, options?: RpcOptions): UnaryCall; /** * @generated from protobuf rpc: GetKPIData */ @@ -115,39 +120,46 @@ export class AppointmentQueryClient implements IAppointmentQueryClient, ServiceI const method = this.methods[4], opt = this._transport.mergeOptions(options); return stackIntercept("unary", this._transport, method, opt, input); } + /** + * @generated from protobuf rpc: CrossExtract + */ + crossExtract(input: CrossExtractQuery, options?: RpcOptions): UnaryCall { + const method = this.methods[5], opt = this._transport.mergeOptions(options); + return stackIntercept("unary", this._transport, method, opt, input); + } /** * @generated from protobuf rpc: GetKPIData */ getKPIData(input: GetKPIDataQuery, options?: RpcOptions): UnaryCall { - const method = this.methods[5], opt = this._transport.mergeOptions(options); + const method = this.methods[6], opt = this._transport.mergeOptions(options); return stackIntercept("unary", this._transport, method, opt, input); } /** * @generated from protobuf rpc: CountLines */ countLines(input: CountLinesQuery, options?: RpcOptions): UnaryCall { - const method = this.methods[6], opt = this._transport.mergeOptions(options); + const method = this.methods[7], opt = this._transport.mergeOptions(options); return stackIntercept("unary", this._transport, method, opt, input); } /** * @generated from protobuf rpc: CrossFind */ crossFind(input: CrossFindQuery, options?: RpcOptions): UnaryCall { - const method = this.methods[7], opt = this._transport.mergeOptions(options); + const method = this.methods[8], opt = this._transport.mergeOptions(options); return stackIntercept("unary", this._transport, method, opt, input); } /** * @generated from protobuf rpc: CrossFindMatchingFieldValues */ crossFindMatchingFieldValues(input: CrossFindByMatchQuery, options?: RpcOptions): UnaryCall { - const method = this.methods[8], opt = this._transport.mergeOptions(options); + const method = this.methods[9], opt = this._transport.mergeOptions(options); return stackIntercept("unary", this._transport, method, opt, input); } /** * @generated from protobuf rpc: CrossFindMatchingFieldElements */ crossFindMatchingFieldElements(input: CrossFindElementByMatchQuery, options?: RpcOptions): UnaryCall { - const method = this.methods[9], opt = this._transport.mergeOptions(options); + const method = this.methods[10], opt = this._transport.mergeOptions(options); return stackIntercept("unary", this._transport, method, opt, input); } } diff --git a/appointmentQuery.ts b/appointmentQuery.ts index ded6f453..d30884cc 100644 --- a/appointmentQuery.ts +++ b/appointmentQuery.ts @@ -9,6 +9,7 @@ import { CountLinesResult } from "./shared"; import { CountLinesQuery } from "./shared"; import { GetKPIDataResult } from "./clickhouse"; import { GetKPIDataQuery } from "./clickhouse"; +import { CrossExtractQuery } from "./shared"; import { ExtractResult } from "./shared"; import { ExtractQuery } from "./shared"; import { ElementByMatchResult } from "./shared"; @@ -695,6 +696,7 @@ export const AppointmentQuery = new ServiceType("api.AppointmentQuery", [ { name: "FindMatchingFieldValues", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Appointment Query"], description: "Using search criteria & a main field word, find the list of fields containing the searched word (used for auto completion purposes ...) " }, "api.rscType": "Project", "api.roles": "", "api.moduleID": "appointment-scheduling", "api.tags": "PROJECT_SITE", "google.api.method_visibility": { restriction: "PUBLIC" } }, I: AppointmentByMatchQuery, O: AppointmentByMatchResult }, { name: "FindMatchingFieldElements", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Appointment Query"], description: "using search criteria & a main field word, find the list of field elements containing the searched word (used for auto completion purposes ...) " }, "api.rscType": "Project", "api.roles": "", "api.moduleID": "appointment-scheduling", "api.tags": "PROJECT_SITE", "google.api.method_visibility": { restriction: "PUBLIC" } }, I: ElementByMatchQuery, O: ElementByMatchResult }, { name: "Extract", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Appointment Query"], description: "Schedule a data extraction" }, "api.rscType": "Project", "api.roles": "", "api.moduleID": "appointment-scheduling", "api.tags": "PROJECT_SITE", "google.api.method_visibility": { restriction: "PUBLIC" } }, I: ExtractQuery, O: ExtractResult }, + { name: "CrossExtract", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Appointment Query"], description: "Schedule a data extraction" }, "api.rscType": "Platform", "api.roles": "", "api.moduleID": "appointment-scheduling", "google.api.method_visibility": { restriction: "PUBLIC" } }, I: CrossExtractQuery, O: ExtractResult }, { name: "GetKPIData", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Appointment Query"], description: "Get Appointment KPI data" }, "api.rscType": "Project", "api.roles": "", "api.moduleID": "appointment-scheduling", "api.tags": "PROJECT_SITE", "google.api.method_visibility": { restriction: "PUBLIC" } }, I: GetKPIDataQuery, O: GetKPIDataResult }, { name: "CountLines", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Appointment Query"], description: "Count lines in database for project" }, "api.rscType": "Platform", "api.roles": "Platform.Project-Query", "api.moduleID": "appointment-scheduling", "api.tags": "PROJECT_SITE", "google.api.method_visibility": { restriction: "PUBLIC" } }, I: CountLinesQuery, O: CountLinesResult }, { name: "CrossFind", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Appointment Query"], description: "Find user's all Appointments across all sites in all organisations" }, "api.rscType": "Platform", "api.roles": "", "google.api.method_visibility": { restriction: "PUBLIC" } }, I: CrossFindQuery, O: CrossFindAppointmentResult }, diff --git a/package.json b/package.json index a40129c2..69faf9a5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@reflex-platform/npm-core-sdk", - "version": "1.13.0-SNAPSHOT-260413090716", + "version": "1.13.0-SNAPSHOT-260413121727", "description": "npm libs from core model proto files", "homepage": "", "main": "index.ts", diff --git a/shared.ts b/shared.ts index fd998ab0..08773cc9 100644 --- a/shared.ts +++ b/shared.ts @@ -1698,6 +1698,71 @@ export interface ExtractQuery { */ TimeFormat: TimeFormat; } +/** + * @generated from protobuf message api.CrossExtractQuery + */ +export interface CrossExtractQuery { + /** + * @generated from protobuf field: string UserId = 1 + */ + UserId: string; + /** + * @generated from protobuf field: repeated api.BlockFilter BlockFilters = 2 + */ + BlockFilters: BlockFilter[]; + /** + * @generated from protobuf field: repeated string Fields = 3 + */ + Fields: string[]; + /** + * @generated from protobuf field: string ListSeparator = 4 + */ + ListSeparator: string; + /** + * @generated from protobuf field: string DecimalSeparator = 5 + */ + DecimalSeparator: string; + /** + * @generated from protobuf field: repeated string ColumnNames = 6 + */ + ColumnNames: string[]; + /** + * @generated from protobuf field: map ColumnTranslationMaps = 7 + */ + ColumnTranslationMaps: { + [key: string]: TranslationMap; + }; + /** + * @generated from protobuf field: map ColumnFormats = 8 + */ + ColumnFormats: { + [key: number]: ExtractColumnFormat; + }; + /** + * @generated from protobuf field: string TargetTimeZone = 9 + */ + TargetTimeZone: string; + /** + * @generated from protobuf field: string DateFormat = 10 + */ + DateFormat: string; + /** + * @generated from protobuf field: string NumberFormat = 11 + */ + NumberFormat: string; + /** + * @generated from protobuf field: api.TimeFormat TimeFormat = 12 + */ + TimeFormat: TimeFormat; + /** + * @generated from protobuf field: repeated string SearchTagProjects = 13 + */ + SearchTagProjects: string[]; + /** + * @generated from protobuf field: repeated string SearchTagUsers = 14 + */ + SearchTagUsers: string[]; +} /** * @generated from protobuf message api.ExtractResult */ @@ -7484,6 +7549,197 @@ class ExtractQuery$Type extends MessageType { */ export const ExtractQuery = new ExtractQuery$Type(); // @generated message type with reflection information, may provide speed optimized methods +class CrossExtractQuery$Type extends MessageType { + constructor() { + super("api.CrossExtractQuery", [ + { no: 1, name: "UserId", kind: "scalar", localName: "UserId", jsonName: "UserId", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } }, + { no: 2, name: "BlockFilters", kind: "message", localName: "BlockFilters", jsonName: "BlockFilters", repeat: 2 /*RepeatType.UNPACKED*/, T: () => BlockFilter }, + { no: 3, name: "Fields", kind: "scalar", localName: "Fields", jsonName: "Fields", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ }, + { no: 4, name: "ListSeparator", kind: "scalar", localName: "ListSeparator", jsonName: "ListSeparator", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } }, + { no: 5, name: "DecimalSeparator", kind: "scalar", localName: "DecimalSeparator", jsonName: "DecimalSeparator", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } }, + { no: 6, name: "ColumnNames", kind: "scalar", localName: "ColumnNames", jsonName: "ColumnNames", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ }, + { no: 7, name: "ColumnTranslationMaps", kind: "map", localName: "ColumnTranslationMaps", jsonName: "ColumnTranslationMaps", K: 9 /*ScalarType.STRING*/, V: { kind: "message", T: () => TranslationMap } }, + { no: 8, name: "ColumnFormats", kind: "map", localName: "ColumnFormats", jsonName: "ColumnFormats", K: 5 /*ScalarType.INT32*/, V: { kind: "message", T: () => ExtractColumnFormat } }, + { no: 9, name: "TargetTimeZone", kind: "scalar", localName: "TargetTimeZone", jsonName: "TargetTimeZone", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1", tzData: true } }, "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Target user time zone format", example: "\"Europe/Paris\"" } } }, + { no: 10, name: "DateFormat", kind: "scalar", localName: "DateFormat", jsonName: "DateFormat", T: 9 /*ScalarType.STRING*/, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Language code to format dates format", example: "\"en-US\"" } } }, + { no: 11, name: "NumberFormat", kind: "scalar", localName: "NumberFormat", jsonName: "NumberFormat", T: 9 /*ScalarType.STRING*/, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Language code to format numbers format", example: "\"en-US\"" } } }, + { no: 12, name: "TimeFormat", kind: "enum", localName: "TimeFormat", jsonName: "TimeFormat", T: () => ["api.TimeFormat", TimeFormat], options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Hour clock time format" } } }, + { no: 13, name: "SearchTagProjects", kind: "scalar", localName: "SearchTagProjects", jsonName: "SearchTagProjects", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "List of projectID to search into", example: "[\"project1\", \"project2\"]" } } }, + { no: 14, name: "SearchTagUsers", kind: "scalar", localName: "SearchTagUsers", jsonName: "SearchTagUsers", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "List of userID to search into", example: "[\"userID1\", \"userID2\"]" } } } + ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["Header", "UserId", "Fields", "ListSeparator", "DecimalSeparator", "ColumnName"] } } }); + } + create(value?: PartialMessage): CrossExtractQuery { + const message = globalThis.Object.create((this.messagePrototype!)); + message.UserId = ""; + message.BlockFilters = []; + message.Fields = []; + message.ListSeparator = ""; + message.DecimalSeparator = ""; + message.ColumnNames = []; + message.ColumnTranslationMaps = {}; + message.ColumnFormats = {}; + message.TargetTimeZone = ""; + message.DateFormat = ""; + message.NumberFormat = ""; + message.TimeFormat = 0; + message.SearchTagProjects = []; + message.SearchTagUsers = []; + if (value !== undefined) + reflectionMergePartial(this, message, value); + return message; + } + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CrossExtractQuery): CrossExtractQuery { + let message = target ?? this.create(), end = reader.pos + length; + while (reader.pos < end) { + let [fieldNo, wireType] = reader.tag(); + switch (fieldNo) { + case /* string UserId */ 1: + message.UserId = reader.string(); + break; + case /* repeated api.BlockFilter BlockFilters */ 2: + message.BlockFilters.push(BlockFilter.internalBinaryRead(reader, reader.uint32(), options)); + break; + case /* repeated string Fields */ 3: + message.Fields.push(reader.string()); + break; + case /* string ListSeparator */ 4: + message.ListSeparator = reader.string(); + break; + case /* string DecimalSeparator */ 5: + message.DecimalSeparator = reader.string(); + break; + case /* repeated string ColumnNames */ 6: + message.ColumnNames.push(reader.string()); + break; + case /* map ColumnTranslationMaps */ 7: + this.binaryReadMap7(message.ColumnTranslationMaps, reader, options); + break; + case /* map ColumnFormats */ 8: + this.binaryReadMap8(message.ColumnFormats, reader, options); + break; + case /* string TargetTimeZone */ 9: + message.TargetTimeZone = reader.string(); + break; + case /* string DateFormat */ 10: + message.DateFormat = reader.string(); + break; + case /* string NumberFormat */ 11: + message.NumberFormat = reader.string(); + break; + case /* api.TimeFormat TimeFormat */ 12: + message.TimeFormat = reader.int32(); + break; + case /* repeated string SearchTagProjects */ 13: + message.SearchTagProjects.push(reader.string()); + break; + case /* repeated string SearchTagUsers */ 14: + message.SearchTagUsers.push(reader.string()); + break; + default: + let u = options.readUnknownField; + if (u === "throw") + throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); + let d = reader.skip(wireType); + if (u !== false) + (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); + } + } + return message; + } + private binaryReadMap7(map: CrossExtractQuery["ColumnTranslationMaps"], reader: IBinaryReader, options: BinaryReadOptions): void { + let len = reader.uint32(), end = reader.pos + len, key: keyof CrossExtractQuery["ColumnTranslationMaps"] | undefined, val: CrossExtractQuery["ColumnTranslationMaps"][any] | undefined; + while (reader.pos < end) { + let [fieldNo, wireType] = reader.tag(); + switch (fieldNo) { + case 1: + key = reader.string(); + break; + case 2: + val = TranslationMap.internalBinaryRead(reader, reader.uint32(), options); + break; + default: throw new globalThis.Error("unknown map entry field for api.CrossExtractQuery.ColumnTranslationMaps"); + } + } + map[key ?? ""] = val ?? TranslationMap.create(); + } + private binaryReadMap8(map: CrossExtractQuery["ColumnFormats"], reader: IBinaryReader, options: BinaryReadOptions): void { + let len = reader.uint32(), end = reader.pos + len, key: keyof CrossExtractQuery["ColumnFormats"] | undefined, val: CrossExtractQuery["ColumnFormats"][any] | undefined; + while (reader.pos < end) { + let [fieldNo, wireType] = reader.tag(); + switch (fieldNo) { + case 1: + key = reader.int32(); + break; + case 2: + val = ExtractColumnFormat.internalBinaryRead(reader, reader.uint32(), options); + break; + default: throw new globalThis.Error("unknown map entry field for api.CrossExtractQuery.ColumnFormats"); + } + } + map[key ?? 0] = val ?? ExtractColumnFormat.create(); + } + internalBinaryWrite(message: CrossExtractQuery, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { + /* string UserId = 1; */ + if (message.UserId !== "") + writer.tag(1, WireType.LengthDelimited).string(message.UserId); + /* repeated api.BlockFilter BlockFilters = 2; */ + for (let i = 0; i < message.BlockFilters.length; i++) + BlockFilter.internalBinaryWrite(message.BlockFilters[i], writer.tag(2, WireType.LengthDelimited).fork(), options).join(); + /* repeated string Fields = 3; */ + for (let i = 0; i < message.Fields.length; i++) + writer.tag(3, WireType.LengthDelimited).string(message.Fields[i]); + /* string ListSeparator = 4; */ + if (message.ListSeparator !== "") + writer.tag(4, WireType.LengthDelimited).string(message.ListSeparator); + /* string DecimalSeparator = 5; */ + if (message.DecimalSeparator !== "") + writer.tag(5, WireType.LengthDelimited).string(message.DecimalSeparator); + /* repeated string ColumnNames = 6; */ + for (let i = 0; i < message.ColumnNames.length; i++) + writer.tag(6, WireType.LengthDelimited).string(message.ColumnNames[i]); + /* map ColumnTranslationMaps = 7; */ + for (let k of globalThis.Object.keys(message.ColumnTranslationMaps)) { + writer.tag(7, WireType.LengthDelimited).fork().tag(1, WireType.LengthDelimited).string(k); + writer.tag(2, WireType.LengthDelimited).fork(); + TranslationMap.internalBinaryWrite(message.ColumnTranslationMaps[k], writer, options); + writer.join().join(); + } + /* map ColumnFormats = 8; */ + for (let k of globalThis.Object.keys(message.ColumnFormats)) { + writer.tag(8, WireType.LengthDelimited).fork().tag(1, WireType.Varint).int32(parseInt(k)); + writer.tag(2, WireType.LengthDelimited).fork(); + ExtractColumnFormat.internalBinaryWrite(message.ColumnFormats[k as any], writer, options); + writer.join().join(); + } + /* string TargetTimeZone = 9; */ + if (message.TargetTimeZone !== "") + writer.tag(9, WireType.LengthDelimited).string(message.TargetTimeZone); + /* string DateFormat = 10; */ + if (message.DateFormat !== "") + writer.tag(10, WireType.LengthDelimited).string(message.DateFormat); + /* string NumberFormat = 11; */ + if (message.NumberFormat !== "") + writer.tag(11, WireType.LengthDelimited).string(message.NumberFormat); + /* api.TimeFormat TimeFormat = 12; */ + if (message.TimeFormat !== 0) + writer.tag(12, WireType.Varint).int32(message.TimeFormat); + /* repeated string SearchTagProjects = 13; */ + for (let i = 0; i < message.SearchTagProjects.length; i++) + writer.tag(13, WireType.LengthDelimited).string(message.SearchTagProjects[i]); + /* repeated string SearchTagUsers = 14; */ + for (let i = 0; i < message.SearchTagUsers.length; i++) + writer.tag(14, WireType.LengthDelimited).string(message.SearchTagUsers[i]); + let u = options.writeUnknownFields; + if (u !== false) + (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); + return writer; + } +} +/** + * @generated MessageType for protobuf message api.CrossExtractQuery + */ +export const CrossExtractQuery = new CrossExtractQuery$Type(); +// @generated message type with reflection information, may provide speed optimized methods class ExtractResult$Type extends MessageType { constructor() { super("api.ExtractResult", [