diff --git a/src/App.js b/src/App.js index 7608ffc..19a2677 100644 --- a/src/App.js +++ b/src/App.js @@ -3,12 +3,13 @@ import styled, { createGlobalStyle } from 'styled-components' import { useDeferredState } from './hooks/state' import { CardHolder } from './components/Card' import GithubCard from './components/GithubCard' +import DomainCard from './components/DomainCard' +import HomebrewCard from './components/HomebrewCard' import TwitterCard from './components/TwitterCard' +import SlackCard from './components/SlackCard' import NpmCard from './components/NpmCard' import JsOrgCard from './components/JsOrgCard' -import HomebrewCard from './components/HomebrewCard' import PypiCard from './components/PypiCard' -import DomainCard from './components/DomainCard' import './App.css' const GlobalStyle = createGlobalStyle` @@ -45,9 +46,10 @@ export default function App() { Result for {query} - + + diff --git a/src/components/SlackCard.js b/src/components/SlackCard.js new file mode 100644 index 0000000..c054303 --- /dev/null +++ b/src/components/SlackCard.js @@ -0,0 +1,18 @@ +import React from 'react' +import { Card, CardTitle, DedicatedAvailability } from './Card' +import { FaSlack } from 'react-icons/fa' + +export default function SlackCard({ name }) { + return ( + + Slack + } + /> + + ) +} diff --git a/src/services/slack.js b/src/services/slack.js new file mode 100644 index 0000000..cb23e31 --- /dev/null +++ b/src/services/slack.js @@ -0,0 +1,31 @@ +const fetch = require('isomorphic-unfetch') + +async function getAvailability(name) { + try { + const response = await fetch( + `https://${encodeURIComponent(name)}.slack.com` + ) + return response.status !== 200 + } catch (err) { + if (err.code === 'ENOTFOUND') { + return true + } else { + throw new Error(err.message) + } + } +} + +module.exports = async (req, res) => { + const name = req.query.name + + if (!name) { + return res.status(400).json({ error: 'no query given' }) + } + + try { + const availability = await getAvailability(name) + res.json({ availability }) + } catch (err) { + res.status(400).json({ error: err.message }) + } +}