File

src/shared/onchainDataFields/onchainDataField.service.ts

Index

Methods

Constructor

constructor(onChainDataFieldModel: Model<OnChainDataFieldDocument>)
Parameters :
Name Type Optional
onChainDataFieldModel Model<OnChainDataFieldDocument> No

Methods

Async create
create(onchainFields: OnChainDataField[])
Parameters :
Name Type Optional
onchainFields OnChainDataField[] No
Returns : unknown
Async findByHashes
findByHashes(hashes: string[])
Parameters :
Name Type Optional
hashes string[] No
Returns : unknown
import { Injectable } from "@nestjs/common";
import { InjectModel } from "@nestjs/mongoose";
import { Model } from "mongoose";
import { OnChainDataField } from "./entities/onChainDataField.entity";
import { OnChainDataFieldDocument } from "./schemas/onchainDataFeild.schema";

@Injectable()
export class OnChainDataFieldService {
  constructor(
    @InjectModel(OnChainDataField.name)
    private readonly onChainDataFieldModel: Model<OnChainDataFieldDocument>,
  ) {}

  async create(onchainFields: OnChainDataField[]) {
    const bulkOps = onchainFields.map((onchainField) => {
      return {
        updateOne: {
          filter: {
            name: onchainField.name,
            linkedName: onchainField.linkedName,
          },
          update: { ...onchainField },
          upsert: true,
        },
      };
    });

    const result = await this.onChainDataFieldModel.bulkWrite(bulkOps);
    return result;
  }
  async findByHashes(hashes: string[]) {
    return this.onChainDataFieldModel.find({
      $or: [{ hash: { $in: hashes } }, { linkedHash: { $in: hashes } }],
    });
  }
}

results matching ""

    No results matching ""