@intersect.mbo/govtool-delegation-pillar
Version:
Delegation Pillar of the GovTool project
49 lines (44 loc) • 1.16 kB
text/typescript
import { DRepData, DRepMetadata, DrepDataDTO } from 'types';
import { postValidate } from 'services';
import { fixViewForScriptBasedDRep } from './dRep';
export const mapDtoToDrep = async (
validationApiUrl: string,
dto: DrepDataDTO
): Promise<DRepData> => {
const emptyMetadata = {
paymentAddress: null,
givenName: '',
image: null,
objectives: null,
motivations: null,
qualifications: null,
references: [],
doNotList: false,
metadataStatus: null,
metadataValid: true,
};
// DBSync contains wrong representation of DRep view for script based DReps
const view = fixViewForScriptBasedDRep(dto.view, dto.isScriptBased);
if (dto.metadataHash && dto.url) {
const validationResponse = await postValidate<DRepMetadata>(
validationApiUrl,
{
url: dto.url,
hash: dto.metadataHash,
}
);
return {
...dto,
...emptyMetadata,
...validationResponse.metadata,
metadataStatus: validationResponse.status || null,
metadataValid: validationResponse.valid,
view,
};
}
return {
...dto,
...emptyMetadata,
view,
};
};