2019-08-31 20:51:14 -07:00
|
|
|
import Route from '@ember/routing/route';
|
|
|
|
|
import Notifications from '@datahub/utils/services/notifications';
|
|
|
|
|
import { refreshModelForQueryParams } from '@datahub/utils/routes/refresh-model-for-query-params';
|
|
|
|
|
import { inject as service } from '@ember/service';
|
2020-08-28 16:19:46 -07:00
|
|
|
import Search from '@datahub/shared/services/search';
|
2020-08-26 15:44:50 -07:00
|
|
|
import { getDatasetUrnParts } from '@datahub/data-models/entity/dataset/utils/urn';
|
|
|
|
|
import { DatasetPlatform } from '@datahub/metadata-types/constants/entity/dataset/platform';
|
2019-08-31 20:51:14 -07:00
|
|
|
/**
|
|
|
|
|
* Describes the interface for properties passed into the routes's model hook
|
|
|
|
|
* @interface IDatasetRouteParams
|
|
|
|
|
*/
|
|
|
|
|
interface IDatasetRouteParams {
|
|
|
|
|
dataset_urn: string;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Describes the return type of the model of the dataset route
|
|
|
|
|
*/
|
|
|
|
|
export interface IDatasetRouteModel {
|
2020-08-26 15:44:50 -07:00
|
|
|
datasetUrn: string;
|
|
|
|
|
platform?: DatasetPlatform;
|
2019-08-31 20:51:14 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export default class DatasetRoute extends Route {
|
|
|
|
|
/**
|
|
|
|
|
* References the application's Notifications service
|
|
|
|
|
* @type {ComputedProperty<Notifications>}
|
|
|
|
|
* @memberof DatasetRoute
|
|
|
|
|
*/
|
|
|
|
|
@service
|
|
|
|
|
notifications: Notifications;
|
|
|
|
|
|
|
|
|
|
@service
|
|
|
|
|
search: Search;
|
|
|
|
|
|
|
|
|
|
queryParams = refreshModelForQueryParams(['urn']);
|
|
|
|
|
|
|
|
|
|
/**
|
2020-08-26 15:44:50 -07:00
|
|
|
* Resolves an IDatasetEntity from a dataset urn
|
2019-08-31 20:51:14 -07:00
|
|
|
* @param {IDatasetRouteParams} { dataset_id: identifier, urn }
|
2020-08-26 15:44:50 -07:00
|
|
|
* @returns {Promise<IDatasetEntity>}
|
2019-08-31 20:51:14 -07:00
|
|
|
* @memberof DatasetRoute
|
|
|
|
|
*/
|
2020-08-26 15:44:50 -07:00
|
|
|
model({ dataset_urn: datasetUrn }: IDatasetRouteParams): IDatasetRouteModel {
|
|
|
|
|
// platform is needed for tracking
|
|
|
|
|
const { platform } = getDatasetUrnParts(datasetUrn);
|
|
|
|
|
return {
|
|
|
|
|
platform,
|
|
|
|
|
datasetUrn
|
|
|
|
|
};
|
2019-08-31 20:51:14 -07:00
|
|
|
}
|
|
|
|
|
}
|