From 0c33a13d72af0d1d8a558067bd8d6f3bc92a1e05 Mon Sep 17 00:00:00 2001 From: Behzad-rabiei Date: Wed, 16 Apr 2025 16:36:35 +0200 Subject: [PATCH 1/2] chore: update docs and validation --- src/docs/platform.doc.yml | 7 +++++-- src/validations/module.validation.ts | 6 +----- src/validations/platform.validation.ts | 22 +++++++++++++++++++++- 3 files changed, 27 insertions(+), 8 deletions(-) diff --git a/src/docs/platform.doc.yml b/src/docs/platform.doc.yml index de8cadb..7a76e09 100644 --- a/src/docs/platform.doc.yml +++ b/src/docs/platform.doc.yml @@ -165,13 +165,16 @@ paths: type: string description: Metadata for Notion. - type: object - required: [baseURL, path] + required: [baseURL, path, namespace] properties: baseURL: type: string path: type: string - default: /w/api.php + namespace: + type: array + items: + type: number description: Metadata for MediaWiki. - type: object required: [id, period, analyzerStartedAt, resources] diff --git a/src/validations/module.validation.ts b/src/validations/module.validation.ts index 127d395..49515a5 100644 --- a/src/validations/module.validation.ts +++ b/src/validations/module.validation.ts @@ -1,10 +1,7 @@ import Joi from 'joi'; import { - HivemindPlatformNames, - ModuleNames, - PlatformNames, - ViolationDetectionPlatformNames, + HivemindPlatformNames, ModuleNames, PlatformNames, ViolationDetectionPlatformNames } from '@togethercrew.dev/db'; import { objectId } from './custom.validation'; @@ -79,7 +76,6 @@ const hivemindNotionMetadata = () => { const hivemindMediaWikiMetadata = () => { return Joi.object().keys({ - pageIds: Joi.array().items(Joi.string()), activated: Joi.boolean(), }); }; diff --git a/src/validations/platform.validation.ts b/src/validations/platform.validation.ts index 002c122..f022c19 100644 --- a/src/validations/platform.validation.ts +++ b/src/validations/platform.validation.ts @@ -34,6 +34,15 @@ const websiteUpdateMetadata = () => { resources: Joi.array().items(Joi.string().uri({ scheme: ['http', 'https'] })), }); }; + +const mediaWikiUpdateMetadata = () => { + return Joi.object().keys({ + baseURL: Joi.string().required(), + path: Joi.string().required(), + namespace: Joi.array().items(Joi.number()).required(), + }); +}; + const twitterMetadata = () => { return Joi.object().keys({ id: Joi.string().required(), @@ -84,7 +93,8 @@ const notionMetadata = () => { const mediaWikiMetadata = () => { return Joi.object().keys({ baseURL: Joi.string().required(), - path: Joi.string().required().valid('/w/api.php'), + path: Joi.string().required(), + namespace: Joi.array().items(Joi.number()).required(), }); }; @@ -229,6 +239,16 @@ const dynamicUpdatePlatform = (req: Request) => { }), }; } + case PlatformNames.MediaWiki: { + return { + params: Joi.object().keys({ + platformId: Joi.required().custom(objectId), + }), + body: Joi.object().required().keys({ + metadata: mediaWikiUpdateMetadata(), + }), + }; + } default: req.allowInput = false; return {}; From 9c6752e6f09db06b9c0a27aa64fee920032c6f80 Mon Sep 17 00:00:00 2001 From: Behzad-rabiei Date: Wed, 16 Apr 2025 16:38:39 +0200 Subject: [PATCH 2/2] chore: update docs and validation --- src/validations/module.validation.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/validations/module.validation.ts b/src/validations/module.validation.ts index 49515a5..f5d4f3d 100644 --- a/src/validations/module.validation.ts +++ b/src/validations/module.validation.ts @@ -1,7 +1,10 @@ import Joi from 'joi'; import { - HivemindPlatformNames, ModuleNames, PlatformNames, ViolationDetectionPlatformNames + HivemindPlatformNames, + ModuleNames, + PlatformNames, + ViolationDetectionPlatformNames, } from '@togethercrew.dev/db'; import { objectId } from './custom.validation';