diff --git a/packages/api/src/index.ts b/packages/api/src/index.ts
index c4c9720..eb4184f 100644
--- a/packages/api/src/index.ts
+++ b/packages/api/src/index.ts
@@ -4,6 +4,7 @@ import rateLimit from '@fastify/rate-limit';
import v1EntriesRoutes from 'routes/v1/entries';
import v1ReportRoutes from 'routes/v1/report';
import v2DataRoutes from 'routes/v2/data';
+import v2ReportRoutes from 'routes/v2/report';
import environment from 'services/environment';
const server = fastify({ logger: true });
@@ -21,6 +22,7 @@ server.register(rateLimit, { max: 1, timeWindow: 30000 });
server.register(v1EntriesRoutes, { prefix: '/rest/v1' });
server.register(v1ReportRoutes, { prefix: '/rest/v1' });
server.register(v2DataRoutes, { prefix: '/rest/v2' });
+server.register(v2ReportRoutes, { prefix: '/rest/v2' });
server.listen({ host: '0.0.0.0', port: environment.port }, (error, address) => {
if (error) {
diff --git a/packages/api/src/routes/v2/report.ts b/packages/api/src/routes/v2/report.ts
new file mode 100644
index 0000000..56f3596
--- /dev/null
+++ b/packages/api/src/routes/v2/report.ts
@@ -0,0 +1,40 @@
+import { FastifyInstance, RouteShorthandOptions } from 'fastify';
+import { sendMail } from 'services/mailing';
+
+type PostReportBody = {
+ url: string;
+ version: string;
+};
+
+export default (server: FastifyInstance, options: RouteShorthandOptions, done: () => void) => {
+ server.post<{ Body: PostReportBody }>(
+ '/report/',
+ {
+ schema: {
+ body: {
+ properties: {
+ url: {
+ type: 'string',
+ },
+ version: {
+ type: 'string',
+ },
+ },
+ required: ['url', 'version'],
+ type: 'object',
+ },
+ },
+ },
+ async (request, reply) => {
+ const { url, version } = request.body;
+ const html = `Site: ${url}
Version: ${version}`;
+ const subject = 'Cookie Dialog Monster Report';
+ const to = 'hello@wanhose.dev';
+
+ sendMail({ html, to, subject });
+ reply.send({ success: true });
+ }
+ );
+
+ done();
+};