import { OnModuleInit, Inject, Injectable } from '@nestjs/common'; import { ClientGrpc } from '@nestjs/microservices'; import { DadosferaLogger } from '@dadosfera/dadosfera-logs'; import { lastValueFrom } from 'rxjs'; import { ProtoServices } from '@dadosfera/protospack-v2/dist/lib/Duc'; import { TermsOfUseProtoService as TermsOfUseServiceInterface } from '@dadosfera/protospack-v2/dist/lib/Duc/interfaces/write-service'; import { TermsOfUseGetTokenRequest, TermsOfUseAcceptRequest, } from '@dadosfera/protospack-v2/dist/lib/Duc/interfaces/messages'; import { DucClient } from '../duc/client.config'; import { Metadata } from '@grpc/grpc-js'; @Injectable() export class TermsOfUseClientService implements OnModuleInit { logger: DadosferaLogger; private termsOfUseService: TermsOfUseServiceInterface; constructor( @Inject(DadosferaLogger) dadosferaLogger: DadosferaLogger, @Inject(DucClient.name) private readonly grpcClient: ClientGrpc, ) { this.logger = dadosferaLogger.logger; } onModuleInit() { this.termsOfUseService = this.grpcClient.getService( ProtoServices.TermsOfUseProtoService, ); } async getToken(data: TermsOfUseGetTokenRequest, metadata: Metadata) { return lastValueFrom( this.termsOfUseService.TermsOfUseGetToken(data, metadata), ); } async accept(data: TermsOfUseAcceptRequest) { return lastValueFrom(this.termsOfUseService.TermsOfUseAccept(data)); } }