55 Zeilen
1,5 KiB
JavaScript
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;
|