src/shared/onchainDataFields/onchainDataField.service.ts
Methods |
|
constructor(onChainDataFieldModel: Model<OnChainDataFieldDocument>)
|
||||||
|
Parameters :
|
| Async create | ||||||
create(onchainFields: OnChainDataField[])
|
||||||
|
Parameters :
Returns :
unknown
|
| Async findByHashes | ||||||
findByHashes(hashes: string[])
|
||||||
|
Parameters :
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 } }],
});
}
}