diff --git a/apps/api/src/helper/data-source.helper.ts b/apps/api/src/helper/data-source.helper.ts index c4a55c9da..766145f85 100644 --- a/apps/api/src/helper/data-source.helper.ts +++ b/apps/api/src/helper/data-source.helper.ts @@ -1,4 +1,21 @@ import { DataSource } from '@prisma/client'; +import { createHash } from 'node:crypto'; + +const decodedDataSourceMap: Record = Object.values( + DataSource +).reduce((map, dataSource) => { + map[encodeDataSource(dataSource)] = dataSource; + + return map; +}, {}); + +export function encodeDataSource(aDataSource: DataSource) { + if (!aDataSource) { + return undefined; + } + + return createHash('sha256').update(aDataSource).digest('hex').slice(0, 8); +} export function getMaskedGhostfolioDataSource({ dataSource, @@ -11,3 +28,9 @@ export function getMaskedGhostfolioDataSource({ ? DataSource.GHOSTFOLIO : dataSource; } + +export function decodeDataSource(encodedDataSource: string) { + return encodedDataSource + ? decodedDataSourceMap[encodedDataSource] + : undefined; +}