Add cron management capabilities to QLAPI

- Added GetCrons, GetCronById, EnableCrons, DisableCrons, RunCrons to proto
- Implemented gRPC handlers for new cron operations
- Updated client.js to expose new methods to scripts
- Updated sample to demonstrate new API usage

Co-authored-by: whyour <22700758+whyour@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot] 2025-11-13 16:33:37 +00:00
parent 964eaf631a
commit 2f0f5787cc
8 changed files with 13884 additions and 10127 deletions

View File

@ -97,6 +97,18 @@ message UpdateCronRequest {
message DeleteCronsRequest { repeated int32 ids = 1; } message DeleteCronsRequest { repeated int32 ids = 1; }
message GetCronsRequest {
optional string searchValue = 1;
}
message GetCronByIdRequest { int32 id = 1; }
message EnableCronsRequest { repeated int32 ids = 1; }
message DisableCronsRequest { repeated int32 ids = 1; }
message RunCronsRequest { repeated int32 ids = 1; }
message CronsResponse { message CronsResponse {
int32 code = 1; int32 code = 1;
repeated CronItem data = 2; repeated CronItem data = 2;
@ -254,4 +266,9 @@ service Api {
rpc CreateCron(CreateCronRequest) returns (CronResponse) {} rpc CreateCron(CreateCronRequest) returns (CronResponse) {}
rpc UpdateCron(UpdateCronRequest) returns (CronResponse) {} rpc UpdateCron(UpdateCronRequest) returns (CronResponse) {}
rpc DeleteCrons(DeleteCronsRequest) returns (Response) {} rpc DeleteCrons(DeleteCronsRequest) returns (Response) {}
rpc GetCrons(GetCronsRequest) returns (CronsResponse) {}
rpc GetCronById(GetCronByIdRequest) returns (CronResponse) {}
rpc EnableCrons(EnableCronsRequest) returns (Response) {}
rpc DisableCrons(DisableCronsRequest) returns (Response) {}
rpc RunCrons(RunCronsRequest) returns (Response) {}
} }

View File

@ -1,20 +1,20 @@
// Code generated by protoc-gen-ts_proto. DO NOT EDIT. // Code generated by protoc-gen-ts_proto. DO NOT EDIT.
// versions: // versions:
// protoc-gen-ts_proto v2.6.1 // protoc-gen-ts_proto v2.8.3
// protoc v3.17.3 // protoc v3.21.12
// source: back/protos/api.proto // source: back/protos/api.proto
/* eslint-disable */ /* eslint-disable */
import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire"; import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
import { import {
type CallOptions, type CallOptions,
ChannelCredentials, type ChannelCredentials,
Client, Client,
type ClientOptions, type ClientOptions,
type ClientUnaryCall, type ClientUnaryCall,
type handleUnaryCall, type handleUnaryCall,
makeGenericClientConstructor, makeGenericClientConstructor,
Metadata, type Metadata,
type ServiceError, type ServiceError,
type UntypedServiceImplementation, type UntypedServiceImplementation,
} from "@grpc/grpc-js"; } from "@grpc/grpc-js";
@ -281,6 +281,26 @@ export interface DeleteCronsRequest {
ids: number[]; ids: number[];
} }
export interface GetCronsRequest {
searchValue?: string | undefined;
}
export interface GetCronByIdRequest {
id: number;
}
export interface EnableCronsRequest {
ids: number[];
}
export interface DisableCronsRequest {
ids: number[];
}
export interface RunCronsRequest {
ids: number[];
}
export interface CronsResponse { export interface CronsResponse {
code: number; code: number;
data: CronItem[]; data: CronItem[];
@ -416,7 +436,7 @@ export const EnvItem: MessageFns<EnvItem> = {
decode(input: BinaryReader | Uint8Array, length?: number): EnvItem { decode(input: BinaryReader | Uint8Array, length?: number): EnvItem {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input); const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length; const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseEnvItem(); const message = createBaseEnvItem();
while (reader.pos < end) { while (reader.pos < end) {
const tag = reader.uint32(); const tag = reader.uint32();
@ -541,7 +561,7 @@ export const GetEnvsRequest: MessageFns<GetEnvsRequest> = {
decode(input: BinaryReader | Uint8Array, length?: number): GetEnvsRequest { decode(input: BinaryReader | Uint8Array, length?: number): GetEnvsRequest {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input); const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length; const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseGetEnvsRequest(); const message = createBaseGetEnvsRequest();
while (reader.pos < end) { while (reader.pos < end) {
const tag = reader.uint32(); const tag = reader.uint32();
@ -599,7 +619,7 @@ export const CreateEnvRequest: MessageFns<CreateEnvRequest> = {
decode(input: BinaryReader | Uint8Array, length?: number): CreateEnvRequest { decode(input: BinaryReader | Uint8Array, length?: number): CreateEnvRequest {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input); const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length; const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseCreateEnvRequest(); const message = createBaseCreateEnvRequest();
while (reader.pos < end) { while (reader.pos < end) {
const tag = reader.uint32(); const tag = reader.uint32();
@ -657,7 +677,7 @@ export const UpdateEnvRequest: MessageFns<UpdateEnvRequest> = {
decode(input: BinaryReader | Uint8Array, length?: number): UpdateEnvRequest { decode(input: BinaryReader | Uint8Array, length?: number): UpdateEnvRequest {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input); const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length; const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseUpdateEnvRequest(); const message = createBaseUpdateEnvRequest();
while (reader.pos < end) { while (reader.pos < end) {
const tag = reader.uint32(); const tag = reader.uint32();
@ -717,7 +737,7 @@ export const DeleteEnvsRequest: MessageFns<DeleteEnvsRequest> = {
decode(input: BinaryReader | Uint8Array, length?: number): DeleteEnvsRequest { decode(input: BinaryReader | Uint8Array, length?: number): DeleteEnvsRequest {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input); const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length; const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseDeleteEnvsRequest(); const message = createBaseDeleteEnvsRequest();
while (reader.pos < end) { while (reader.pos < end) {
const tag = reader.uint32(); const tag = reader.uint32();
@ -791,7 +811,7 @@ export const MoveEnvRequest: MessageFns<MoveEnvRequest> = {
decode(input: BinaryReader | Uint8Array, length?: number): MoveEnvRequest { decode(input: BinaryReader | Uint8Array, length?: number): MoveEnvRequest {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input); const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length; const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseMoveEnvRequest(); const message = createBaseMoveEnvRequest();
while (reader.pos < end) { while (reader.pos < end) {
const tag = reader.uint32(); const tag = reader.uint32();
@ -879,7 +899,7 @@ export const DisableEnvsRequest: MessageFns<DisableEnvsRequest> = {
decode(input: BinaryReader | Uint8Array, length?: number): DisableEnvsRequest { decode(input: BinaryReader | Uint8Array, length?: number): DisableEnvsRequest {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input); const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length; const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseDisableEnvsRequest(); const message = createBaseDisableEnvsRequest();
while (reader.pos < end) { while (reader.pos < end) {
const tag = reader.uint32(); const tag = reader.uint32();
@ -949,7 +969,7 @@ export const EnableEnvsRequest: MessageFns<EnableEnvsRequest> = {
decode(input: BinaryReader | Uint8Array, length?: number): EnableEnvsRequest { decode(input: BinaryReader | Uint8Array, length?: number): EnableEnvsRequest {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input); const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length; const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseEnableEnvsRequest(); const message = createBaseEnableEnvsRequest();
while (reader.pos < end) { while (reader.pos < end) {
const tag = reader.uint32(); const tag = reader.uint32();
@ -1022,7 +1042,7 @@ export const UpdateEnvNamesRequest: MessageFns<UpdateEnvNamesRequest> = {
decode(input: BinaryReader | Uint8Array, length?: number): UpdateEnvNamesRequest { decode(input: BinaryReader | Uint8Array, length?: number): UpdateEnvNamesRequest {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input); const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length; const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseUpdateEnvNamesRequest(); const message = createBaseUpdateEnvNamesRequest();
while (reader.pos < end) { while (reader.pos < end) {
const tag = reader.uint32(); const tag = reader.uint32();
@ -1105,7 +1125,7 @@ export const GetEnvByIdRequest: MessageFns<GetEnvByIdRequest> = {
decode(input: BinaryReader | Uint8Array, length?: number): GetEnvByIdRequest { decode(input: BinaryReader | Uint8Array, length?: number): GetEnvByIdRequest {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input); const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length; const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseGetEnvByIdRequest(); const message = createBaseGetEnvByIdRequest();
while (reader.pos < end) { while (reader.pos < end) {
const tag = reader.uint32(); const tag = reader.uint32();
@ -1169,7 +1189,7 @@ export const EnvsResponse: MessageFns<EnvsResponse> = {
decode(input: BinaryReader | Uint8Array, length?: number): EnvsResponse { decode(input: BinaryReader | Uint8Array, length?: number): EnvsResponse {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input); const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length; const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseEnvsResponse(); const message = createBaseEnvsResponse();
while (reader.pos < end) { while (reader.pos < end) {
const tag = reader.uint32(); const tag = reader.uint32();
@ -1261,7 +1281,7 @@ export const EnvResponse: MessageFns<EnvResponse> = {
decode(input: BinaryReader | Uint8Array, length?: number): EnvResponse { decode(input: BinaryReader | Uint8Array, length?: number): EnvResponse {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input); const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length; const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseEnvResponse(); const message = createBaseEnvResponse();
while (reader.pos < end) { while (reader.pos < end) {
const tag = reader.uint32(); const tag = reader.uint32();
@ -1350,7 +1370,7 @@ export const Response: MessageFns<Response> = {
decode(input: BinaryReader | Uint8Array, length?: number): Response { decode(input: BinaryReader | Uint8Array, length?: number): Response {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input); const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length; const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseResponse(); const message = createBaseResponse();
while (reader.pos < end) { while (reader.pos < end) {
const tag = reader.uint32(); const tag = reader.uint32();
@ -1423,7 +1443,7 @@ export const ExtraScheduleItem: MessageFns<ExtraScheduleItem> = {
decode(input: BinaryReader | Uint8Array, length?: number): ExtraScheduleItem { decode(input: BinaryReader | Uint8Array, length?: number): ExtraScheduleItem {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input); const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length; const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseExtraScheduleItem(); const message = createBaseExtraScheduleItem();
while (reader.pos < end) { while (reader.pos < end) {
const tag = reader.uint32(); const tag = reader.uint32();
@ -1535,7 +1555,7 @@ export const CronItem: MessageFns<CronItem> = {
decode(input: BinaryReader | Uint8Array, length?: number): CronItem { decode(input: BinaryReader | Uint8Array, length?: number): CronItem {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input); const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length; const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseCronItem(); const message = createBaseCronItem();
while (reader.pos < end) { while (reader.pos < end) {
const tag = reader.uint32(); const tag = reader.uint32();
@ -1798,7 +1818,7 @@ export const CreateCronRequest: MessageFns<CreateCronRequest> = {
decode(input: BinaryReader | Uint8Array, length?: number): CreateCronRequest { decode(input: BinaryReader | Uint8Array, length?: number): CreateCronRequest {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input); const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length; const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseCreateCronRequest(); const message = createBaseCreateCronRequest();
while (reader.pos < end) { while (reader.pos < end) {
const tag = reader.uint32(); const tag = reader.uint32();
@ -1985,7 +2005,7 @@ export const UpdateCronRequest: MessageFns<UpdateCronRequest> = {
decode(input: BinaryReader | Uint8Array, length?: number): UpdateCronRequest { decode(input: BinaryReader | Uint8Array, length?: number): UpdateCronRequest {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input); const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length; const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseUpdateCronRequest(); const message = createBaseUpdateCronRequest();
while (reader.pos < end) { while (reader.pos < end) {
const tag = reader.uint32(); const tag = reader.uint32();
@ -2153,7 +2173,7 @@ export const DeleteCronsRequest: MessageFns<DeleteCronsRequest> = {
decode(input: BinaryReader | Uint8Array, length?: number): DeleteCronsRequest { decode(input: BinaryReader | Uint8Array, length?: number): DeleteCronsRequest {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input); const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length; const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseDeleteCronsRequest(); const message = createBaseDeleteCronsRequest();
while (reader.pos < end) { while (reader.pos < end) {
const tag = reader.uint32(); const tag = reader.uint32();
@ -2207,6 +2227,332 @@ export const DeleteCronsRequest: MessageFns<DeleteCronsRequest> = {
}, },
}; };
function createBaseGetCronsRequest(): GetCronsRequest {
return { searchValue: undefined };
}
export const GetCronsRequest: MessageFns<GetCronsRequest> = {
encode(message: GetCronsRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
if (message.searchValue !== undefined) {
writer.uint32(10).string(message.searchValue);
}
return writer;
},
decode(input: BinaryReader | Uint8Array, length?: number): GetCronsRequest {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseGetCronsRequest();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
break;
}
message.searchValue = reader.string();
continue;
}
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skip(tag & 7);
}
return message;
},
fromJSON(object: any): GetCronsRequest {
return { searchValue: isSet(object.searchValue) ? globalThis.String(object.searchValue) : undefined };
},
toJSON(message: GetCronsRequest): unknown {
const obj: any = {};
if (message.searchValue !== undefined) {
obj.searchValue = message.searchValue;
}
return obj;
},
create<I extends Exact<DeepPartial<GetCronsRequest>, I>>(base?: I): GetCronsRequest {
return GetCronsRequest.fromPartial(base ?? ({} as any));
},
fromPartial<I extends Exact<DeepPartial<GetCronsRequest>, I>>(object: I): GetCronsRequest {
const message = createBaseGetCronsRequest();
message.searchValue = object.searchValue ?? undefined;
return message;
},
};
function createBaseGetCronByIdRequest(): GetCronByIdRequest {
return { id: 0 };
}
export const GetCronByIdRequest: MessageFns<GetCronByIdRequest> = {
encode(message: GetCronByIdRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
if (message.id !== 0) {
writer.uint32(8).int32(message.id);
}
return writer;
},
decode(input: BinaryReader | Uint8Array, length?: number): GetCronByIdRequest {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseGetCronByIdRequest();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
break;
}
message.id = reader.int32();
continue;
}
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skip(tag & 7);
}
return message;
},
fromJSON(object: any): GetCronByIdRequest {
return { id: isSet(object.id) ? globalThis.Number(object.id) : 0 };
},
toJSON(message: GetCronByIdRequest): unknown {
const obj: any = {};
if (message.id !== 0) {
obj.id = Math.round(message.id);
}
return obj;
},
create<I extends Exact<DeepPartial<GetCronByIdRequest>, I>>(base?: I): GetCronByIdRequest {
return GetCronByIdRequest.fromPartial(base ?? ({} as any));
},
fromPartial<I extends Exact<DeepPartial<GetCronByIdRequest>, I>>(object: I): GetCronByIdRequest {
const message = createBaseGetCronByIdRequest();
message.id = object.id ?? 0;
return message;
},
};
function createBaseEnableCronsRequest(): EnableCronsRequest {
return { ids: [] };
}
export const EnableCronsRequest: MessageFns<EnableCronsRequest> = {
encode(message: EnableCronsRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
writer.uint32(10).fork();
for (const v of message.ids) {
writer.int32(v);
}
writer.join();
return writer;
},
decode(input: BinaryReader | Uint8Array, length?: number): EnableCronsRequest {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseEnableCronsRequest();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1: {
if (tag === 8) {
message.ids.push(reader.int32());
continue;
}
if (tag === 10) {
const end2 = reader.uint32() + reader.pos;
while (reader.pos < end2) {
message.ids.push(reader.int32());
}
continue;
}
break;
}
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skip(tag & 7);
}
return message;
},
fromJSON(object: any): EnableCronsRequest {
return { ids: globalThis.Array.isArray(object?.ids) ? object.ids.map((e: any) => globalThis.Number(e)) : [] };
},
toJSON(message: EnableCronsRequest): unknown {
const obj: any = {};
if (message.ids?.length) {
obj.ids = message.ids.map((e) => Math.round(e));
}
return obj;
},
create<I extends Exact<DeepPartial<EnableCronsRequest>, I>>(base?: I): EnableCronsRequest {
return EnableCronsRequest.fromPartial(base ?? ({} as any));
},
fromPartial<I extends Exact<DeepPartial<EnableCronsRequest>, I>>(object: I): EnableCronsRequest {
const message = createBaseEnableCronsRequest();
message.ids = object.ids?.map((e) => e) || [];
return message;
},
};
function createBaseDisableCronsRequest(): DisableCronsRequest {
return { ids: [] };
}
export const DisableCronsRequest: MessageFns<DisableCronsRequest> = {
encode(message: DisableCronsRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
writer.uint32(10).fork();
for (const v of message.ids) {
writer.int32(v);
}
writer.join();
return writer;
},
decode(input: BinaryReader | Uint8Array, length?: number): DisableCronsRequest {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseDisableCronsRequest();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1: {
if (tag === 8) {
message.ids.push(reader.int32());
continue;
}
if (tag === 10) {
const end2 = reader.uint32() + reader.pos;
while (reader.pos < end2) {
message.ids.push(reader.int32());
}
continue;
}
break;
}
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skip(tag & 7);
}
return message;
},
fromJSON(object: any): DisableCronsRequest {
return { ids: globalThis.Array.isArray(object?.ids) ? object.ids.map((e: any) => globalThis.Number(e)) : [] };
},
toJSON(message: DisableCronsRequest): unknown {
const obj: any = {};
if (message.ids?.length) {
obj.ids = message.ids.map((e) => Math.round(e));
}
return obj;
},
create<I extends Exact<DeepPartial<DisableCronsRequest>, I>>(base?: I): DisableCronsRequest {
return DisableCronsRequest.fromPartial(base ?? ({} as any));
},
fromPartial<I extends Exact<DeepPartial<DisableCronsRequest>, I>>(object: I): DisableCronsRequest {
const message = createBaseDisableCronsRequest();
message.ids = object.ids?.map((e) => e) || [];
return message;
},
};
function createBaseRunCronsRequest(): RunCronsRequest {
return { ids: [] };
}
export const RunCronsRequest: MessageFns<RunCronsRequest> = {
encode(message: RunCronsRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
writer.uint32(10).fork();
for (const v of message.ids) {
writer.int32(v);
}
writer.join();
return writer;
},
decode(input: BinaryReader | Uint8Array, length?: number): RunCronsRequest {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseRunCronsRequest();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1: {
if (tag === 8) {
message.ids.push(reader.int32());
continue;
}
if (tag === 10) {
const end2 = reader.uint32() + reader.pos;
while (reader.pos < end2) {
message.ids.push(reader.int32());
}
continue;
}
break;
}
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skip(tag & 7);
}
return message;
},
fromJSON(object: any): RunCronsRequest {
return { ids: globalThis.Array.isArray(object?.ids) ? object.ids.map((e: any) => globalThis.Number(e)) : [] };
},
toJSON(message: RunCronsRequest): unknown {
const obj: any = {};
if (message.ids?.length) {
obj.ids = message.ids.map((e) => Math.round(e));
}
return obj;
},
create<I extends Exact<DeepPartial<RunCronsRequest>, I>>(base?: I): RunCronsRequest {
return RunCronsRequest.fromPartial(base ?? ({} as any));
},
fromPartial<I extends Exact<DeepPartial<RunCronsRequest>, I>>(object: I): RunCronsRequest {
const message = createBaseRunCronsRequest();
message.ids = object.ids?.map((e) => e) || [];
return message;
},
};
function createBaseCronsResponse(): CronsResponse { function createBaseCronsResponse(): CronsResponse {
return { code: 0, data: [], message: undefined }; return { code: 0, data: [], message: undefined };
} }
@ -2227,7 +2573,7 @@ export const CronsResponse: MessageFns<CronsResponse> = {
decode(input: BinaryReader | Uint8Array, length?: number): CronsResponse { decode(input: BinaryReader | Uint8Array, length?: number): CronsResponse {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input); const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length; const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseCronsResponse(); const message = createBaseCronsResponse();
while (reader.pos < end) { while (reader.pos < end) {
const tag = reader.uint32(); const tag = reader.uint32();
@ -2319,7 +2665,7 @@ export const CronResponse: MessageFns<CronResponse> = {
decode(input: BinaryReader | Uint8Array, length?: number): CronResponse { decode(input: BinaryReader | Uint8Array, length?: number): CronResponse {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input); const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length; const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseCronResponse(); const message = createBaseCronResponse();
while (reader.pos < end) { while (reader.pos < end) {
const tag = reader.uint32(); const tag = reader.uint32();
@ -2405,7 +2751,7 @@ export const CronDetailRequest: MessageFns<CronDetailRequest> = {
decode(input: BinaryReader | Uint8Array, length?: number): CronDetailRequest { decode(input: BinaryReader | Uint8Array, length?: number): CronDetailRequest {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input); const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length; const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseCronDetailRequest(); const message = createBaseCronDetailRequest();
while (reader.pos < end) { while (reader.pos < end) {
const tag = reader.uint32(); const tag = reader.uint32();
@ -2469,7 +2815,7 @@ export const CronDetailResponse: MessageFns<CronDetailResponse> = {
decode(input: BinaryReader | Uint8Array, length?: number): CronDetailResponse { decode(input: BinaryReader | Uint8Array, length?: number): CronDetailResponse {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input); const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length; const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseCronDetailResponse(); const message = createBaseCronDetailResponse();
while (reader.pos < end) { while (reader.pos < end) {
const tag = reader.uint32(); const tag = reader.uint32();
@ -2825,7 +3171,7 @@ export const NotificationInfo: MessageFns<NotificationInfo> = {
decode(input: BinaryReader | Uint8Array, length?: number): NotificationInfo { decode(input: BinaryReader | Uint8Array, length?: number): NotificationInfo {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input); const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length; const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseNotificationInfo(); const message = createBaseNotificationInfo();
while (reader.pos < end) { while (reader.pos < end) {
const tag = reader.uint32(); const tag = reader.uint32();
@ -3774,7 +4120,7 @@ export const SystemNotifyRequest: MessageFns<SystemNotifyRequest> = {
decode(input: BinaryReader | Uint8Array, length?: number): SystemNotifyRequest { decode(input: BinaryReader | Uint8Array, length?: number): SystemNotifyRequest {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input); const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length; const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseSystemNotifyRequest(); const message = createBaseSystemNotifyRequest();
while (reader.pos < end) { while (reader.pos < end) {
const tag = reader.uint32(); const tag = reader.uint32();
@ -3854,127 +4200,173 @@ export const ApiService = {
path: "/com.ql.api.Api/GetEnvs", path: "/com.ql.api.Api/GetEnvs",
requestStream: false, requestStream: false,
responseStream: false, responseStream: false,
requestSerialize: (value: GetEnvsRequest) => Buffer.from(GetEnvsRequest.encode(value).finish()), requestSerialize: (value: GetEnvsRequest): Buffer => Buffer.from(GetEnvsRequest.encode(value).finish()),
requestDeserialize: (value: Buffer) => GetEnvsRequest.decode(value), requestDeserialize: (value: Buffer): GetEnvsRequest => GetEnvsRequest.decode(value),
responseSerialize: (value: EnvsResponse) => Buffer.from(EnvsResponse.encode(value).finish()), responseSerialize: (value: EnvsResponse): Buffer => Buffer.from(EnvsResponse.encode(value).finish()),
responseDeserialize: (value: Buffer) => EnvsResponse.decode(value), responseDeserialize: (value: Buffer): EnvsResponse => EnvsResponse.decode(value),
}, },
createEnv: { createEnv: {
path: "/com.ql.api.Api/CreateEnv", path: "/com.ql.api.Api/CreateEnv",
requestStream: false, requestStream: false,
responseStream: false, responseStream: false,
requestSerialize: (value: CreateEnvRequest) => Buffer.from(CreateEnvRequest.encode(value).finish()), requestSerialize: (value: CreateEnvRequest): Buffer => Buffer.from(CreateEnvRequest.encode(value).finish()),
requestDeserialize: (value: Buffer) => CreateEnvRequest.decode(value), requestDeserialize: (value: Buffer): CreateEnvRequest => CreateEnvRequest.decode(value),
responseSerialize: (value: EnvsResponse) => Buffer.from(EnvsResponse.encode(value).finish()), responseSerialize: (value: EnvsResponse): Buffer => Buffer.from(EnvsResponse.encode(value).finish()),
responseDeserialize: (value: Buffer) => EnvsResponse.decode(value), responseDeserialize: (value: Buffer): EnvsResponse => EnvsResponse.decode(value),
}, },
updateEnv: { updateEnv: {
path: "/com.ql.api.Api/UpdateEnv", path: "/com.ql.api.Api/UpdateEnv",
requestStream: false, requestStream: false,
responseStream: false, responseStream: false,
requestSerialize: (value: UpdateEnvRequest) => Buffer.from(UpdateEnvRequest.encode(value).finish()), requestSerialize: (value: UpdateEnvRequest): Buffer => Buffer.from(UpdateEnvRequest.encode(value).finish()),
requestDeserialize: (value: Buffer) => UpdateEnvRequest.decode(value), requestDeserialize: (value: Buffer): UpdateEnvRequest => UpdateEnvRequest.decode(value),
responseSerialize: (value: EnvResponse) => Buffer.from(EnvResponse.encode(value).finish()), responseSerialize: (value: EnvResponse): Buffer => Buffer.from(EnvResponse.encode(value).finish()),
responseDeserialize: (value: Buffer) => EnvResponse.decode(value), responseDeserialize: (value: Buffer): EnvResponse => EnvResponse.decode(value),
}, },
deleteEnvs: { deleteEnvs: {
path: "/com.ql.api.Api/DeleteEnvs", path: "/com.ql.api.Api/DeleteEnvs",
requestStream: false, requestStream: false,
responseStream: false, responseStream: false,
requestSerialize: (value: DeleteEnvsRequest) => Buffer.from(DeleteEnvsRequest.encode(value).finish()), requestSerialize: (value: DeleteEnvsRequest): Buffer => Buffer.from(DeleteEnvsRequest.encode(value).finish()),
requestDeserialize: (value: Buffer) => DeleteEnvsRequest.decode(value), requestDeserialize: (value: Buffer): DeleteEnvsRequest => DeleteEnvsRequest.decode(value),
responseSerialize: (value: Response) => Buffer.from(Response.encode(value).finish()), responseSerialize: (value: Response): Buffer => Buffer.from(Response.encode(value).finish()),
responseDeserialize: (value: Buffer) => Response.decode(value), responseDeserialize: (value: Buffer): Response => Response.decode(value),
}, },
moveEnv: { moveEnv: {
path: "/com.ql.api.Api/MoveEnv", path: "/com.ql.api.Api/MoveEnv",
requestStream: false, requestStream: false,
responseStream: false, responseStream: false,
requestSerialize: (value: MoveEnvRequest) => Buffer.from(MoveEnvRequest.encode(value).finish()), requestSerialize: (value: MoveEnvRequest): Buffer => Buffer.from(MoveEnvRequest.encode(value).finish()),
requestDeserialize: (value: Buffer) => MoveEnvRequest.decode(value), requestDeserialize: (value: Buffer): MoveEnvRequest => MoveEnvRequest.decode(value),
responseSerialize: (value: EnvResponse) => Buffer.from(EnvResponse.encode(value).finish()), responseSerialize: (value: EnvResponse): Buffer => Buffer.from(EnvResponse.encode(value).finish()),
responseDeserialize: (value: Buffer) => EnvResponse.decode(value), responseDeserialize: (value: Buffer): EnvResponse => EnvResponse.decode(value),
}, },
disableEnvs: { disableEnvs: {
path: "/com.ql.api.Api/DisableEnvs", path: "/com.ql.api.Api/DisableEnvs",
requestStream: false, requestStream: false,
responseStream: false, responseStream: false,
requestSerialize: (value: DisableEnvsRequest) => Buffer.from(DisableEnvsRequest.encode(value).finish()), requestSerialize: (value: DisableEnvsRequest): Buffer => Buffer.from(DisableEnvsRequest.encode(value).finish()),
requestDeserialize: (value: Buffer) => DisableEnvsRequest.decode(value), requestDeserialize: (value: Buffer): DisableEnvsRequest => DisableEnvsRequest.decode(value),
responseSerialize: (value: Response) => Buffer.from(Response.encode(value).finish()), responseSerialize: (value: Response): Buffer => Buffer.from(Response.encode(value).finish()),
responseDeserialize: (value: Buffer) => Response.decode(value), responseDeserialize: (value: Buffer): Response => Response.decode(value),
}, },
enableEnvs: { enableEnvs: {
path: "/com.ql.api.Api/EnableEnvs", path: "/com.ql.api.Api/EnableEnvs",
requestStream: false, requestStream: false,
responseStream: false, responseStream: false,
requestSerialize: (value: EnableEnvsRequest) => Buffer.from(EnableEnvsRequest.encode(value).finish()), requestSerialize: (value: EnableEnvsRequest): Buffer => Buffer.from(EnableEnvsRequest.encode(value).finish()),
requestDeserialize: (value: Buffer) => EnableEnvsRequest.decode(value), requestDeserialize: (value: Buffer): EnableEnvsRequest => EnableEnvsRequest.decode(value),
responseSerialize: (value: Response) => Buffer.from(Response.encode(value).finish()), responseSerialize: (value: Response): Buffer => Buffer.from(Response.encode(value).finish()),
responseDeserialize: (value: Buffer) => Response.decode(value), responseDeserialize: (value: Buffer): Response => Response.decode(value),
}, },
updateEnvNames: { updateEnvNames: {
path: "/com.ql.api.Api/UpdateEnvNames", path: "/com.ql.api.Api/UpdateEnvNames",
requestStream: false, requestStream: false,
responseStream: false, responseStream: false,
requestSerialize: (value: UpdateEnvNamesRequest) => Buffer.from(UpdateEnvNamesRequest.encode(value).finish()), requestSerialize: (value: UpdateEnvNamesRequest): Buffer =>
requestDeserialize: (value: Buffer) => UpdateEnvNamesRequest.decode(value), Buffer.from(UpdateEnvNamesRequest.encode(value).finish()),
responseSerialize: (value: Response) => Buffer.from(Response.encode(value).finish()), requestDeserialize: (value: Buffer): UpdateEnvNamesRequest => UpdateEnvNamesRequest.decode(value),
responseDeserialize: (value: Buffer) => Response.decode(value), responseSerialize: (value: Response): Buffer => Buffer.from(Response.encode(value).finish()),
responseDeserialize: (value: Buffer): Response => Response.decode(value),
}, },
getEnvById: { getEnvById: {
path: "/com.ql.api.Api/GetEnvById", path: "/com.ql.api.Api/GetEnvById",
requestStream: false, requestStream: false,
responseStream: false, responseStream: false,
requestSerialize: (value: GetEnvByIdRequest) => Buffer.from(GetEnvByIdRequest.encode(value).finish()), requestSerialize: (value: GetEnvByIdRequest): Buffer => Buffer.from(GetEnvByIdRequest.encode(value).finish()),
requestDeserialize: (value: Buffer) => GetEnvByIdRequest.decode(value), requestDeserialize: (value: Buffer): GetEnvByIdRequest => GetEnvByIdRequest.decode(value),
responseSerialize: (value: EnvResponse) => Buffer.from(EnvResponse.encode(value).finish()), responseSerialize: (value: EnvResponse): Buffer => Buffer.from(EnvResponse.encode(value).finish()),
responseDeserialize: (value: Buffer) => EnvResponse.decode(value), responseDeserialize: (value: Buffer): EnvResponse => EnvResponse.decode(value),
}, },
systemNotify: { systemNotify: {
path: "/com.ql.api.Api/SystemNotify", path: "/com.ql.api.Api/SystemNotify",
requestStream: false, requestStream: false,
responseStream: false, responseStream: false,
requestSerialize: (value: SystemNotifyRequest) => Buffer.from(SystemNotifyRequest.encode(value).finish()), requestSerialize: (value: SystemNotifyRequest): Buffer => Buffer.from(SystemNotifyRequest.encode(value).finish()),
requestDeserialize: (value: Buffer) => SystemNotifyRequest.decode(value), requestDeserialize: (value: Buffer): SystemNotifyRequest => SystemNotifyRequest.decode(value),
responseSerialize: (value: Response) => Buffer.from(Response.encode(value).finish()), responseSerialize: (value: Response): Buffer => Buffer.from(Response.encode(value).finish()),
responseDeserialize: (value: Buffer) => Response.decode(value), responseDeserialize: (value: Buffer): Response => Response.decode(value),
}, },
getCronDetail: { getCronDetail: {
path: "/com.ql.api.Api/GetCronDetail", path: "/com.ql.api.Api/GetCronDetail",
requestStream: false, requestStream: false,
responseStream: false, responseStream: false,
requestSerialize: (value: CronDetailRequest) => Buffer.from(CronDetailRequest.encode(value).finish()), requestSerialize: (value: CronDetailRequest): Buffer => Buffer.from(CronDetailRequest.encode(value).finish()),
requestDeserialize: (value: Buffer) => CronDetailRequest.decode(value), requestDeserialize: (value: Buffer): CronDetailRequest => CronDetailRequest.decode(value),
responseSerialize: (value: CronDetailResponse) => Buffer.from(CronDetailResponse.encode(value).finish()), responseSerialize: (value: CronDetailResponse): Buffer => Buffer.from(CronDetailResponse.encode(value).finish()),
responseDeserialize: (value: Buffer) => CronDetailResponse.decode(value), responseDeserialize: (value: Buffer): CronDetailResponse => CronDetailResponse.decode(value),
}, },
createCron: { createCron: {
path: "/com.ql.api.Api/CreateCron", path: "/com.ql.api.Api/CreateCron",
requestStream: false, requestStream: false,
responseStream: false, responseStream: false,
requestSerialize: (value: CreateCronRequest) => Buffer.from(CreateCronRequest.encode(value).finish()), requestSerialize: (value: CreateCronRequest): Buffer => Buffer.from(CreateCronRequest.encode(value).finish()),
requestDeserialize: (value: Buffer) => CreateCronRequest.decode(value), requestDeserialize: (value: Buffer): CreateCronRequest => CreateCronRequest.decode(value),
responseSerialize: (value: CronResponse) => Buffer.from(CronResponse.encode(value).finish()), responseSerialize: (value: CronResponse): Buffer => Buffer.from(CronResponse.encode(value).finish()),
responseDeserialize: (value: Buffer) => CronResponse.decode(value), responseDeserialize: (value: Buffer): CronResponse => CronResponse.decode(value),
}, },
updateCron: { updateCron: {
path: "/com.ql.api.Api/UpdateCron", path: "/com.ql.api.Api/UpdateCron",
requestStream: false, requestStream: false,
responseStream: false, responseStream: false,
requestSerialize: (value: UpdateCronRequest) => Buffer.from(UpdateCronRequest.encode(value).finish()), requestSerialize: (value: UpdateCronRequest): Buffer => Buffer.from(UpdateCronRequest.encode(value).finish()),
requestDeserialize: (value: Buffer) => UpdateCronRequest.decode(value), requestDeserialize: (value: Buffer): UpdateCronRequest => UpdateCronRequest.decode(value),
responseSerialize: (value: CronResponse) => Buffer.from(CronResponse.encode(value).finish()), responseSerialize: (value: CronResponse): Buffer => Buffer.from(CronResponse.encode(value).finish()),
responseDeserialize: (value: Buffer) => CronResponse.decode(value), responseDeserialize: (value: Buffer): CronResponse => CronResponse.decode(value),
}, },
deleteCrons: { deleteCrons: {
path: "/com.ql.api.Api/DeleteCrons", path: "/com.ql.api.Api/DeleteCrons",
requestStream: false, requestStream: false,
responseStream: false, responseStream: false,
requestSerialize: (value: DeleteCronsRequest) => Buffer.from(DeleteCronsRequest.encode(value).finish()), requestSerialize: (value: DeleteCronsRequest): Buffer => Buffer.from(DeleteCronsRequest.encode(value).finish()),
requestDeserialize: (value: Buffer) => DeleteCronsRequest.decode(value), requestDeserialize: (value: Buffer): DeleteCronsRequest => DeleteCronsRequest.decode(value),
responseSerialize: (value: Response) => Buffer.from(Response.encode(value).finish()), responseSerialize: (value: Response): Buffer => Buffer.from(Response.encode(value).finish()),
responseDeserialize: (value: Buffer) => Response.decode(value), responseDeserialize: (value: Buffer): Response => Response.decode(value),
},
getCrons: {
path: "/com.ql.api.Api/GetCrons",
requestStream: false,
responseStream: false,
requestSerialize: (value: GetCronsRequest): Buffer => Buffer.from(GetCronsRequest.encode(value).finish()),
requestDeserialize: (value: Buffer): GetCronsRequest => GetCronsRequest.decode(value),
responseSerialize: (value: CronsResponse): Buffer => Buffer.from(CronsResponse.encode(value).finish()),
responseDeserialize: (value: Buffer): CronsResponse => CronsResponse.decode(value),
},
getCronById: {
path: "/com.ql.api.Api/GetCronById",
requestStream: false,
responseStream: false,
requestSerialize: (value: GetCronByIdRequest): Buffer => Buffer.from(GetCronByIdRequest.encode(value).finish()),
requestDeserialize: (value: Buffer): GetCronByIdRequest => GetCronByIdRequest.decode(value),
responseSerialize: (value: CronResponse): Buffer => Buffer.from(CronResponse.encode(value).finish()),
responseDeserialize: (value: Buffer): CronResponse => CronResponse.decode(value),
},
enableCrons: {
path: "/com.ql.api.Api/EnableCrons",
requestStream: false,
responseStream: false,
requestSerialize: (value: EnableCronsRequest): Buffer => Buffer.from(EnableCronsRequest.encode(value).finish()),
requestDeserialize: (value: Buffer): EnableCronsRequest => EnableCronsRequest.decode(value),
responseSerialize: (value: Response): Buffer => Buffer.from(Response.encode(value).finish()),
responseDeserialize: (value: Buffer): Response => Response.decode(value),
},
disableCrons: {
path: "/com.ql.api.Api/DisableCrons",
requestStream: false,
responseStream: false,
requestSerialize: (value: DisableCronsRequest): Buffer => Buffer.from(DisableCronsRequest.encode(value).finish()),
requestDeserialize: (value: Buffer): DisableCronsRequest => DisableCronsRequest.decode(value),
responseSerialize: (value: Response): Buffer => Buffer.from(Response.encode(value).finish()),
responseDeserialize: (value: Buffer): Response => Response.decode(value),
},
runCrons: {
path: "/com.ql.api.Api/RunCrons",
requestStream: false,
responseStream: false,
requestSerialize: (value: RunCronsRequest): Buffer => Buffer.from(RunCronsRequest.encode(value).finish()),
requestDeserialize: (value: Buffer): RunCronsRequest => RunCronsRequest.decode(value),
responseSerialize: (value: Response): Buffer => Buffer.from(Response.encode(value).finish()),
responseDeserialize: (value: Buffer): Response => Response.decode(value),
}, },
} as const; } as const;
@ -3993,6 +4385,11 @@ export interface ApiServer extends UntypedServiceImplementation {
createCron: handleUnaryCall<CreateCronRequest, CronResponse>; createCron: handleUnaryCall<CreateCronRequest, CronResponse>;
updateCron: handleUnaryCall<UpdateCronRequest, CronResponse>; updateCron: handleUnaryCall<UpdateCronRequest, CronResponse>;
deleteCrons: handleUnaryCall<DeleteCronsRequest, Response>; deleteCrons: handleUnaryCall<DeleteCronsRequest, Response>;
getCrons: handleUnaryCall<GetCronsRequest, CronsResponse>;
getCronById: handleUnaryCall<GetCronByIdRequest, CronResponse>;
enableCrons: handleUnaryCall<EnableCronsRequest, Response>;
disableCrons: handleUnaryCall<DisableCronsRequest, Response>;
runCrons: handleUnaryCall<RunCronsRequest, Response>;
} }
export interface ApiClient extends Client { export interface ApiClient extends Client {
@ -4206,6 +4603,81 @@ export interface ApiClient extends Client {
options: Partial<CallOptions>, options: Partial<CallOptions>,
callback: (error: ServiceError | null, response: Response) => void, callback: (error: ServiceError | null, response: Response) => void,
): ClientUnaryCall; ): ClientUnaryCall;
getCrons(
request: GetCronsRequest,
callback: (error: ServiceError | null, response: CronsResponse) => void,
): ClientUnaryCall;
getCrons(
request: GetCronsRequest,
metadata: Metadata,
callback: (error: ServiceError | null, response: CronsResponse) => void,
): ClientUnaryCall;
getCrons(
request: GetCronsRequest,
metadata: Metadata,
options: Partial<CallOptions>,
callback: (error: ServiceError | null, response: CronsResponse) => void,
): ClientUnaryCall;
getCronById(
request: GetCronByIdRequest,
callback: (error: ServiceError | null, response: CronResponse) => void,
): ClientUnaryCall;
getCronById(
request: GetCronByIdRequest,
metadata: Metadata,
callback: (error: ServiceError | null, response: CronResponse) => void,
): ClientUnaryCall;
getCronById(
request: GetCronByIdRequest,
metadata: Metadata,
options: Partial<CallOptions>,
callback: (error: ServiceError | null, response: CronResponse) => void,
): ClientUnaryCall;
enableCrons(
request: EnableCronsRequest,
callback: (error: ServiceError | null, response: Response) => void,
): ClientUnaryCall;
enableCrons(
request: EnableCronsRequest,
metadata: Metadata,
callback: (error: ServiceError | null, response: Response) => void,
): ClientUnaryCall;
enableCrons(
request: EnableCronsRequest,
metadata: Metadata,
options: Partial<CallOptions>,
callback: (error: ServiceError | null, response: Response) => void,
): ClientUnaryCall;
disableCrons(
request: DisableCronsRequest,
callback: (error: ServiceError | null, response: Response) => void,
): ClientUnaryCall;
disableCrons(
request: DisableCronsRequest,
metadata: Metadata,
callback: (error: ServiceError | null, response: Response) => void,
): ClientUnaryCall;
disableCrons(
request: DisableCronsRequest,
metadata: Metadata,
options: Partial<CallOptions>,
callback: (error: ServiceError | null, response: Response) => void,
): ClientUnaryCall;
runCrons(
request: RunCronsRequest,
callback: (error: ServiceError | null, response: Response) => void,
): ClientUnaryCall;
runCrons(
request: RunCronsRequest,
metadata: Metadata,
callback: (error: ServiceError | null, response: Response) => void,
): ClientUnaryCall;
runCrons(
request: RunCronsRequest,
metadata: Metadata,
options: Partial<CallOptions>,
callback: (error: ServiceError | null, response: Response) => void,
): ClientUnaryCall;
} }
export const ApiClient = makeGenericClientConstructor(ApiService, "com.ql.api.Api") as unknown as { export const ApiClient = makeGenericClientConstructor(ApiService, "com.ql.api.Api") as unknown as {

View File

@ -1,20 +1,20 @@
// Code generated by protoc-gen-ts_proto. DO NOT EDIT. // Code generated by protoc-gen-ts_proto. DO NOT EDIT.
// versions: // versions:
// protoc-gen-ts_proto v2.6.1 // protoc-gen-ts_proto v2.8.3
// protoc v3.17.3 // protoc v3.21.12
// source: back/protos/cron.proto // source: back/protos/cron.proto
/* eslint-disable */ /* eslint-disable */
import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire"; import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
import { import {
type CallOptions, type CallOptions,
ChannelCredentials, type ChannelCredentials,
Client, Client,
type ClientOptions, type ClientOptions,
type ClientUnaryCall, type ClientUnaryCall,
type handleUnaryCall, type handleUnaryCall,
makeGenericClientConstructor, makeGenericClientConstructor,
Metadata, type Metadata,
type ServiceError, type ServiceError,
type UntypedServiceImplementation, type UntypedServiceImplementation,
} from "@grpc/grpc-js"; } from "@grpc/grpc-js";
@ -61,7 +61,7 @@ export const ISchedule: MessageFns<ISchedule> = {
decode(input: BinaryReader | Uint8Array, length?: number): ISchedule { decode(input: BinaryReader | Uint8Array, length?: number): ISchedule {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input); const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length; const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseISchedule(); const message = createBaseISchedule();
while (reader.pos < end) { while (reader.pos < end) {
const tag = reader.uint32(); const tag = reader.uint32();
@ -131,7 +131,7 @@ export const ICron: MessageFns<ICron> = {
decode(input: BinaryReader | Uint8Array, length?: number): ICron { decode(input: BinaryReader | Uint8Array, length?: number): ICron {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input); const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length; const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseICron(); const message = createBaseICron();
while (reader.pos < end) { while (reader.pos < end) {
const tag = reader.uint32(); const tag = reader.uint32();
@ -245,7 +245,7 @@ export const AddCronRequest: MessageFns<AddCronRequest> = {
decode(input: BinaryReader | Uint8Array, length?: number): AddCronRequest { decode(input: BinaryReader | Uint8Array, length?: number): AddCronRequest {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input); const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length; const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseAddCronRequest(); const message = createBaseAddCronRequest();
while (reader.pos < end) { while (reader.pos < end) {
const tag = reader.uint32(); const tag = reader.uint32();
@ -300,7 +300,7 @@ export const AddCronResponse: MessageFns<AddCronResponse> = {
decode(input: BinaryReader | Uint8Array, length?: number): AddCronResponse { decode(input: BinaryReader | Uint8Array, length?: number): AddCronResponse {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input); const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length; const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseAddCronResponse(); const message = createBaseAddCronResponse();
while (reader.pos < end) { while (reader.pos < end) {
const tag = reader.uint32(); const tag = reader.uint32();
@ -346,7 +346,7 @@ export const DeleteCronRequest: MessageFns<DeleteCronRequest> = {
decode(input: BinaryReader | Uint8Array, length?: number): DeleteCronRequest { decode(input: BinaryReader | Uint8Array, length?: number): DeleteCronRequest {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input); const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length; const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseDeleteCronRequest(); const message = createBaseDeleteCronRequest();
while (reader.pos < end) { while (reader.pos < end) {
const tag = reader.uint32(); const tag = reader.uint32();
@ -401,7 +401,7 @@ export const DeleteCronResponse: MessageFns<DeleteCronResponse> = {
decode(input: BinaryReader | Uint8Array, length?: number): DeleteCronResponse { decode(input: BinaryReader | Uint8Array, length?: number): DeleteCronResponse {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input); const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length; const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseDeleteCronResponse(); const message = createBaseDeleteCronResponse();
while (reader.pos < end) { while (reader.pos < end) {
const tag = reader.uint32(); const tag = reader.uint32();
@ -439,19 +439,19 @@ export const CronService = {
path: "/com.ql.cron.Cron/addCron", path: "/com.ql.cron.Cron/addCron",
requestStream: false, requestStream: false,
responseStream: false, responseStream: false,
requestSerialize: (value: AddCronRequest) => Buffer.from(AddCronRequest.encode(value).finish()), requestSerialize: (value: AddCronRequest): Buffer => Buffer.from(AddCronRequest.encode(value).finish()),
requestDeserialize: (value: Buffer) => AddCronRequest.decode(value), requestDeserialize: (value: Buffer): AddCronRequest => AddCronRequest.decode(value),
responseSerialize: (value: AddCronResponse) => Buffer.from(AddCronResponse.encode(value).finish()), responseSerialize: (value: AddCronResponse): Buffer => Buffer.from(AddCronResponse.encode(value).finish()),
responseDeserialize: (value: Buffer) => AddCronResponse.decode(value), responseDeserialize: (value: Buffer): AddCronResponse => AddCronResponse.decode(value),
}, },
delCron: { delCron: {
path: "/com.ql.cron.Cron/delCron", path: "/com.ql.cron.Cron/delCron",
requestStream: false, requestStream: false,
responseStream: false, responseStream: false,
requestSerialize: (value: DeleteCronRequest) => Buffer.from(DeleteCronRequest.encode(value).finish()), requestSerialize: (value: DeleteCronRequest): Buffer => Buffer.from(DeleteCronRequest.encode(value).finish()),
requestDeserialize: (value: Buffer) => DeleteCronRequest.decode(value), requestDeserialize: (value: Buffer): DeleteCronRequest => DeleteCronRequest.decode(value),
responseSerialize: (value: DeleteCronResponse) => Buffer.from(DeleteCronResponse.encode(value).finish()), responseSerialize: (value: DeleteCronResponse): Buffer => Buffer.from(DeleteCronResponse.encode(value).finish()),
responseDeserialize: (value: Buffer) => DeleteCronResponse.decode(value), responseDeserialize: (value: Buffer): DeleteCronResponse => DeleteCronResponse.decode(value),
}, },
} as const; } as const;

View File

@ -1,14 +1,14 @@
// Code generated by protoc-gen-ts_proto. DO NOT EDIT. // Code generated by protoc-gen-ts_proto. DO NOT EDIT.
// versions: // versions:
// protoc-gen-ts_proto v2.6.1 // protoc-gen-ts_proto v2.8.3
// protoc v3.17.3 // protoc v3.21.12
// source: back/protos/health.proto // source: back/protos/health.proto
/* eslint-disable */ /* eslint-disable */
import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire"; import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
import { import {
type CallOptions, type CallOptions,
ChannelCredentials, type ChannelCredentials,
Client, Client,
type ClientOptions, type ClientOptions,
type ClientReadableStream, type ClientReadableStream,
@ -16,7 +16,7 @@ import {
type handleServerStreamingCall, type handleServerStreamingCall,
type handleUnaryCall, type handleUnaryCall,
makeGenericClientConstructor, makeGenericClientConstructor,
Metadata, type Metadata,
type ServiceError, type ServiceError,
type UntypedServiceImplementation, type UntypedServiceImplementation,
} from "@grpc/grpc-js"; } from "@grpc/grpc-js";
@ -90,7 +90,7 @@ export const HealthCheckRequest: MessageFns<HealthCheckRequest> = {
decode(input: BinaryReader | Uint8Array, length?: number): HealthCheckRequest { decode(input: BinaryReader | Uint8Array, length?: number): HealthCheckRequest {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input); const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length; const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseHealthCheckRequest(); const message = createBaseHealthCheckRequest();
while (reader.pos < end) { while (reader.pos < end) {
const tag = reader.uint32(); const tag = reader.uint32();
@ -148,7 +148,7 @@ export const HealthCheckResponse: MessageFns<HealthCheckResponse> = {
decode(input: BinaryReader | Uint8Array, length?: number): HealthCheckResponse { decode(input: BinaryReader | Uint8Array, length?: number): HealthCheckResponse {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input); const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length; const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseHealthCheckResponse(); const message = createBaseHealthCheckResponse();
while (reader.pos < end) { while (reader.pos < end) {
const tag = reader.uint32(); const tag = reader.uint32();
@ -198,19 +198,19 @@ export const HealthService = {
path: "/com.ql.health.Health/Check", path: "/com.ql.health.Health/Check",
requestStream: false, requestStream: false,
responseStream: false, responseStream: false,
requestSerialize: (value: HealthCheckRequest) => Buffer.from(HealthCheckRequest.encode(value).finish()), requestSerialize: (value: HealthCheckRequest): Buffer => Buffer.from(HealthCheckRequest.encode(value).finish()),
requestDeserialize: (value: Buffer) => HealthCheckRequest.decode(value), requestDeserialize: (value: Buffer): HealthCheckRequest => HealthCheckRequest.decode(value),
responseSerialize: (value: HealthCheckResponse) => Buffer.from(HealthCheckResponse.encode(value).finish()), responseSerialize: (value: HealthCheckResponse): Buffer => Buffer.from(HealthCheckResponse.encode(value).finish()),
responseDeserialize: (value: Buffer) => HealthCheckResponse.decode(value), responseDeserialize: (value: Buffer): HealthCheckResponse => HealthCheckResponse.decode(value),
}, },
watch: { watch: {
path: "/com.ql.health.Health/Watch", path: "/com.ql.health.Health/Watch",
requestStream: false, requestStream: false,
responseStream: true, responseStream: true,
requestSerialize: (value: HealthCheckRequest) => Buffer.from(HealthCheckRequest.encode(value).finish()), requestSerialize: (value: HealthCheckRequest): Buffer => Buffer.from(HealthCheckRequest.encode(value).finish()),
requestDeserialize: (value: Buffer) => HealthCheckRequest.decode(value), requestDeserialize: (value: Buffer): HealthCheckRequest => HealthCheckRequest.decode(value),
responseSerialize: (value: HealthCheckResponse) => Buffer.from(HealthCheckResponse.encode(value).finish()), responseSerialize: (value: HealthCheckResponse): Buffer => Buffer.from(HealthCheckResponse.encode(value).finish()),
responseDeserialize: (value: Buffer) => HealthCheckResponse.decode(value), responseDeserialize: (value: Buffer): HealthCheckResponse => HealthCheckResponse.decode(value),
}, },
} as const; } as const;

View File

@ -30,6 +30,12 @@ import {
UpdateCronRequest, UpdateCronRequest,
DeleteCronsRequest, DeleteCronsRequest,
CronResponse, CronResponse,
GetCronsRequest,
CronsResponse,
GetCronByIdRequest,
EnableCronsRequest,
DisableCronsRequest,
RunCronsRequest,
} from '../protos/api'; } from '../protos/api';
import { NotificationInfo } from '../data/notify'; import { NotificationInfo } from '../data/notify';
@ -323,3 +329,116 @@ export const deleteCrons = async (
callback(e); callback(e);
} }
}; };
export const getCrons = async (
call: ServerUnaryCall<GetCronsRequest, CronsResponse>,
callback: sendUnaryData<CronsResponse>,
) => {
try {
const cronService = Container.get(CronService);
const result = await cronService.crontabs({
searchValue: call.request.searchValue || '',
page: '0',
size: '0',
sorter: '',
filters: '',
queryString: '',
});
const data = result.data.map((x) => normalizeCronData(x as CronItem));
callback(null, {
code: 200,
data: data.filter((x): x is CronItem => x !== undefined),
});
} catch (e: any) {
callback(null, {
code: 500,
data: [],
message: e.message,
});
}
};
export const getCronById = async (
call: ServerUnaryCall<GetCronByIdRequest, CronResponse>,
callback: sendUnaryData<CronResponse>,
) => {
try {
if (!call.request.id) {
return callback(null, {
code: 400,
data: undefined,
message: 'id parameter is required',
});
}
const cronService = Container.get(CronService);
const data = (await cronService.getDb({ id: call.request.id })) as CronItem;
callback(null, { code: 200, data: normalizeCronData(data) });
} catch (e: any) {
callback(null, {
code: 404,
data: undefined,
message: e.message,
});
}
};
export const enableCrons = async (
call: ServerUnaryCall<EnableCronsRequest, Response>,
callback: sendUnaryData<Response>,
) => {
try {
if (!call.request.ids || call.request.ids.length === 0) {
return callback(null, {
code: 400,
message: 'ids parameter is required',
});
}
const cronService = Container.get(CronService);
await cronService.enabled(call.request.ids);
callback(null, { code: 200 });
} catch (e: any) {
callback(e);
}
};
export const disableCrons = async (
call: ServerUnaryCall<DisableCronsRequest, Response>,
callback: sendUnaryData<Response>,
) => {
try {
if (!call.request.ids || call.request.ids.length === 0) {
return callback(null, {
code: 400,
message: 'ids parameter is required',
});
}
const cronService = Container.get(CronService);
await cronService.disabled(call.request.ids);
callback(null, { code: 200 });
} catch (e: any) {
callback(e);
}
};
export const runCrons = async (
call: ServerUnaryCall<RunCronsRequest, Response>,
callback: sendUnaryData<Response>,
) => {
try {
if (!call.request.ids || call.request.ids.length === 0) {
return callback(null, {
code: 400,
message: 'ids parameter is required',
});
}
const cronService = Container.get(CronService);
await cronService.run(call.request.ids);
callback(null, { code: 200 });
} catch (e: any) {
callback(e);
}
};

File diff suppressed because it is too large Load Diff

View File

@ -12,4 +12,32 @@ QLAPI.getEnvs({ searchValue: 'dddd' }).then((x) => {
QLAPI.systemNotify({ title: '123', content: '231' }).then((x) => { QLAPI.systemNotify({ title: '123', content: '231' }).then((x) => {
console.log('systemNotify', x); console.log('systemNotify', x);
}); });
// 查询定时任务 (Query cron tasks)
QLAPI.getCrons({ searchValue: 'test' }).then((x) => {
console.log('getCrons', x);
});
// 通过ID查询定时任务 (Get cron by ID)
QLAPI.getCronById({ id: 1 }).then((x) => {
console.log('getCronById', x);
}).catch((err) => {
console.log('getCronById error', err);
});
// 启用定时任务 (Enable cron tasks)
QLAPI.enableCrons({ ids: [1, 2] }).then((x) => {
console.log('enableCrons', x);
});
// 禁用定时任务 (Disable cron tasks)
QLAPI.disableCrons({ ids: [1, 2] }).then((x) => {
console.log('disableCrons', x);
});
// 手动执行定时任务 (Run cron tasks manually)
QLAPI.runCrons({ ids: [1] }).then((x) => {
console.log('runCrons', x);
});
console.log('test desc'); console.log('test desc');

View File

@ -33,6 +33,11 @@ class GrpcClient {
'createCron', 'createCron',
'updateCron', 'updateCron',
'deleteCrons', 'deleteCrons',
'getCrons',
'getCronById',
'enableCrons',
'disableCrons',
'runCrons',
]; ];
#client; #client;