create-miro-app
Version:
Create Miro app
48 lines (35 loc) • 1.28 kB
JavaScript
import { config } from 'dotenv';
import express from 'express';
import cookieParser from 'cookie-parser';
import miroMiddleware from './miroMiddlware';
config();
const app = express();
app.use(cookieParser('<RANDOMLY-GENERATED-SECRET-STRING>'));
app.use(miroMiddleware);
app.get('/auth/miro/callback', async (req, res) => {
if (typeof req.query.code !== 'string') {
res.status(400);
res.send('Missing code query parameter!');
return;
}
await req.miro.exchangeCodeForAccessToken(req.cookies.id, req.query.code);
res.redirect('/');
});
app.get('/', async (req, res) => {
if (!(await req.miro.isAuthorized(req.cookies.id))) {
res.redirect(req.miro.getAuthUrl());
return;
}
const api = req.miro.as(req.cookies.id);
res.header('content-type', 'text/html');
res.write('These are the boards that you have access to: <br/>');
const allBoards = api.getAllBoards();
for await (const board of allBoards) {
res.write(`<a href="${board.viewLink}">${board.name}</a><br/>`);
}
res.send();
});
if (import.meta.env.PROD) {
app.listen(3000, () => console.log('Started server on http://127.0.0.1:3000'));
}
export const viteNodeApp = app;