0
0
Fork 0

Improve data validation for channel names

This commit is contained in:
Oliver-Akins 2023-02-20 19:57:37 -07:00
parent adf3cdf771
commit 29e7e2a297
5 changed files with 19 additions and 5 deletions

View file

@ -1,16 +1,24 @@
import { ServerRoute } from "@hapi/hapi";
import { log } from "$/main";
import path from "path";
import Joi from "joi";
import { channelSchema } from "$/schemas/general";
const route: ServerRoute = {
method: `GET`, path: `/{channel}/overlay/{theme}/{path*}`,
options: {
validate: {
params: Joi.object({
channel: channelSchema,
theme: Joi.string().pattern(/^[a-z0-9\-]+$/),
path: Joi.string().optional(),
}),
},
files: {
relativeTo: path.join(process.cwd(), `site`),
},
},
handler(request, h) {
// const theme = request.query.theme;
const path = request.params.path;
const theme = request.params.theme.replace(/\-/g, `/`);

View file

@ -1,4 +1,5 @@
import { anonymizePhrase, convertToKey, spacePhrase } from "$/utils/game";
import { channelSchema } from "$/schemas/general";
import { config, database } from "$/main";
import { ServerRoute } from "@hapi/hapi";
import { readFileSync } from "fs";
@ -10,7 +11,7 @@ const route: ServerRoute = {
options: {
validate: {
params: Joi.object({
channel: Joi.string().alphanum(),
channel: channelSchema,
}),
query: Joi.object({
word_list: Joi.string(),

View file

@ -1,5 +1,6 @@
import { database } from "$/main";
import { channelSchema } from "$/schemas/general";
import { ServerRoute } from "@hapi/hapi";
import { database } from "$/main";
import Joi from "joi";
const route: ServerRoute = {
@ -7,7 +8,7 @@ const route: ServerRoute = {
options: {
validate: {
payload: Joi.object({
channel: Joi.string().alphanum(),
channel: channelSchema,
}),
},
},

View file

@ -1,3 +1,4 @@
import { channelSchema } from "$/schemas/general";
import { config, database } from "$/main";
import { ServerRoute } from "@hapi/hapi";
import Joi from "joi";
@ -7,7 +8,7 @@ const route: ServerRoute = {
options: {
validate: {
params: Joi.object({
channel: Joi.string().alphanum(),
channel: channelSchema,
}),
},
},