From 1a7d0887b6c22ca6539a15297fd4159d33d7dc48 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Mon, 3 May 2021 15:53:07 +0200 Subject: Refactor parseQueryStringFilter boolean handler --- client/src/app/core/rest/rest.service.ts | 12 +++++++++--- client/src/app/core/users/user.service.ts | 8 +------- client/src/app/shared/shared-main/video/video.service.ts | 8 +------- .../app/shared/shared-video-comment/video-comment.service.ts | 8 +------- 4 files changed, 12 insertions(+), 24 deletions(-) (limited to 'client') diff --git a/client/src/app/core/rest/rest.service.ts b/client/src/app/core/rest/rest.service.ts index 4f1fc8848..1696e6709 100644 --- a/client/src/app/core/rest/rest.service.ts +++ b/client/src/app/core/rest/rest.service.ts @@ -90,14 +90,20 @@ export class RestService { const matchedTokens = tokens.filter(t => t.startsWith(prefix)) .map(t => t.slice(prefix.length)) // Keep the value filter - .map(t => t.replace(/^"|"$/g, '')) + .map(t => t.replace(/^"|"$/g, '')) // Remove "" .map(t => { if (prefixObj.handler) return prefixObj.handler(t) + if (prefixObj.isBoolean) { + if (t === 'true') return true + if (t === 'false') return false + + return undefined + } + return t }) - .filter(t => !!t || t === 0) - .map(t => prefixObj.isBoolean ? t === 'true' : t) + .filter(t => t !== null && t !== undefined) if (matchedTokens.length === 0) continue diff --git a/client/src/app/core/users/user.service.ts b/client/src/app/core/users/user.service.ts index 3de83152c..47db985e1 100644 --- a/client/src/app/core/users/user.service.ts +++ b/client/src/app/core/users/user.service.ts @@ -320,13 +320,7 @@ export class UserService { const filters = this.restService.parseQueryStringFilter(search, { blocked: { prefix: 'banned:', - isBoolean: true, - handler: v => { - if (v === 'true') return v - if (v === 'false') return v - - return undefined - } + isBoolean: true } }) diff --git a/client/src/app/shared/shared-main/video/video.service.ts b/client/src/app/shared/shared-main/video/video.service.ts index 668e51f73..7b17bd2ab 100644 --- a/client/src/app/shared/shared-main/video/video.service.ts +++ b/client/src/app/shared/shared-main/video/video.service.ts @@ -129,13 +129,7 @@ export class VideoService implements VideosProvider { const filters = this.restService.parseQueryStringFilter(search, { isLive: { prefix: 'isLive:', - isBoolean: true, - handler: v => { - if (v === 'true') return v - if (v === 'false') return v - - return undefined - } + isBoolean: true } }) diff --git a/client/src/app/shared/shared-video-comment/video-comment.service.ts b/client/src/app/shared/shared-video-comment/video-comment.service.ts index 0f09778df..c5aeb3c12 100644 --- a/client/src/app/shared/shared-video-comment/video-comment.service.ts +++ b/client/src/app/shared/shared-video-comment/video-comment.service.ts @@ -190,13 +190,7 @@ export class VideoCommentService { const filters = this.restService.parseQueryStringFilter(search, { isLocal: { prefix: 'local:', - isBoolean: true, - handler: v => { - if (v === 'true') return v - if (v === 'false') return v - - return undefined - } + isBoolean: true }, searchAccount: { prefix: 'account:' }, -- cgit v1.2.3