diff --git a/examples/nestjs/src/client/client.controller.ts b/examples/nestjs/src/client/client.controller.ts index 5511989..f9d6202 100644 --- a/examples/nestjs/src/client/client.controller.ts +++ b/examples/nestjs/src/client/client.controller.ts @@ -6,7 +6,9 @@ import { dateToGrpcTimestamp, } from '@grpc.ts/nestjs-client'; -import { IExampleService } from '../../protobufTypings/example3.interface'; +import type { IExampleService } from '../../protobufTypings/example3.interface'; +import type { IExampleService as IAService } from '../../protobufTypings/example.interface'; +import type { IExampleService as IEx2Service } from '../../protobufTypings/example2.interface'; @Controller('/client') export class ClientController { @@ -15,6 +17,17 @@ export class ClientController { serviceName: 'ExampleService', }) private readonly exampleService: IExampleService, + @GrpcService({ + packageName: 'example.v1', + serviceName: 'ExampleService', + }) + private readonly aService: IAService, + @GrpcService({ + clientName: 'test', + packageName: 'example2.v1', + serviceName: 'ExampleService', + }) + private readonly ex2Service: IEx2Service, ) {} @Get() @@ -38,4 +51,67 @@ export class ClientController { return 'Ok!'; } + + @Get('/empty') + public async sendEmptyMessage(): Promise { + this.exampleService + .sendEmptyMessage( + {}, + createMetadata({ + meta: 'test', + }), + ) + .then((data) => { + console.log(data); + }) + .catch((err) => { + console.log(err); + }); + + return 'Ok!'; + } + + @Get('/a') + public async sendMessageA(): Promise { + this.aService + .sendMessage( + { + message: 'hello', + createdAt: dateToGrpcTimestamp(new Date()), + }, + createMetadata({ + meta: 'test', + }), + ) + .then((data) => { + console.log(data); + }) + .catch((err) => { + console.log(err); + }); + + return 'Ok!'; + } + + @Get('/2') + public async sendMessage2(): Promise { + this.ex2Service + .sendMessage( + { + message: 'hello', + createdAt: dateToGrpcTimestamp(new Date()), + }, + createMetadata({ + meta: 'test', + }), + ) + .then((data) => { + console.log(data); + }) + .catch((err) => { + console.log(err); + }); + + return 'Ok!'; + } } diff --git a/examples/nestjs/src/client/client.module.ts b/examples/nestjs/src/client/client.module.ts index 92e4d29..b5964bc 100644 --- a/examples/nestjs/src/client/client.module.ts +++ b/examples/nestjs/src/client/client.module.ts @@ -14,11 +14,26 @@ import { ClientController } from './client.controller'; protoPath: '../proto/example.proto', }, { - packageName: 'example2.v1', - protoPath: '../proto/example2.proto', + protoPath: '../proto/example3.proto', }, + ], + packageDefinitionOptions: { + oneofs: true, + longs: String, + enums: String, + defaults: true, + }, + options: { + keepaliveTimeMs: 5_000, + }, + }, + { + clientName: 'test', + url: 'localhost:3011', + package: [ { - protoPath: '../proto/example3.proto', + packageName: 'example2.v1', + protoPath: '../proto/example2.proto', }, ], packageDefinitionOptions: { diff --git a/examples/nestjs/src/main.ts b/examples/nestjs/src/main.ts index 457a3b2..455943d 100644 --- a/examples/nestjs/src/main.ts +++ b/examples/nestjs/src/main.ts @@ -17,11 +17,26 @@ async function bootstrap() { protoPath: '../proto/example.proto', }, { - packageName: 'example2.v1', - protoPath: '../proto/example2.proto', + protoPath: '../proto/example3.proto', }, + ], + packageDefinitionOptions: { + oneofs: true, + longs: String, + enums: String, + defaults: true, + }, + options: { + keepaliveTimeMs: 5_000, + }, + }, + { + serverName: 'test', + url: 'localhost:3011', + package: [ { - protoPath: '../proto/example3.proto', + packageName: 'example2.v1', + protoPath: '../proto/example2.proto', }, ], packageDefinitionOptions: { diff --git a/examples/nestjs/src/server/server.controller.ts b/examples/nestjs/src/server/server.controller.ts index 44172fe..e914566 100644 --- a/examples/nestjs/src/server/server.controller.ts +++ b/examples/nestjs/src/server/server.controller.ts @@ -19,11 +19,79 @@ export class ServerController { public async sendMessage( request: ISendMessageRequest, metadata: Metadata, - call: ServerUnaryCall, + _call: ServerUnaryCall, ): Promise { console.log('request', request); console.log('metadata', metadata); - console.log('call', call); + + return { + message: { + message: 'hola', + createdAt: dateToGrpcTimestamp(new Date()), + }, + }; + } + + @GrpcUnaryMethod({ + serviceName: 'ExampleService', + }) + public async sendEmptyMessage( + request: ISendMessageRequest, + metadata: Metadata, + _call: ServerUnaryCall, + ): Promise { + console.log('from empty message'); + console.log('request', request); + console.log('metadata', metadata); + + return { + message: { + message: 'hola', + createdAt: dateToGrpcTimestamp(new Date()), + }, + }; + } + + @GrpcUnaryMethod({ + rpcName: 'sendMessage', + serviceName: 'ExampleService', + options: { + package: 'example.v1', + }, + }) + public async sendMessageA( + request: ISendMessageRequest, + metadata: Metadata, + _call: ServerUnaryCall, + ): Promise { + console.log('from sendMessageA'); + console.log('request', request); + console.log('metadata', metadata); + + return { + message: { + message: 'hola', + createdAt: dateToGrpcTimestamp(new Date()), + }, + }; + } + + @GrpcUnaryMethod({ + serverName: 'test', + rpcName: 'sendMessage', + serviceName: 'ExampleService', + options: { + package: 'example2.v1', + }, + }) + public async sendMessage2( + request: ISendMessageRequest, + metadata: Metadata, + _call: ServerUnaryCall, + ): Promise { + console.log('from sendMessage2'); + console.log('request', request); + console.log('metadata', metadata); return { message: {