prsima, grpc

This commit is contained in:
Gsk54
2022-12-13 18:00:07 +01:00
parent a4611b14ce
commit 48165e1d79
19 changed files with 792 additions and 51 deletions

View File

@@ -0,0 +1,33 @@
syntax = "proto3";
package user;
service UsersService {
rpc FindOneByUuid(UserByUuid) returns (User);
rpc FindAll(UserFilter) returns (Users);
rpc Create(CreateUser) returns (User);
}
message UserByUuid {
string uuid = 1;
}
message User {
string uuid = 1;
string firstName = 2;
string lastName = 3;
string email = 4;
}
message CreateUser {
string uuid = 1;
string firstName = 2;
string lastName = 3;
string email = 4;
}
message UserFilter {}
message Users {
repeated User users = 1;
}

View File

@@ -0,0 +1,25 @@
import { Controller } from '@nestjs/common';
import { QueryBus } from '@nestjs/cqrs';
import { GrpcMethod, RpcException } from '@nestjs/microservices';
import { FindUserByUuidRequest } from '../../domain/dto/findUserByUuidRequest';
import { User } from '../../domain/entities/user';
import { FindUserByUuidQuery } from '../../queries/find-user-by-uuid.query';
@Controller()
export class UsersController {
constructor(private readonly _queryBus: QueryBus) {}
@GrpcMethod('UsersService', 'FindOneByUuid')
async findOneByUuid(data: FindUserByUuidRequest): Promise<User> {
const user = await this._queryBus.execute(
new FindUserByUuidQuery(data.uuid),
);
if (user) {
return user;
}
throw new RpcException({
code: 5,
message: 'User not found',
});
}
}