mirror of
https://gitlab.com/mobicoop/v3/service/user.git
synced 2026-03-24 12:45:49 +00:00
prsima, grpc
This commit is contained in:
33
src/modules/users/adapters/primaries/user.proto
Normal file
33
src/modules/users/adapters/primaries/user.proto
Normal 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;
|
||||
}
|
||||
25
src/modules/users/adapters/primaries/users.controller.ts
Normal file
25
src/modules/users/adapters/primaries/users.controller.ts
Normal 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',
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user