From f841e5f68ee9907b7c5d0f90720595da6ce42109 Mon Sep 17 00:00:00 2001 From: Seyi Adebajo Date: Wed, 21 Feb 2018 18:10:29 -0800 Subject: [PATCH] fix dataset path conversion --- wherehows-web/app/utils/validators/urn.ts | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/wherehows-web/app/utils/validators/urn.ts b/wherehows-web/app/utils/validators/urn.ts index 9aebb0dae1..32db8ae06d 100644 --- a/wherehows-web/app/utils/validators/urn.ts +++ b/wherehows-web/app/utils/validators/urn.ts @@ -1,4 +1,5 @@ import { assert } from '@ember/debug'; +import { DatasetPlatform } from 'wherehows-web/constants'; /** * Matches a url string with a `urn` query. urn query with letters or underscore segment of any length greater @@ -62,11 +63,23 @@ const getPlatformFromUrn = (candidateUrn: string) => { */ const convertWhUrnToLiUrn = (whUrn: string): string => { assert(`Expected ${whUrn} to be in the WH urn format`, isWhUrn(whUrn)); - const [, platform, path] = datasetUrnRegexWH.exec(whUrn)!; - return `urn:li:dataset:(urn:li:dataPlatform:${platform},${path},PROD)`; + const [, platform, path] = datasetUrnRegexWH.exec(whUrn)!; + const formattedPath = convertWhDatasetPathToLiPath(platform, path); + + return `urn:li:dataset:(urn:li:dataPlatform:${platform},${formattedPath},PROD)`; }; +/** + * Converts a path from WH urn format, replace forward slash with periods in non DatasetPlatform.HDFS cases, + * add leading forward slash if platform is DatasetPlatform.HDFS + * @param {DatasetPlatform} platform + * @param {string} path + * @return {string} + */ +const convertWhDatasetPathToLiPath = (platform: DatasetPlatform, path: string): string => + platform === DatasetPlatform.HDFS ? `/${path}` : path.replace(/\//g, '.'); + /** * Cached RegExp object for a global search of / * @type {RegExp}