Skip to content

Migrate routes to native classes #2291

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions app/routes/accept-invite.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import Route from '@ember/routing/route';
import ajax from 'ember-fetch/ajax';

export default Route.extend({
export default class AcceptInviteRoute extends Route {
async model(params) {
try {
await ajax(`/api/v1/me/crate_owner_invitations/accept/${params.token}`, { method: 'PUT', body: '{}' });
Expand All @@ -11,5 +11,5 @@ export default Route.extend({
this.set('response', { accepted: false });
return { response: this.get('response') };
}
},
});
}
}
20 changes: 10 additions & 10 deletions app/routes/application.js
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
import Route from '@ember/routing/route';
import { inject as service } from '@ember/service';
import { action } from '@ember/object';

export default Route.extend({
flashMessages: service(),
session: service(),
export default class ApplicationRoute extends Route {
@service flashMessages;
@service session;

beforeModel() {
this.session.loadUser();
},
}

actions: {
didTransition() {
this.flashMessages.step();
},
},
});
@action
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm a little worried about this because I've had issues with the @action decorator on routes in the past 🤔

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you remember what the issue was? I tried checking the literature and this seemed the correct way to upgrade :/

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nope, unfortunately I don't remember the specifics, but I'd sleep better if I knew that we had better test coverage for these things :-/

didTransition() {
this.flashMessages.step();
}
}
10 changes: 5 additions & 5 deletions app/routes/categories.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import Route from '@ember/routing/route';

export default Route.extend({
queryParams: {
export default class CategoriesRoute extends Route {
queryParams = {
page: { refreshModel: true },
sort: { refreshModel: true },
},
};

model(params) {
return this.store.query('category', params);
},
});
}
}
10 changes: 5 additions & 5 deletions app/routes/category-slugs.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import Route from '@ember/routing/route';

export default Route.extend({
queryParams: {
export default class CategorySlugsRoute extends Route {
queryParams = {
page: { refreshModel: true },
sort: { refreshModel: true },
},
};

model(params) {
return this.store.query('category-slug', params);
},
});
}
}
8 changes: 4 additions & 4 deletions app/routes/category.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import Route from '@ember/routing/route';
import { inject as service } from '@ember/service';

export default Route.extend({
flashMessages: service(),
export default class CategoryRoute extends Route {
@service flashMessages;

model(params) {
return this.store.find('category', params.category_id).catch(e => {
Expand All @@ -11,5 +11,5 @@ export default Route.extend({
return this.replaceWith('index');
}
});
},
});
}
}
16 changes: 9 additions & 7 deletions app/routes/category/index.js
Original file line number Diff line number Diff line change
@@ -1,19 +1,21 @@
import Route from '@ember/routing/route';

export default Route.extend({
queryParams: {
export default class CategoryIndexRoute extends Route {
queryParams = {
page: { refreshModel: true },
sort: { refreshModel: true },
},
};

model(params) {
params.category = this.paramsFor('category').category_id;
return this.store.query('crate', params);
},
}

setupController(controller) {
this._super(...arguments);
super.setupController(...arguments);

// TODO: move to model hook
let category = this.modelFor('category');
controller.set('category', category);
},
});
}
}
10 changes: 5 additions & 5 deletions app/routes/confirm.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ import Route from '@ember/routing/route';
import { inject as service } from '@ember/service';
import ajax from 'ember-fetch/ajax';

export default Route.extend({
flashMessages: service(),
session: service(),
export default class ConfirmRoute extends Route {
@service flashMessages;
@service session;

async model(params) {
try {
Expand Down Expand Up @@ -34,5 +34,5 @@ export default Route.extend({
return this.replaceWith('index');
}
}
},
});
}
}
12 changes: 6 additions & 6 deletions app/routes/crate.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import Route from '@ember/routing/route';
import { inject as service } from '@ember/service';

export default Route.extend({
flashMessages: service(),
export default class CrateRoute extends Route {
@service flashMessages;

model(params) {
return this.store.find('crate', params.crate_id).catch(e => {
Expand All @@ -11,13 +11,13 @@ export default Route.extend({
return;
}
});
},
}

afterModel(model) {
if (model && typeof model.get === 'function') {
this.setHeadTags(model);
}
},
}

setHeadTags(model) {
let headTags = [
Expand All @@ -32,5 +32,5 @@ export default Route.extend({
];

this.set('headTags', headTags);
},
});
}
}
10 changes: 5 additions & 5 deletions app/routes/crate/docs.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import Route from '@ember/routing/route';
import { inject as service } from '@ember/service';

