Skip to content

Commit

Permalink
Use fetch instead of ember-ajax
Browse files Browse the repository at this point in the history
  • Loading branch information
tchak committed Jan 2, 2018
1 parent 8de6a0e commit 1fc2c95
Show file tree
Hide file tree
Showing 12 changed files with 25 additions and 53 deletions.
3 changes: 2 additions & 1 deletion app/adapters/application.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import DS from 'ember-data';
import AdapterFetch from 'ember-fetch/mixins/adapter-fetch';

export default DS.RESTAdapter.extend({
export default DS.RESTAdapter.extend(AdapterFetch, {
namespace: 'api/v1',
});
4 changes: 2 additions & 2 deletions app/components/email-input.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ import Component from '@ember/component';
import { empty } from '@ember/object/computed';
import { computed } from '@ember/object';
import { inject as service } from '@ember/service';
import ajax from 'ember-fetch/ajax';

export default Component.extend({
ajax: service(),
flashMessages: service(),

type: '',
Expand Down Expand Up @@ -96,7 +96,7 @@ export default Component.extend({
let user = this.get('user');

try {
await this.get('ajax').raw(`/api/v1/users/${user.id}/resend`, { method: 'PUT' });
await ajax(`/api/v1/users/${user.id}/resend`, { method: 'PUT' });
this.set('disableResend', true);
} catch(error) {
if (error.payload) {
Expand Down
8 changes: 2 additions & 6 deletions app/controllers/dashboard.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,11 @@
import Controller from '@ember/controller';
import { A } from '@ember/array';
import { computed } from '@ember/object';
import { inject as service } from '@ember/service';
import ajax from 'ember-fetch/ajax';

const TO_SHOW = 5;

export default Controller.extend({

ajax: service(),

init() {
this._super(...arguments);

Expand Down Expand Up @@ -47,8 +44,7 @@ export default Controller.extend({
let page = (this.get('myFeed').length / 10) + 1;

try {
let data = await this.get('ajax').request(`/api/v1/me/updates?page=${page}`);

let data = await ajax(`/api/v1/me/updates?page=${page}`);
let versions = data.versions.map(version => this.store.push(this.store.normalize('version', version)));

this.get('myFeed').pushObjects(versions);
Expand Down
7 changes: 2 additions & 5 deletions app/controllers/index.js
Original file line number Diff line number Diff line change
@@ -1,21 +1,18 @@
import Controller from '@ember/controller';
import { computed } from '@ember/object';
import { readOnly } from '@ember/object/computed';
import { inject as service } from '@ember/service';

import ajax from 'ember-fetch/ajax';
import { task } from 'ember-concurrency';

export default Controller.extend({
ajax: service(),

model: readOnly('dataTask.lastSuccessful.value'),

hasData: computed('dataTask.lastSuccessful', 'dataTask.isRunning', function() {
return this.get('dataTask.lastSuccessful') || !this.get('dataTask.isRunning');
}),

dataTask: task(function* () {
let data = yield this.get('ajax').request('/api/v1/summary');
let data = yield ajax('/api/v1/summary');

addCrates(this.store, data.new_crates);
addCrates(this.store, data.most_downloaded);
Expand Down
2 changes: 0 additions & 2 deletions app/controllers/me/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@ export default Controller.extend({

sortedTokens: sort('model.api_tokens', 'tokenSort'),

ajax: service(),

flashMessages: service(),

isResetting: false,
Expand Down
9 changes: 4 additions & 5 deletions app/routes/confirm.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
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(),
ajax: service(),

async model(params) {
try {
await this.get('ajax').raw(`/api/v1/confirm/${params.email_token}`, { method: 'PUT', data: {} });
await ajax(`/api/v1/confirm/${params.email_token}`, { method: 'PUT', body: '{}' });

/* We need this block to reload the user model from the database,
without which if we haven't submitted another GET /me after
Expand All @@ -20,9 +20,8 @@ export default Route.extend({
Suggestions of a more ideomatic way to fix/test this are welcome!
*/
if (this.session.get('isLoggedIn')) {
this.get('ajax').request('/api/v1/me').then((response) => {
this.session.set('currentUser', this.store.push(this.store.normalize('user', response.user)));
});
let data = await ajax('/api/v1/me');
this.session.set('currentUser', this.store.push(this.store.normalize('user', data.user)));
}

} catch(error) {
Expand Down
6 changes: 2 additions & 4 deletions app/routes/crate/version.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
import { observer } from '@ember/object';
import Route from '@ember/routing/route';
import { inject as service } from '@ember/service';
import ajax from 'ember-fetch/ajax';

export default Route.extend({

ajax: service(),

flashMessages: service(),

refreshAfterLogin: observer('session.isLoggedIn', function() {
Expand Down Expand Up @@ -45,7 +43,7 @@ export default Route.extend({
crate.get('documentation').substr(0, 16) === 'https://docs.rs/') {
let crateName = crate.get('name');
let crateVersion = params.version_num;
this.get('ajax').request(`https://docs.rs/crate/${crateName}/${crateVersion}/builds.json`)
ajax(`https://docs.rs/crate/${crateName}/${crateVersion}/builds.json`, { mode: 'cors' })
.then((r) => {
if (r.length > 0 && r[0].build_status === true) {
crate.set('documentation', `https://docs.rs/${crateName}/${crateVersion}/`);
Expand Down
15 changes: 7 additions & 8 deletions app/routes/github-authorize.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import Route from '@ember/routing/route';
import { inject as service } from '@ember/service';
import ajax from 'ember-fetch/ajax';
import { serializeQueryParams } from 'ember-fetch/mixins/adapter-fetch';

/**
* This route will be called from the GitHub OAuth flow once the user has
Expand All @@ -15,23 +16,21 @@ import { inject as service } from '@ember/service';
* @see `/login` route
*/
export default Route.extend({

ajax: service(),

async beforeModel(transition) {
try {
let d = await this.get('ajax').request(`/authorize`, { data: transition.queryParams });
let item = JSON.stringify({ ok: true, data: d });
let queryParams = serializeQueryParams(transition.queryParams);
let data = await ajax(`/authorize?${queryParams}`);
let item = JSON.stringify({ ok: true, data });
if (window.opener) {
window.opener.github_response = item;
}
} catch(d) {
let item = JSON.stringify({ ok: false, data: d });
let item = JSON.stringify({ ok: false, data });
if (window.opener) {
window.opener.github_response = item;
}
} finally {
window.close();
}
},
}
});
7 changes: 2 additions & 5 deletions app/routes/github-login.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import Route from '@ember/routing/route';
import { inject as service } from '@ember/service';
import ajax from 'ember-fetch/ajax';

/**
* Calling this route will query the `/authorize_url` API endpoint
Expand All @@ -15,11 +15,8 @@ import { inject as service } from '@ember/service';
* @see `/github_authorize` route
*/
export default Route.extend({

ajax: service(),

async beforeModel() {
let url = await this.get('ajax').request(`/authorize_url`);
let url = await ajax(`/authorize_url`);
window.location = url.url;
},
});
7 changes: 2 additions & 5 deletions app/routes/logout.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,10 @@
import { run } from '@ember/runloop';
import Route from '@ember/routing/route';
import { inject as service } from '@ember/service';
import ajax from 'ember-fetch/ajax';

export default Route.extend({

ajax: service(),

async activate() {
await this.get('ajax').delete(`/logout`);
await ajax(`/logout`, { method: 'DELETE' });
run(() => {
this.session.logoutUser();
this.transitionTo('index');
Expand Down
9 changes: 0 additions & 9 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@
"devDependencies": {
"babel-plugin-transform-object-rest-spread": "^6.23.0",
"broccoli-asset-rev": "2.5.0",
"ember-ajax": "^3.0.0",
"ember-cli": "~2.17.0",
"ember-cli-app-version": "^3.0.0",
"ember-cli-babel": "^6.8.2",
Expand Down

0 comments on commit 1fc2c95

Please sign in to comment.