63 lines
1.3 KiB
TypeScript
63 lines
1.3 KiB
TypeScript
import { IField, IGlobalVariable } from '@automatisch/types';
|
|
import qs from 'qs';
|
|
|
|
const scopes = [
|
|
'channels:manage',
|
|
'channels:read',
|
|
'channels:join',
|
|
'chat:write',
|
|
'chat:write.customize',
|
|
'chat:write.public',
|
|
'files:write',
|
|
'im:write',
|
|
'mpim:write',
|
|
'team:read',
|
|
'users.profile:read',
|
|
'users:read',
|
|
'workflow.steps:execute',
|
|
'users:read.email',
|
|
'commands',
|
|
];
|
|
const userScopes = [
|
|
'channels:history',
|
|
'channels:read',
|
|
'channels:write',
|
|
'chat:write',
|
|
'emoji:read',
|
|
'files:read',
|
|
'files:write',
|
|
'groups:history',
|
|
'groups:read',
|
|
'groups:write',
|
|
'im:write',
|
|
'mpim:write',
|
|
'reactions:read',
|
|
'reminders:write',
|
|
'search:read',
|
|
'stars:read',
|
|
'team:read',
|
|
'users.profile:read',
|
|
'users.profile:write',
|
|
'users:read',
|
|
'users:read.email',
|
|
];
|
|
|
|
export default async function createAuthData($: IGlobalVariable) {
|
|
const oauthRedirectUrlField = $.app.auth.fields.find(
|
|
(field: IField) => field.key == 'oAuthRedirectUrl'
|
|
);
|
|
const redirectUri = oauthRedirectUrlField.value as string;
|
|
const searchParams = qs.stringify({
|
|
client_id: $.auth.data.consumerKey as string,
|
|
redirect_uri: redirectUri,
|
|
scope: scopes.join(','),
|
|
user_scope: userScopes.join(','),
|
|
});
|
|
|
|
const url = `${$.app.baseUrl}/oauth/v2/authorize?${searchParams}`;
|
|
|
|
await $.auth.set({
|
|
url,
|
|
});
|
|
}
|