export default Route.extend({
flashMessages: service(),
redirector: service(),
export default class DocsRoute extends Route {
@service flashMessages;
@service redirector;

redirect() {
let crate = this.modelFor('crate');
Expand All @@ -18,5 +18,5 @@ export default Route.extend({
this.flashMessages.queue(message);
this.replaceWith('crate', crate);
}
},
});
}
}
9 changes: 5 additions & 4 deletions app/routes/crate/owners.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
import Route from '@ember/routing/route';

export default Route.extend({
export default class CrateOwnersRoute extends Route {
setupController(controller) {
this._super(...arguments);
super.setupController(...arguments);

let crate = this.modelFor('crate');
controller.set('crate', crate);
},
});
}
}
10 changes: 5 additions & 5 deletions app/routes/crate/repo.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import Route from '@ember/routing/route';
import { inject as service } from '@ember/service';

export default Route.extend({
flashMessages: service(),
redirector: service(),
export default class CrateRepoRoute extends Route {
@service flashMessages;
@service redirector;

redirect() {
let crate = this.modelFor('crate');
Expand All @@ -18,5 +18,5 @@ export default Route.extend({
this.flashMessages.queue(message);
this.replaceWith('crate', crate);
}
},
});
}
}
15 changes: 8 additions & 7 deletions app/routes/crate/reverse-dependencies.js
Original file line number Diff line number Diff line change
@@ -1,20 +1,21 @@
import Route from '@ember/routing/route';

export default Route.extend({
queryParams: {
export default class CrateReverseDependenciesRoute extends Route {
queryParams = {
page: { refreshModel: true },
},
};

model(params) {
params.reverse = true;
params.crate = this.modelFor('crate');

return this.store.query('dependency', params);
},
}

setupController(controller) {
this._super(...arguments);
super.setupController(...arguments);

let crate = this.modelFor('crate');
controller.set('crate', crate);
},
});
}
}
10 changes: 5 additions & 5 deletions app/routes/crates.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import Route from '@ember/routing/route';

export default Route.extend({
queryParams: {
export default class CratesRoute extends Route {
queryParams = {
letter: { refreshModel: true },
page: { refreshModel: true },
sort: { refreshModel: true },
},
};

model(params) {
// The backend throws an error if the letter param is
Expand All @@ -15,5 +15,5 @@ export default Route.extend({
}

return this.store.query('crate', params);
},
});
}
}
12 changes: 6 additions & 6 deletions app/routes/dashboard.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ import RSVP from 'rsvp';

import AuthenticatedRoute from '../mixins/authenticated-route';

export default Route.extend(AuthenticatedRoute, {
export default class DashboardRoute extends Route.extend(AuthenticatedRoute) {
setupController(controller) {
this._super(...arguments);
super.setupController(...arguments);

controller.set('myCrates', this.get('data.myCrates'));
controller.set('myFollowing', this.get('data.myFollowing'));
Expand All @@ -16,11 +16,11 @@ export default Route.extend(AuthenticatedRoute, {
controller.set('myFeed', A());
controller.send('loadMore');
}
},
}

model() {
return this.get('session.currentUser');
},
}

async afterModel(user) {
let myCrates = this.store.query('crate', {
Expand All @@ -34,5 +34,5 @@ export default Route.extend(AuthenticatedRoute, {
let myStats = user.stats();

this.set('data', await RSVP.hash({ myCrates, myFollowing, myStats }));
},
});
}
}
6 changes: 3 additions & 3 deletions app/routes/github-authorize.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import { serializeQueryParams } from 'ember-fetch/utils/serialize-query-params';
* @see https://developer.github.com/v3/oauth/#github-redirects-back-to-your-site
* @see `/login` route
*/
export default Route.extend({
export default class GithubAuthorizeRoute extends Route {
async beforeModel(transition) {
try {
let queryParams = serializeQueryParams(transition.to.queryParams);
Expand All @@ -33,5 +33,5 @@ export default Route.extend({
} finally {
window.close();
}
},
});
}
}
6 changes: 3 additions & 3 deletions app/routes/github-login.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@ import ajax from 'ember-fetch/ajax';
* @see https://developer.github.com/v3/oauth/#redirect-users-to-request-github-access
* @see `github-authorize` route
*/
export default Route.extend({
export default class GithubLoginRoute extends Route {
async beforeModel() {
let url = await ajax(`/api/private/session/begin`);
window.location = url.url;
},
});
}
}
Loading