open-consul/ui/packages/consul-ui/app/routing/single.js

48 lines
1.3 KiB
JavaScript

/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
*/
import Route from 'consul-ui/routing/route';
import { assert } from '@ember/debug';
import { Promise, hash } from 'rsvp';
export default Route.extend({
// repo: service('repositoryName'),
isCreate: function (params, transition) {
return transition.targetName.split('.').pop() === 'create';
},
model: function (params, transition) {
const repo = this.repo;
assert(
"`repo` is undefined, please define RepositoryService using `repo: service('repositoryName')`",
typeof repo !== 'undefined'
);
const dc = this.modelFor('dc').dc.Name;
const nspace = this.optionalParams().nspace;
const partition = this.optionalParams().partition;
const create = this.isCreate(...arguments);
return hash({
dc: dc,
partition: partition,
nspace: nspace,
create: create,
...repo.status({
item: create
? Promise.resolve(
repo.create({
Datacenter: dc,
Namespace: nspace,
Partition: partition,
})
)
: repo.findBySlug({
partition: partition,
ns: nspace,
dc: dc,
id: params.id,
}),
}),
});
},
});