2018-02-14 16:00:32 -08:00
|
|
|
import Route from '@ember/routing/route';
|
2018-02-14 17:26:26 -08:00
|
|
|
import { setProperties } from '@ember/object';
|
2018-02-14 16:00:32 -08:00
|
|
|
import AuthenticatedRouteMixin from 'ember-simple-auth/mixins/authenticated-route-mixin';
|
|
|
|
import { refreshModelQueryParams } from 'wherehows-web/utils/helpers/routes';
|
|
|
|
import EntityController from 'wherehows-web/controllers/browse/entity';
|
|
|
|
|
|
|
|
const queryParamsKeys = ['page', 'prefix', 'platform', 'size'];
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Describes the route parameter interface for the browser route
|
|
|
|
* @export
|
|
|
|
* @interface IBrowserRouteParams
|
|
|
|
*/
|
|
|
|
export interface IBrowserRouteParams {
|
|
|
|
entity: 'datasets' | 'metrics' | 'flows';
|
|
|
|
page: number;
|
|
|
|
size: number;
|
|
|
|
platform: string;
|
|
|
|
prefix: string;
|
|
|
|
}
|
|
|
|
|
|
|
|
export default class extends Route.extend(AuthenticatedRouteMixin) {
|
|
|
|
queryParams = refreshModelQueryParams(queryParamsKeys);
|
|
|
|
|
2018-02-14 17:26:26 -08:00
|
|
|
setupController(controller: EntityController, model: IBrowserRouteParams) {
|
|
|
|
// sets the entity property on the controller in addition to the model
|
|
|
|
setProperties(controller, { entity: model.entity, model });
|
2018-02-14 16:00:32 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
model(params: IBrowserRouteParams): IBrowserRouteParams {
|
|
|
|
const { entity, platform, page, size, prefix } = params;
|
|
|
|
return { entity, platform, page, size, prefix };
|
|
|
|
}
|
|
|
|
}
|