58 lines
1.3 KiB
JavaScript
58 lines
1.3 KiB
JavaScript
// @flow
|
|
|
|
export function slackAuth(
|
|
state: string,
|
|
scopes: string[] = [
|
|
"identity.email",
|
|
"identity.basic",
|
|
"identity.avatar",
|
|
"identity.team",
|
|
],
|
|
clientId: string = process.env.SLACK_KEY,
|
|
redirectUri: string = `${process.env.URL}/auth/slack.callback`
|
|
): string {
|
|
const baseUrl = "https://slack.com/oauth/authorize";
|
|
const params = {
|
|
client_id: clientId,
|
|
scope: scopes ? scopes.join(" ") : "",
|
|
redirect_uri: redirectUri,
|
|
state,
|
|
};
|
|
|
|
const urlParams = Object.keys(params)
|
|
.map((key) => `${key}=${encodeURIComponent(params[key])}`)
|
|
.join("&");
|
|
|
|
return `${baseUrl}?${urlParams}`;
|
|
}
|
|
|
|
export function githubUrl(): string {
|
|
return "https://www.github.com/outline";
|
|
}
|
|
|
|
export function githubIssuesUrl(): string {
|
|
return "https://www.github.com/outline/outline/issues";
|
|
}
|
|
|
|
export function twitterUrl(): string {
|
|
return "https://twitter.com/outlinewiki";
|
|
}
|
|
|
|
export function mailToUrl(): string {
|
|
return "mailto:hello@getoutline.com";
|
|
}
|
|
|
|
export function developersUrl(): string {
|
|
return `https://www.getoutline.com/developers`;
|
|
}
|
|
|
|
export function changelogUrl(): string {
|
|
return `https://www.getoutline.com/changelog`;
|
|
}
|
|
|
|
export function signin(service: string = "slack"): string {
|
|
return `${process.env.URL}/auth/${service}`;
|
|
}
|
|
|
|
export const SLUG_URL_REGEX = /^[0-9a-zA-Z-_~]*-([a-zA-Z0-9]{10,15})$/;
|