diff --git a/app/routes/dashboard/contributors/show.js b/app/routes/dashboard/contributors/show.js index c7e5d3b..950cf93 100644 --- a/app/routes/dashboard/contributors/show.js +++ b/app/routes/dashboard/contributors/show.js @@ -8,7 +8,13 @@ export default Route.extend({ contributors: alias('kredits.contributors'), model (params) { - return this.contributors.findBy('id', params.id); + const contributor = this.contributors.findBy('id', params.id); + + if (contributor) { + return contributor; + } else { + return this.kredits.fetchContributor(params.id); + } }, setupController (controller, model) { diff --git a/app/services/kredits.js b/app/services/kredits.js index dd8f24e..3436e7e 100644 --- a/app/services/kredits.js +++ b/app/services/kredits.js @@ -274,6 +274,12 @@ export default Service.extend({ }); }, + async fetchContributor (id) { + console.debug(`[kredits] Fetching contributor from the network`); + return this.kredits.Contributor.getById(id) + .then(data => this.loadContributorFromData(data)) + }, + fetchContributors () { console.debug(`[kredits] Fetching all contributors from the network`); return this.kredits.Contributor.all()