mirror of
https://github.com/dadosfera/maestro.git
synced 2026-09-17 16:44:48 +00:00
52 lines
1.5 KiB
TypeScript
52 lines
1.5 KiB
TypeScript
import { Inject, Injectable, OnModuleInit } from '@nestjs/common';
|
|
import { lastValueFrom } from 'rxjs';
|
|
import { CreateUserOpenDataDTO } from './dto/wordpres-form';
|
|
import DadosferaLogger from '@dadosfera/dadosfera-logs';
|
|
import { UsersProtoService } from '@dadosfera/protospack-v2/dist/lib/Duc/interfaces/write-service';
|
|
import { DucClient } from '../duc/client.config';
|
|
import { ClientGrpc } from '@nestjs/microservices';
|
|
import { ProtoServices } from '@dadosfera/protospack-v2/dist/lib/Duc';
|
|
import { Metadata } from '@grpc/grpc-js';
|
|
|
|
@Injectable()
|
|
export class OpenDataService implements OnModuleInit {
|
|
logger: DadosferaLogger;
|
|
|
|
private usersClientService: UsersProtoService;
|
|
constructor(
|
|
@Inject(DadosferaLogger)
|
|
private dadosferaLogger: DadosferaLogger,
|
|
@Inject(DucClient.name)
|
|
private readonly grpcClient: ClientGrpc,
|
|
) {
|
|
this.logger = dadosferaLogger.logger;
|
|
}
|
|
|
|
onModuleInit() {
|
|
this.usersClientService = this.grpcClient.getService(
|
|
ProtoServices.UsersProtoService,
|
|
);
|
|
|
|
}
|
|
|
|
async createUser(customerId: string, data: CreateUserOpenDataDTO, roleIds: string[], metadata: Metadata) {
|
|
const body = {
|
|
email: data.email,
|
|
name: data.firstName + " " + data.lastName,
|
|
department: data.organization,
|
|
jobTitle: data.enquiryType,
|
|
customerId: customerId,
|
|
roleIds: roleIds
|
|
}
|
|
|
|
try {
|
|
const { user } = await lastValueFrom(
|
|
this.usersClientService.SimpleUserCreate(body, metadata),
|
|
);
|
|
return user.id;
|
|
} catch(err) {
|
|
return err;
|
|
}
|
|
}
|
|
}
|