ui/lib/pipeline/addon/repositories/route.js

55 lines
1.4 KiB
JavaScript

import Route from '@ember/routing/route';
import { hash } from 'rsvp';
import { set, get } from '@ember/object';
export default Route.extend({
model() {
const store = get(this, 'store');
const pipelines = store.findAll('pipeline');
const accounts = store.findAll('sourceCodeCredential');
const providerConfig = store.findAll('sourceCodeProviderConfig')
const providers = store.findAll('sourceCodeProvider', { forceReload: true });
return hash({
accounts,
providerConfig,
pipelines,
providers,
}).then((hash) => {
const {
accounts,
providerConfig,
pipelines,
providers,
} = hash;
const validAccounts = accounts.filter((account) => !account.logout);
if ( get(validAccounts, 'length') ) {
return get(validAccounts, 'firstObject').followLink('sourceCodeRepositories')
.then((res) => {
return {
pipelines,
accounts: validAccounts,
providers,
canConfig: providerConfig.length > 0,
repositories: res,
}
});
} else {
return {
pipelines,
accounts: validAccounts,
providers,
canConfig: providerConfig.length > 0,
repositories: [],
};
}
})
},
resetController(controller) {
set(controller, 'errors', []);
},
});