mirror of
https://github.com/dadosfera/maestro.git
synced 2026-11-07 23:49:07 +00:00
63 lines
1.8 KiB
TypeScript
63 lines
1.8 KiB
TypeScript
import { Inject, Injectable, OnModuleInit } from '@nestjs/common';
|
|
import { Metadata } from '@grpc/grpc-js';
|
|
import { ClientGrpc } from '@nestjs/microservices';
|
|
import { DucClient } from '../duc/client.config';
|
|
import DadosferaLogger from '@dadosfera/dadosfera-logs';
|
|
import { ShareMetadataProtoService } from '@dadosfera/protospack-v2/dist/lib/Duc/interfaces/write-service';
|
|
import { lastValueFrom } from 'rxjs';
|
|
import { ProtoServices } from '@dadosfera/protospack-v2/dist/lib/Duc';
|
|
import { CreateShareMetadataDto, UpdateShareMetadataDto } from './dto/create-share-metadata.dto';
|
|
|
|
@Injectable()
|
|
export class ShareMetadataService implements OnModuleInit {
|
|
ducService: ShareMetadataProtoService;
|
|
logger: DadosferaLogger;
|
|
|
|
constructor(
|
|
@Inject(DadosferaLogger)
|
|
dadosferaLogger: DadosferaLogger,
|
|
@Inject(DucClient.name) private readonly grpcClient: ClientGrpc,
|
|
) {
|
|
this.logger = dadosferaLogger.logger;
|
|
}
|
|
|
|
onModuleInit() {
|
|
this.ducService =this.grpcClient.getService<ShareMetadataProtoService>(
|
|
ProtoServices.ShareMetadataProtoService,
|
|
);
|
|
}
|
|
|
|
create(createShareDto: CreateShareMetadataDto, metadata: Metadata) {
|
|
return lastValueFrom(
|
|
this.ducService.FindOrCreateShareMetadata(
|
|
{
|
|
assetId: createShareDto.assetId,
|
|
proposedId: createShareDto.proposedId,
|
|
type: createShareDto.type
|
|
},
|
|
metadata,
|
|
),
|
|
);
|
|
}
|
|
|
|
updateShare(updateShare: UpdateShareMetadataDto, metadata: Metadata) {
|
|
return lastValueFrom(
|
|
this.ducService.ChangeShareMetadataType(
|
|
updateShare,
|
|
metadata,
|
|
),
|
|
);
|
|
}
|
|
|
|
get(id: string, metadata: Metadata) {
|
|
return lastValueFrom(
|
|
this.ducService.GetShareMetadata(
|
|
{
|
|
id,
|
|
},
|
|
metadata,
|
|
),
|
|
);
|
|
}
|
|
}
|