src/admin/jurisdiction.service.ts
Properties |
|
Methods |
|
| Async setNewJurisdictionFields | |||||
setNewJurisdictionFields(undefined: ISetNewJurisdictionFields)
|
|||||
|
Defined in src/admin/jurisdiction.service.ts:22
|
|||||
|
Parameters :
Returns :
unknown
|
| Private Readonly userCmsService |
Type : UserCmsService
|
Decorators :
@Inject(UserCmsService)
|
|
Defined in src/admin/jurisdiction.service.ts:20
|
| Private Readonly userService |
Type : UserService
|
Decorators :
@Inject(UserService)
|
|
Defined in src/admin/jurisdiction.service.ts:17
|
import { Inject, Injectable } from "@nestjs/common";
import { keccak256, hexlify, toUtf8Bytes } from "ethers";
import { BatchRegistry, RegistryName } from "src/common/interfaces";
import { ISetNewJurisdictionFields } from "./admin.interface";
import { OnChainDataField } from "src/shared/onchainDataFields/entities/onChainDataField.entity";
import {
convertToPaddedHexString,
orderGroupRegistryFields,
} from "src/common/utils";
import { UserService } from "src/user/user.service";
import { UserCmsService } from "src/user/user.cms.service";
@Injectable()
export class JurisdictionService {
@Inject(UserService)
private readonly userService: UserService;
@Inject(UserCmsService)
private readonly userCmsService: UserCmsService;
async setNewJurisdictionFields({
userJwtPayload,
fields,
}: ISetNewJurisdictionFields) {
const onchainFields: OnChainDataField[] = [];
const batchRegistries: BatchRegistry[] = [];
fields.forEach((field) => {
const dataFieldHashedName = keccak256(
hexlify(toUtf8Bytes(field.dataFieldName)),
);
const dataFieldHashedLinkedName = keccak256(
hexlify(toUtf8Bytes(field.dataFieldLinkedName)),
);
onchainFields.push({
name: field.dataFieldName,
hash: dataFieldHashedName,
linkedName: field.dataFieldLinkedName,
linkedHash: dataFieldHashedLinkedName,
linkedType: field.dataFieldLinkedType,
});
batchRegistries.push({
id: isNaN(Number(field.id))
? keccak256(hexlify(toUtf8Bytes(field.id)))
: keccak256(convertToPaddedHexString(field.id)),
dataFieldType: field.dataFieldType,
dataFieldName: field.dataFieldName,
dataFieldValue: field.dataFieldValue,
});
});
// Adding onchain field lookup table in cms
// const cmsFieldsResult = await this.userCmsService.getOnboardOnchainFields();
return await Promise.all([
this.userService.setRegistryData({
registries: orderGroupRegistryFields(batchRegistries),
registryName: RegistryName.JurisdictionRegistry,
userJwtPayload,
onchainFields,
}),
// this.userCmsService.addNewOnchainFields(cmsFieldsResult.data, fields),
]);
}
}