Skip to content

Commit 5767800

Browse files
committed
controllers/crate.version: Move loadDocsBuildsTask to version model
1 parent 47cceda commit 5767800

File tree

3 files changed

+12
-12
lines changed

3 files changed

+12
-12
lines changed

app/controllers/crate/version.js

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ import { inject as service } from '@ember/service';
66
import { task } from 'ember-concurrency';
77
import moment from 'moment';
88

9-
import ajax from '../../utils/ajax';
10-
119
const NUM_VERSIONS = 5;
1210

1311
export default class CrateVersionController extends Controller {
@@ -126,16 +124,16 @@ export default class CrateVersionController extends Controller {
126124
})
127125
loadReadmeTask;
128126

129-
@computed('crate.{documentation,name}', 'currentVersion.num', 'loadDocsBuildsTask.lastSuccessful.value')
127+
@computed('crate.{documentation,name}', 'currentVersion.{num,loadDocsBuildsTask.lastSuccessful.value}')
130128
get documentationLink() {
131129
// if this is *not* a docs.rs link we'll return it directly
132130
if (this.crate.documentation && !this.crate.documentation.startsWith('https://docs.rs/')) {
133131
return this.crate.documentation;
134132
}
135133

136134
// if we know about a successful docs.rs build, we'll return a link to that
137-
if (this.loadDocsBuildsTask.lastSuccessful) {
138-
let docsBuilds = this.loadDocsBuildsTask.lastSuccessful.value;
135+
if (this.currentVersion.loadDocsBuildsTask.lastSuccessful) {
136+
let docsBuilds = this.currentVersion.loadDocsBuildsTask.lastSuccessful.value;
139137
if (docsBuilds.length !== 0 && docsBuilds[0].build_status === true) {
140138
return `https://docs.rs/${this.crate.name}/${this.currentVersion.num}`;
141139
}
@@ -148,9 +146,4 @@ export default class CrateVersionController extends Controller {
148146

149147
return null;
150148
}
151-
152-
@task(function* () {
153-
return yield ajax(`https://docs.rs/crate/${this.crate.name}/${this.currentVersion.num}/builds.json`);
154-
})
155-
loadDocsBuildsTask;
156149
}

app/models/version.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ import { alias } from '@ember/object/computed';
44

55
import { task } from 'ember-concurrency';
66

7+
import ajax from '../utils/ajax';
8+
79
export default class Version extends Model {
810
@attr num;
911
@attr dl_path;
@@ -63,6 +65,11 @@ export default class Version extends Model {
6365
}).keepLatest())
6466
loadReadmeTask;
6567

68+
@task(function* () {
69+
return yield ajax(`https://docs.rs/crate/${this.crateName}/${this.num}/builds.json`);
70+
})
71+
loadDocsBuildsTask;
72+
6673
@(task(function* () {
6774
let response = yield fetch(`/api/v1/crates/${this.crate.id}/${this.num}/yank`, { method: 'DELETE' });
6875
if (!response.ok) {

app/routes/crate/version.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,9 @@ export default class VersionRoute extends Route {
4040
// ignored
4141
});
4242

43-
let { crate } = model;
43+
let { crate, version } = model;
4444
if (!crate.documentation || crate.documentation.startsWith('https://docs.rs/')) {
45-
controller.loadDocsBuildsTask.perform().catch(error => {
45+
version.loadDocsBuildsTask.perform().catch(error => {
4646
// report unexpected errors to Sentry and ignore `ajax()` errors
4747
if (!(error instanceof AjaxError)) {
4848
Sentry.captureException(error);

0 commit comments

Comments
 (0)