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..f5d4f3d 100644 --- a/src/validations/module.validation.ts +++ b/src/validations/module.validation.ts @@ -79,7 +79,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 {};