1
0
Fork 0
discourse-custom-wizard-unl.../assets/javascripts/discourse/models/custom-wizard-api.js.es6
2019-05-31 17:54:11 +10:00

55 Zeilen
1,5 KiB
JavaScript

import { ajax } from 'discourse/lib/ajax';
import { default as computed } from 'ember-addons/ember-computed-decorators';
const CustomWizardApi = Discourse.Model.extend({
@computed('service')
redirectUri(service) {
const baseUrl = location.protocol+'//'+location.hostname+(location.port ? ':'+location.port: '');
return baseUrl + `/admin/wizards/apis/${service}/redirect`;
}
});
CustomWizardApi.reopenClass({
create(params) {
const api = this._super.apply(this);
const authorization = params.authorization;
const endpoints = params.endpoints;
api.setProperties({
service: params.service,
authType: authorization.auth_type,
authUrl: authorization.auth_url,
tokenUrl: authorization.token_url,
clientId: authorization.client_id,
clientSecret: authorization.client_secret,
authParams: Ember.A(authorization.auth_params),
authorized: authorization.authorized,
accessToken: authorization.access_token,
refreshToken: authorization.refresh_token,
code: authorization.code,
tokenExpiresAt: authorization.token_expires_at,
tokenRefreshAt: authorization.token_refresh_at,
endpoints: Ember.A(endpoints)
});
return api;
},
find(service) {
return ajax(`/admin/wizards/apis/${service}`, {
type: 'GET'
}).then(result => {
return CustomWizardApi.create(result);
});
},
list() {
return ajax("/admin/wizards/apis", {
type: 'GET'
}).then(result => {
return result;
});
}
});
export default CustomWizardApi;