From 551ca4257cb9969b7fa150e712f480776b1a684e Mon Sep 17 00:00:00 2001 From: Adam Jones Date: Sun, 21 Apr 2024 21:05:34 +0100 Subject: [PATCH] Add availability --- apps/availability/.env.local.template | 9 + apps/availability/.env.test | 6 + apps/availability/Dockerfile | 25 + apps/availability/next-env.d.ts | 5 + apps/availability/next.config.js | 41 ++ apps/availability/package.json | 46 ++ apps/availability/postcss.config.js | 6 + .../public/fonts/RecklessNeue-Light.woff2 | Bin 0 -> 30712 bytes .../fonts/RecklessNeue-LightItalic.woff2 | Bin 0 -> 30188 bytes .../public/fonts/Roobert-Bold.woff2 | Bin 0 -> 44276 bytes .../public/fonts/Roobert-Light.woff2 | Bin 0 -> 39368 bytes .../public/fonts/Roobert-Regular.woff2 | Bin 0 -> 42928 bytes .../src/components/SpinnerIcon.tsx | 24 + apps/availability/src/globals.css | 75 +++ apps/availability/src/lib/api/apiRoute.ts | 37 ++ apps/availability/src/lib/api/db.ts | 25 + apps/availability/src/lib/api/env.ts | 14 + apps/availability/src/lib/api/slackAlert.ts | 34 + apps/availability/src/lib/date.test.ts | 19 + apps/availability/src/lib/date.ts | 50 ++ apps/availability/src/lib/util.ts | 18 + apps/availability/src/lib/validateEnv.ts | 22 + apps/availability/src/pages/_app.tsx | 22 + .../src/pages/api/public/get-form.ts | 29 + .../src/pages/api/public/submit.ts | 57 ++ .../availability/src/pages/api/status.test.ts | 22 + apps/availability/src/pages/api/status.ts | 13 + apps/availability/src/pages/form/[slug].tsx | 551 ++++++++++++++++ apps/availability/src/pages/index.tsx | 18 + apps/availability/tailwind.config.ts | 44 ++ apps/availability/tools/deployDocker.sh | 23 + apps/availability/tsconfig.json | 20 + apps/availability/vitest.config.ts | 12 + apps/infra/src/k8s/serviceDefinitions.ts | 17 + apps/meet/package.json | 2 +- package-lock.json | 594 +++++++++++++++++- 36 files changed, 1849 insertions(+), 31 deletions(-) create mode 100644 apps/availability/.env.local.template create mode 100644 apps/availability/.env.test create mode 100644 apps/availability/Dockerfile create mode 100644 apps/availability/next-env.d.ts create mode 100644 apps/availability/next.config.js create mode 100644 apps/availability/package.json create mode 100644 apps/availability/postcss.config.js create mode 100644 apps/availability/public/fonts/RecklessNeue-Light.woff2 create mode 100644 apps/availability/public/fonts/RecklessNeue-LightItalic.woff2 create mode 100644 apps/availability/public/fonts/Roobert-Bold.woff2 create mode 100644 apps/availability/public/fonts/Roobert-Light.woff2 create mode 100644 apps/availability/public/fonts/Roobert-Regular.woff2 create mode 100644 apps/availability/src/components/SpinnerIcon.tsx create mode 100644 apps/availability/src/globals.css create mode 100644 apps/availability/src/lib/api/apiRoute.ts create mode 100644 apps/availability/src/lib/api/db.ts create mode 100644 apps/availability/src/lib/api/env.ts create mode 100644 apps/availability/src/lib/api/slackAlert.ts create mode 100644 apps/availability/src/lib/date.test.ts create mode 100644 apps/availability/src/lib/date.ts create mode 100644 apps/availability/src/lib/util.ts create mode 100644 apps/availability/src/lib/validateEnv.ts create mode 100644 apps/availability/src/pages/_app.tsx create mode 100644 apps/availability/src/pages/api/public/get-form.ts create mode 100644 apps/availability/src/pages/api/public/submit.ts create mode 100644 apps/availability/src/pages/api/status.test.ts create mode 100644 apps/availability/src/pages/api/status.ts create mode 100644 apps/availability/src/pages/form/[slug].tsx create mode 100644 apps/availability/src/pages/index.tsx create mode 100644 apps/availability/tailwind.config.ts create mode 100755 apps/availability/tools/deployDocker.sh create mode 100644 apps/availability/tsconfig.json create mode 100644 apps/availability/vitest.config.ts diff --git a/apps/availability/.env.local.template b/apps/availability/.env.local.template new file mode 100644 index 0000000..7ce2697 --- /dev/null +++ b/apps/availability/.env.local.template @@ -0,0 +1,9 @@ +# Airtable: https://support.airtable.com/docs/creating-and-using-api-keys-and-access-tokens +AIRTABLE_PERSONAL_ACCESS_TOKEN= + +# BlueDot Impact Slack, #tech-dev-alerts +ALERTS_SLACK_CHANNEL_ID=C04SFUECECU +# For (local) BlueBot see https://airtable.com/appnNmNoNMB6crg6I/tbllthJ2YSPDsKWCt/viwfjWLvplq6Xw93D/recqurdJTPWzm5y4W +# For (prod) BlueBot see https://api.slack.com/apps/A04PV2GAQRY/install-on-team +# Starts 'xoxb-' +ALERTS_SLACK_BOT_TOKEN= diff --git a/apps/availability/.env.test b/apps/availability/.env.test new file mode 100644 index 0000000..8fb6ba2 --- /dev/null +++ b/apps/availability/.env.test @@ -0,0 +1,6 @@ +# Airtable +AIRTABLE_PERSONAL_ACCESS_TOKEN=FAKE_TOKEN + +# Slack +ALERTS_SLACK_CHANNEL_ID=C04SFUECECU +ALERTS_SLACK_BOT_TOKEN=FAKE_TOKEN diff --git a/apps/availability/Dockerfile b/apps/availability/Dockerfile new file mode 100644 index 0000000..3a42323 --- /dev/null +++ b/apps/availability/Dockerfile @@ -0,0 +1,25 @@ +FROM node:lts-alpine@sha256:7e227295e96f5b00aa79555ae166f50610940d888fc2e321cf36304cbd17d7d6 AS base + +RUN apk update && apk add --no-cache dumb-init + +WORKDIR /app + +ENV NODE_ENV production +ENV NEXT_TELEMETRY_DISABLED 1 + +# Set the correct permission for prerender cache +RUN mkdir .next +RUN chown node:node .next + +ARG APP_NAME +ENV APP_NAME=${APP_NAME} + +COPY --chown=node:node .next/standalone ./ +COPY --chown=node:node public ./apps/${APP_NAME}/public +COPY --chown=node:node .next/static ./apps/${APP_NAME}/.next/static + +USER node + +EXPOSE 8080 + +CMD HOSTNAME="0.0.0.0" PORT="8080" dumb-init node ./apps/${APP_NAME}/server.js diff --git a/apps/availability/next-env.d.ts b/apps/availability/next-env.d.ts new file mode 100644 index 0000000..4f11a03 --- /dev/null +++ b/apps/availability/next-env.d.ts @@ -0,0 +1,5 @@ +/// +/// + +// NOTE: This file should not be edited +// see https://nextjs.org/docs/basic-features/typescript for more information. diff --git a/apps/availability/next.config.js b/apps/availability/next.config.js new file mode 100644 index 0000000..607f8d2 --- /dev/null +++ b/apps/availability/next.config.js @@ -0,0 +1,41 @@ +/** @type {import('next').NextConfig} */ +module.exports = { + transpilePackages: ['@bluedot/ui'], + reactStrictMode: true, + output: 'standalone', + + // We already run eslint as a separate step + eslint: { + ignoreDuringBuilds: true, + }, + + poweredByHeader: false, + headers: async () => { + return [ + // See https://developers.zoom.us/docs/meeting-sdk/web/sharedarraybuffer/ + { + source: '/', + headers: [ + { + key: 'Cross-Origin-Embedder-Policy', + value: 'require-corp', + }, + { + key: 'Cross-Origin-Opener-Policy', + value: 'same-origin', + }, + ], + }, + { + source: '/:path*', + headers: [ + { + key: 'X-Bluedot-Version', + // eslint-disable-next-line turbo/no-undeclared-env-vars + value: process.env.VERSION_TAG || 'unknown', + }, + ], + }, + ]; + }, +}; diff --git a/apps/availability/package.json b/apps/availability/package.json new file mode 100644 index 0000000..db6896c --- /dev/null +++ b/apps/availability/package.json @@ -0,0 +1,46 @@ +{ + "name": "@bluedot/availability", + "version": "1.0.0", + "private": true, + "scripts": { + "postinstall": "shx cp -n .env.local.template .env.local", + "start": "next dev -p 8000", + "build": "next build", + "lint": "eslint .", + "test": "vitest --run", + "test:watch": "vitest", + "deploy:prod": "tools/deployDocker.sh" + }, + "dependencies": { + "@bluedot/ui": "*", + "airtable-ts": "^1.0.0", + "axios": "^1.6.8", + "clsx": "^2.1.0", + "http-errors": "^2.0.0", + "next": "^14.0.3", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-hook-form": "^7.51.3", + "react-select": "^5.8.0", + "weekly-availabilities": "^1.0.0" + }, + "devDependencies": { + "@bluedot/eslint-config": "*", + "@bluedot/typescript-config": "*", + "@testing-library/react": "^15.0.2", + "@types/node": "^20.10.3", + "@types/react": "^18.0.22", + "@types/react-dom": "^18.0.7", + "@vitejs/plugin-react": "^4.2.1", + "autoprefixer": "^10.4.19", + "dotenv": "^16.4.5", + "eslint": "^8.53.0", + "happy-dom": "^14.7.1", + "node-mocks-http": "^1.14.1", + "postcss": "^8.4.38", + "shx": "^0.3.4", + "tailwindcss": "^3.4.3", + "typescript": "^5.3.2", + "vitest": "^1.5.0" + } +} diff --git a/apps/availability/postcss.config.js b/apps/availability/postcss.config.js new file mode 100644 index 0000000..12a703d --- /dev/null +++ b/apps/availability/postcss.config.js @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +}; diff --git a/apps/availability/public/fonts/RecklessNeue-Light.woff2 b/apps/availability/public/fonts/RecklessNeue-Light.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..dce4437f25094f62abf96b96f8c764f208ad932e GIT binary patch literal 30712 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%0DFu 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 literal 0 HcmV?d00001 diff --git a/apps/availability/public/fonts/Roobert-Light.woff2 b/apps/availability/public/fonts/Roobert-Light.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..183bcc9f70e65caac2fe2751b3df5103b40b3865 GIT binary patch literal 39368 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 z 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 { + return ( + + + + + ); +}; diff --git a/apps/availability/src/globals.css b/apps/availability/src/globals.css new file mode 100644 index 0000000..fe54e1f --- /dev/null +++ b/apps/availability/src/globals.css @@ -0,0 +1,75 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +@font-face { + font-family: "Reckless Neue"; + src: url("/fonts/RecklessNeue-Light.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + font-style: normal +} + +@font-face { + font-family: "Reckless Neue"; + src: url("/fonts/RecklessNeue-LightItalic.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + font-style: italic +} + +@font-face { + font-family: "Roobert"; + src: url("/fonts/Roobert-Light.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + font-style: normal +} + +@font-face { + font-family: "Roobert"; + src: url("/fonts/Roobert-Regular.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + font-style: normal +} + +@font-face { + font-family: "Roobert"; + src: url("/fonts/Roobert-Bold.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + font-style: normal +} + +/* TODO: move these styles out of here */ + +.setup input { + @apply px-3 py-2 text-gray-700 rounded border focus:outline focus:outline-gray-400; +} + +.setup button { + @apply px-3 py-1 rounded text-white bg-blue-500 hover:bg-blue-600 disabled:bg-blue-300; +} + +.timezone-select.solid-select-container { + @apply w-32; +} + +.timezone-select .solid-select-list { + @apply bg-white border-gray-300 border-2 w-32; +} + +.timezone-select .solid-select-option { + @apply flex justify-center cursor-pointer; +} diff --git a/apps/availability/src/lib/api/apiRoute.ts b/apps/availability/src/lib/api/apiRoute.ts new file mode 100644 index 0000000..0c30099 --- /dev/null +++ b/apps/availability/src/lib/api/apiRoute.ts @@ -0,0 +1,37 @@ +import createHttpError from 'http-errors'; +import { NextApiHandler } from 'next'; +import { slackAlert } from './slackAlert'; + +export const apiRoute = (handler: NextApiHandler, useAuth: true | 'insecure_no_auth' = true): NextApiHandler => async (req, res) => { + try { + if (useAuth !== 'insecure_no_auth') { + const token = req.headers.authorization?.slice('Bearer '.length).trim(); + if (!token) { + throw new createHttpError.Unauthorized('Missing token'); + } + throw new Error('Authenticated endpoints not supported'); + } + await handler(req, res); + } catch (err: unknown) { + if (createHttpError.isHttpError(err) && err.expose) { + console.warn(`Error handling request on route ${req.method} ${req.url}:`); + console.warn(err); + res.status(err.statusCode).json({ error: err.message }); + return; + } + + console.error(`Internal error handling request on route ${req.method} ${req.url}:`); + console.error(err); + try { + await slackAlert([ + `Error: Failed request on route ${req.method} ${req.url}: ${err instanceof Error ? err.message : String(err)}`, + ...(err instanceof Error ? [`Stack:\n\`\`\`${err.stack}\`\`\``] : []), + ]); + } catch (slackError) { + console.error('Failed to send Slack', slackError); + } + res.status(createHttpError.isHttpError(err) ? err.statusCode : 500).json({ + error: 'Internal Server Error', + }); + } +}; diff --git a/apps/availability/src/lib/api/db.ts b/apps/availability/src/lib/api/db.ts new file mode 100644 index 0000000..965b536 --- /dev/null +++ b/apps/availability/src/lib/api/db.ts @@ -0,0 +1,25 @@ +import { AirtableTs, Table, Item } from 'airtable-ts'; +import env from './env'; + +export default new AirtableTs({ + apiKey: env.AIRTABLE_PERSONAL_ACCESS_TOKEN, +}); + +export interface FormConfiguration extends Item { + 'Slug': string, + 'Title': string, + 'Webhook': string, + 'Minimum length': number, +} + +export const formConfigurationTable: Table = { + name: 'form configuration', + baseId: 'app6dkBHka8c4WaEj', + tableId: 'tblvsaRl69XV8azGZ', + schema: { + Slug: 'string', + Title: 'string', + Webhook: 'string', + 'Minimum length': 'number', + }, +}; diff --git a/apps/availability/src/lib/api/env.ts b/apps/availability/src/lib/api/env.ts new file mode 100644 index 0000000..054d86b --- /dev/null +++ b/apps/availability/src/lib/api/env.ts @@ -0,0 +1,14 @@ +import { validateEnv } from '../validateEnv'; + +const envVars = [ + 'AIRTABLE_PERSONAL_ACCESS_TOKEN', + + 'ALERTS_SLACK_CHANNEL_ID', + 'ALERTS_SLACK_BOT_TOKEN', +] as const; + +export type Env = Record<(typeof envVars)[number], string>; + +const env: Env = validateEnv(process.env, envVars); + +export default env; diff --git a/apps/availability/src/lib/api/slackAlert.ts b/apps/availability/src/lib/api/slackAlert.ts new file mode 100644 index 0000000..1a67bdd --- /dev/null +++ b/apps/availability/src/lib/api/slackAlert.ts @@ -0,0 +1,34 @@ +import axios from 'axios'; +import env from './env'; + +export const slackAlert = async (messages: string[]): Promise => { + if (messages.length === 0) return; + const res = await sendSingleSlackMessage(messages[0]!); + for (let i = 1; i < messages.length; i++) { + // eslint-disable-next-line no-await-in-loop + await sendSingleSlackMessage(messages[i]!, res.ts); + } +}; + +const sendSingleSlackMessage = async (message: string, threadTs?: string): Promise<{ ts: string }> => { + console.log(`Sending Slack (thread: ${threadTs ?? 'none'}): ${message}`); + return axios({ + method: 'post', + baseURL: 'https://slack.com/api/', + url: 'chat.postMessage', + headers: { + 'Content-Type': 'application/json', + Authorization: `Bearer ${env.ALERTS_SLACK_BOT_TOKEN}`, + }, + data: { + channel: env.ALERTS_SLACK_CHANNEL_ID, + text: `time-availability-form: ${message}`, + thread_ts: threadTs, + }, + }).then((res) => { + if (!res.data.ok) { + throw new Error(`Error from Slack API: ${res.data.error}`); + } + return { ts: res.data.ts }; + }); +}; diff --git a/apps/availability/src/lib/date.test.ts b/apps/availability/src/lib/date.test.ts new file mode 100644 index 0000000..416b2dd --- /dev/null +++ b/apps/availability/src/lib/date.test.ts @@ -0,0 +1,19 @@ +import { describe, expect, test } from 'vitest'; +import { offsets, parseOffsetFromStringToMinutes } from './date'; + +describe('parseOffsetFromStringToMinutes', () => { + test.each([ + ['UTC00:00', 0], + ['UTC-01:00', 60], + ['UTC-01:30', 90], + ['UTC+01:00', -60], + ['UTC+02:00', -120], + ['UTC+03:45', -225], + ])('%s', (timezone, offset) => { + expect(parseOffsetFromStringToMinutes(timezone)).toBe(offset); + }); + + test('all offsets can be parsed', () => { + offsets.forEach((offset) => expect(() => parseOffsetFromStringToMinutes(offset)).not.toThrow()); + }); +}); diff --git a/apps/availability/src/lib/date.ts b/apps/availability/src/lib/date.ts new file mode 100644 index 0000000..28b0edd --- /dev/null +++ b/apps/availability/src/lib/date.ts @@ -0,0 +1,50 @@ +export const offsets = [ + 'UTC-12:00', + 'UTC-11:00', + 'UTC-10:00', + 'UTC-09:30', + 'UTC-09:00', + 'UTC-08:00', + 'UTC-07:00', + 'UTC-06:00', + 'UTC-05:00', + 'UTC-04:00', + 'UTC-03:30', + 'UTC-03:00', + 'UTC-02:00', + 'UTC-01:00', + 'UTC00:00', + 'UTC+01:00', + 'UTC+02:00', + 'UTC+03:00', + 'UTC+03:30', + 'UTC+04:00', + 'UTC+04:30', + 'UTC+05:00', + 'UTC+05:30', + 'UTC+05:45', + 'UTC+06:00', + 'UTC+06:30', + 'UTC+07:00', + 'UTC+08:00', + 'UTC+08:45', + 'UTC+09:00', + 'UTC+09:30', + 'UTC+10:00', + 'UTC+10:30', + 'UTC+11:00', + 'UTC+12:00', + 'UTC+12:45', + 'UTC+13:00', + 'UTC+14:00', +]; + +export function parseOffsetFromStringToMinutes(offset: string): number { + if (offset === 'UTC00:00') return 0; + + if (!/UTC(\+|-)\d\d:\d\d/.test(offset)) throw new Error(`Unsupported timezone: ${offset}`); + + const sign = offset[3] === '-' ? 1 : -1; + const minutes = (parseInt(offset[4]!) * 10 + parseInt(offset[5]!)) * 60 + (parseInt(offset[7]!) * 10 + parseInt(offset[8]!)); + return sign * minutes; +} diff --git a/apps/availability/src/lib/util.ts b/apps/availability/src/lib/util.ts new file mode 100644 index 0000000..d1fc013 --- /dev/null +++ b/apps/availability/src/lib/util.ts @@ -0,0 +1,18 @@ +export function snapToRect( + { + top, bottom, left, right, + }: { top: number, bottom: number, left: number, right: number }, + { x, y }: { x: number, y: number }, +) { + return { + // eslint-disable-next-line no-nested-ternary + x: x < left ? left + 5 : x > right ? right - 5 : x, + // eslint-disable-next-line no-nested-ternary + y: y > bottom ? bottom - 5 : y < top ? top + 5 : y, + }; +} + +// pad number with zeros so that it has 2 digits +export function pad(num: number) { + return num < 10 ? `0${num}` : num; +} diff --git a/apps/availability/src/lib/validateEnv.ts b/apps/availability/src/lib/validateEnv.ts new file mode 100644 index 0000000..162bc14 --- /dev/null +++ b/apps/availability/src/lib/validateEnv.ts @@ -0,0 +1,22 @@ +export const validateEnv = ( + envSource: Record, + expectedVars: readonly T[], +): Record => { + const env = {} as Record; + const unset: string[] = []; + + expectedVars.forEach((envVar) => { + const value = envSource[envVar]?.trim(); + if (value === undefined || value.length === 0) { + unset.push(envVar); + return; + } + env[envVar] = value; + }); + + if (unset.length > 0) { + throw new Error(`Unset environment variables: ${unset.join(', ')}`); + } + + return env; +}; diff --git a/apps/availability/src/pages/_app.tsx b/apps/availability/src/pages/_app.tsx new file mode 100644 index 0000000..7114d8b --- /dev/null +++ b/apps/availability/src/pages/_app.tsx @@ -0,0 +1,22 @@ +import '../globals.css'; +import type { AppProps } from 'next/app'; +import Head from 'next/head'; +import dynamic from 'next/dynamic'; + +const App: React.FC = ({ Component, pageProps }: AppProps) => { + return ( + <> + + BlueDot Impact Availability + + + + ); +}; + +const AppWithNoSsr = dynamic( + () => Promise.resolve(App), + { ssr: false }, +); + +export default AppWithNoSsr; diff --git a/apps/availability/src/pages/api/public/get-form.ts b/apps/availability/src/pages/api/public/get-form.ts new file mode 100644 index 0000000..e45406e --- /dev/null +++ b/apps/availability/src/pages/api/public/get-form.ts @@ -0,0 +1,29 @@ +import type { NextApiRequest, NextApiResponse } from 'next'; +import createHttpError from 'http-errors'; +import db, { formConfigurationTable } from '../../../lib/api/db'; +import { apiRoute } from '../../../lib/api/apiRoute'; + +export type GetFormResponse = { + type: 'success', + title: string, + minimumLength: number, +}; + +export default apiRoute(async ( + req: NextApiRequest, + res: NextApiResponse, +) => { + const records = await db.scan(formConfigurationTable, { + filterByFormula: `{Slug} = "${req.query.slug}"`, + }); + + if (!records || records.length === 0) { + throw new createHttpError.NotFound('Form not found'); + } + + res.status(200).json({ + type: 'success', + title: records[0]?.Title || 'Unnamed form', + minimumLength: records[0]?.['Minimum length'] ?? 90, + }); +}, 'insecure_no_auth'); diff --git a/apps/availability/src/pages/api/public/submit.ts b/apps/availability/src/pages/api/public/submit.ts new file mode 100644 index 0000000..fd93b57 --- /dev/null +++ b/apps/availability/src/pages/api/public/submit.ts @@ -0,0 +1,57 @@ +import type { NextApiRequest, NextApiResponse } from 'next'; +import { parseIntervals } from 'weekly-availabilities'; +import axios from 'axios'; +import { apiRoute } from '../../../lib/api/apiRoute'; +import db, { formConfigurationTable } from '../../../lib/api/db'; + +export type SubmitRequest = { + email: string, + availability: string + timezone: string, + comments: string +}; + +const isValidAvailabilityExpression = (availability: string) => { + try { + parseIntervals(availability); + return true; + } catch (err) { + return false; + } +}; + +export default apiRoute(async ( + req: NextApiRequest, + res: NextApiResponse, +) => { + // TODO: schema validation + const data = req.body as SubmitRequest; + + if (!isValidAvailabilityExpression(req.body.availability)) { + res.status(400).send({ error: 'Invalid time availability expression' }); + return; + } + + const records = await db.scan(formConfigurationTable, { + filterByFormula: `{Slug} = "${req.query.slug}"`, + }); + + if (!records || records.length === 0) { + res.status(404).send({ type: 'error', message: 'Form not found' }); + return; + } + const record = records[0]!; + + const webhookResponse = await axios.post(record.Webhook, { + Comments: data.comments, + Email: data.email, + 'Time availability in UTC': data.availability, + Timezone: data.timezone, + }); + + if (webhookResponse.status !== 200) { + throw new Error(`Unexpected response from form webhook (status ${webhookResponse.status}) for form ${record.id}`); + } + + res.status(200).json({ type: 'success' }); +}, 'insecure_no_auth'); diff --git a/apps/availability/src/pages/api/status.test.ts b/apps/availability/src/pages/api/status.test.ts new file mode 100644 index 0000000..8c7d11e --- /dev/null +++ b/apps/availability/src/pages/api/status.test.ts @@ -0,0 +1,22 @@ +/* eslint-disable no-underscore-dangle */ +import { NextApiRequest, NextApiResponse } from 'next'; +import type { Request, Response } from 'express'; +import { createMocks } from 'node-mocks-http'; +import { describe, expect, test } from 'vitest'; +import handle from './status'; + +describe('/api/status', () => { + test('returns an online status', async () => { + const { req, res } = createMocks< + NextApiRequest & Request, + NextApiResponse & Response + >({ method: 'GET' }); + + await handle(req, res); + + expect(res._getStatusCode()).toBe(200); + expect(JSON.parse(res._getData())).toEqual({ + status: 'Online', + }); + }); +}); diff --git a/apps/availability/src/pages/api/status.ts b/apps/availability/src/pages/api/status.ts new file mode 100644 index 0000000..dde0ea3 --- /dev/null +++ b/apps/availability/src/pages/api/status.ts @@ -0,0 +1,13 @@ +import type { NextApiRequest, NextApiResponse } from 'next'; +import { apiRoute } from '../../lib/api/apiRoute'; + +export type StatusResponse = { + status: string +}; + +export default apiRoute(async ( + req: NextApiRequest, + res: NextApiResponse, +) => { + res.status(200).json({ status: 'Online' }); +}, 'insecure_no_auth'); diff --git a/apps/availability/src/pages/form/[slug].tsx b/apps/availability/src/pages/form/[slug].tsx new file mode 100644 index 0000000..129fdda --- /dev/null +++ b/apps/availability/src/pages/form/[slug].tsx @@ -0,0 +1,551 @@ +import axios from 'axios'; +import { useRouter } from 'next/router'; +import { + useEffect, useRef, useState, useMemo, +} from 'react'; +import { + Controller, FormProvider, useForm, useFormContext, +} from 'react-hook-form'; +import Select from 'react-select'; +import { SpinnerIcon } from '../../components/SpinnerIcon'; +import { parseOffsetFromStringToMinutes, offsets } from '../../lib/date'; +import { pad, snapToRect } from '../../lib/util'; +import { SubmitRequest } from '../api/public/submit'; +import { GetFormResponse } from '../api/public/get-form'; + +// types +type Timepoint = { day: number; minutes: number }; +type Coord = { day: number; time: number }; + +const serializeCoord = ({ day, time }: Coord) => `${day},${time}`; + +// consts +const MINUTES_IN_UNIT = 30; +const days = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']; +const browserTimezoneName = new Intl.DateTimeFormat().resolvedOptions().timeZone; + +// utils +const normalizeBlock = ({ + anchor: a, + cursor: c, +}: { + anchor: Coord; + cursor: Coord; +}) => { + return { + min: { day: Math.min(a.day, c.day), time: Math.min(a.time, c.time) }, + max: { day: Math.max(a.day, c.day), time: Math.max(a.time, c.time) }, + }; +}; + +const isWithin = ( + { min, max }: { min: Coord; max: Coord }, + { day, time }: Coord, +) => { + return ( + min.time <= time && max.time >= time && min.day <= day && max.day >= day + ); +}; + +const daySymbols = ['M', 'T', 'W', 'R', 'F', 'S', 'U']; +const stringifyTimepoint = ({ day, minutes }: Timepoint) => { + const hour = Math.floor(minutes / 60); + const minute = minutes % 60; + const dayName = daySymbols[(day + 7) % 7]; + return `${dayName}${pad(hour)}:${pad(minute)}`; +}; + +const shiftTimepoint = ({ day, minutes }: Timepoint, timezoneOrOffsetInMinutes: number | string) => { + const offsetInMinutes = typeof timezoneOrOffsetInMinutes === 'number' + ? timezoneOrOffsetInMinutes + : parseOffsetFromStringToMinutes(timezoneOrOffsetInMinutes); + + let newMinutes = minutes + offsetInMinutes; + + let newDay = day; + if (newMinutes < 0) { + newDay -= 1; + newMinutes += 1440; + } + if (newMinutes >= 1440) { + newDay += 1; + newMinutes -= 1440; + } + newDay = (newDay + 7) % 7; + + return { day: newDay, minutes: newMinutes }; +}; + +const timepointToMinutes = ({ day, minutes }: Timepoint) => { + return day * 1440 + minutes; +}; + +const coalesceTimeAv = ( + timeAv: { [serialisedCoord: string]: boolean }, + timezone: string, +) => { + const nIntervals = (24 * 60) / MINUTES_IN_UNIT; + + const timepoints = []; + for (let day = 0; day < days.length; day++) { + for (let time = 0; time < nIntervals; time++) { + const key = serializeCoord({ day, time }); + + if (timeAv[key]) { + const minutes = time * MINUTES_IN_UNIT; + timepoints.push(shiftTimepoint({ day, minutes }, timezone)); + } + } + } + timepoints.sort((a, b) => (a.day - b.day) * 1440 + a.minutes - b.minutes); + + const intervals = []; + // eslint-disable-next-line no-restricted-syntax + for (const timepoint of timepoints) { + const lastInterval = intervals[intervals.length - 1]; + + // If this is a separate interval, create a new interval + if ( + !lastInterval + || lastInterval.end.day !== timepoint.day + || lastInterval.end.minutes !== timepoint.minutes + ) { + intervals.push({ start: timepoint, end: timepoint }); + } + + intervals[intervals.length - 1]!.end = shiftTimepoint(timepoint, MINUTES_IN_UNIT); + } + + return intervals; +}; + +const serializeTimeAv = ( + timeAv: { [serialisedCoord: string]: boolean }, + timezone: string, +) => { + return coalesceTimeAv(timeAv, timezone) + .map(({ start, end }) => `${stringifyTimepoint(start)} ${stringifyTimepoint(end)}`) + .join(', '); +}; + +interface FormData { + email: string; + timezone: string; + timeAv: { [serialisedCoord: string]: boolean }; + comment: string; +} + +const TimeAvWidget: React.FC<{ show24: boolean }> = ({ show24 }) => { + const { watch, setValue } = useFormContext(); + + const startTime = show24 ? 0 : (8 * 60) / MINUTES_IN_UNIT; + const endTime = show24 + ? (24 * 60) / MINUTES_IN_UNIT + : (23 * 60) / MINUTES_IN_UNIT; + + const cellCoords: Coord[] = []; + const cellRefs: ({ ref: HTMLDivElement | null; coord: Coord } | null)[] = useMemo(() => [], []); + const times = []; + for (let i = startTime; i <= endTime; i++) { + times.push(i); + if (i !== endTime) { + for (let d = 0; d < days.length; d++) { + cellCoords.push({ day: d, time: i }); + cellRefs.push(null); + } + } + } + + const timeAv = watch('timeAv'); + + const timeToLabel = (time: number) => { + const minutes = time * MINUTES_IN_UNIT; + if (minutes < 0 || minutes > 1440) throw new Error(`Invalid time: ${time} (${minutes} mins)`); + const hours = Math.floor(minutes / 60); + const minutesRemaining = minutes - hours * 60; + return `${hours.toString().padStart(2, '0')}:${minutesRemaining.toString().padStart(2, '0')}`; + }; + + const [dragState, setDragState] = useState<{ + dragging: false | 'neg' | 'pos'; + anchor?: Coord; + cursor?: Coord; + }>({ dragging: false }); + + const dragStart = (cell: Coord) => { + setDragState({ + dragging: timeAv[serializeCoord(cell)] ? 'neg' : 'pos', + anchor: cell, + cursor: cell, + }); + }; + + const mainGrid = useRef(null); + + useEffect(() => { + const mouseMoveListener = (e: MouseEvent) => { + if (!dragState.dragging || !mainGrid.current) return; + + const mousepos = { x: e.clientX, y: e.clientY }; + const { x, y } = snapToRect(mainGrid.current.getBoundingClientRect(), mousepos); + + const cell = cellRefs.find((c) => { + if (!c?.ref) return false; + const { + top, bottom, left, right, + } = c.ref.getBoundingClientRect(); + + return (x >= left && x <= right && y >= top && y <= bottom); + }); + + if (cell) { + setDragState((prev) => ({ ...prev, cursor: cell.coord })); + } + }; + document.addEventListener('mousemove', mouseMoveListener); + + const mouseUpListener = () => { + if (!dragState.dragging || !dragState.anchor || !dragState.cursor) return; + const { min, max } = normalizeBlock({ + anchor: dragState.anchor, + cursor: dragState.cursor, + }); + + const targetVal = dragState.dragging === 'pos'; + for (let { day } = min; day <= max.day; day++) { + for (let { time } = min; time <= max.time; time++) { + setValue(`timeAv.${serializeCoord({ day, time })}`, targetVal); + } + } + setDragState({ dragging: false }); + }; + document.addEventListener('mouseup', mouseUpListener); + + return () => { + document.removeEventListener('mousemove', mouseMoveListener); + document.removeEventListener('mouseup', mouseUpListener); + }; + }, [cellRefs, dragState, mainGrid, setValue]); + + return ( +
+
+
+
+ {days.map((day) =>
{day}
)} +
+
+
+
+ {times.map((time, i) => i % 2 === 0 && ( +
+
{timeToLabel(time)}
+
+ ))} +
+
+
+ {cellCoords.map((coord, i) => { + const isBlocked = timeAv[serializeCoord(coord)]; + + const borderStyle = Math.floor(i / 7) % 2 === 0 + ? '[border-bottom-style:dotted]' + : 'border-solid'; + + const overlay = dragState.dragging + && dragState.anchor + && dragState.cursor + && isWithin( + normalizeBlock({ + anchor: dragState.anchor, + cursor: dragState.cursor, + }), + coord, + ); + + const overlayKind = overlay && dragState.dragging === 'pos' + ? 'bg-green-400' + : dragState.dragging === 'neg' && 'bg-purple-400'; + + return ( + // eslint-disable-next-line jsx-a11y/no-static-element-interactions +
{ cellRefs[i] = { ref, coord }; }} + className={`relative h-4 ${ + isBlocked ? 'bg-green-400' : 'bg-red-50' + } border-gray-800 border-r border-b ${borderStyle}`} + onMouseDown={(e) => { + e.preventDefault(); + dragStart(coord); + }} + onTouchStart={(e) => { + e.preventDefault(); + dragStart(coord); + }} + > +
+ {overlay &&
} +
+ ); + })} +
+
+
+
+ ); +}; + +const TimeAv: React.FC = () => { + const [show24, setShow24] = useState(false); + const { setValue } = useFormContext(); + + return ( +
+ +
+
+ + +
+
+ ); +}; + +const TimeOffsetSelector: React.FC = () => { + const { control } = useFormContext(); + const options = offsets.map((s) => ({ value: s, label: s })); + + const [detected, setDetected] = useState(true); + + return ( +
+ + ( + + +
+ +
+
+

Click and drag to select your availability. Times are in your selected time offset - note that daylight savings may change your offset during the course, but your cohort will usually stay at the same UTC time.

+

+

+ +
+