// @flow import fetch from 'isomorphic-fetch'; import querystring from 'querystring'; import { httpErrors } from './errors'; const SLACK_API_URL = 'https://slack.com/api'; export async function request(endpoint: string, body: Object) { let data; try { const response = await fetch( `${SLACK_API_URL}/${endpoint}?${querystring.stringify(body)}` ); data = await response.json(); } catch (e) { throw httpErrors.BadRequest(); } console.log('DATA', data); if (!data.ok) throw httpErrors.BadRequest(data.error); return data; } export async function oauthAccess( code: string, redirect_uri: string = `${process.env.URL || ''}/auth/slack` ) { return request('oauth.access', { client_id: process.env.SLACK_KEY, client_secret: process.env.SLACK_SECRET, redirect_uri: `${process.env.URL || ''}/auth/slack`, code, }); }