From e9f9cb7e3b3910297c5368e1a6f4e222569bbc1c Mon Sep 17 00:00:00 2001 From: Aleksi Lassila Date: Wed, 19 Feb 2025 16:30:59 +0200 Subject: [PATCH] feat: clear metadata cache button --- backend/src/metadata/metadata.controller.ts | 16 ++++++++ backend/src/metadata/metadata.module.ts | 3 +- src/lib/apis/reiverr/reiverr.openapi.ts | 41 ++++++++++++++------- src/lib/pages/ManagePage/ManagePage.svelte | 5 ++- 4 files changed, 49 insertions(+), 16 deletions(-) create mode 100644 backend/src/metadata/metadata.controller.ts diff --git a/backend/src/metadata/metadata.controller.ts b/backend/src/metadata/metadata.controller.ts new file mode 100644 index 0000000..ac653b0 --- /dev/null +++ b/backend/src/metadata/metadata.controller.ts @@ -0,0 +1,16 @@ +import { Controller, Post, UseGuards } from '@nestjs/common'; +import { UserAccessControl } from 'src/auth/auth.guard'; +import { MetadataService } from './metadata.service'; +import { ApiTags } from '@nestjs/swagger'; + +@ApiTags('metadata') +@Controller('metadata') +export class MetadataController { + constructor(private metadataService: MetadataService) {} + + @UseGuards(UserAccessControl) + @Post('clear-cache') + async clearCache() { + await this.metadataService.clearMetadataCache(); + } +} diff --git a/backend/src/metadata/metadata.module.ts b/backend/src/metadata/metadata.module.ts index bd64432..db748c8 100644 --- a/backend/src/metadata/metadata.module.ts +++ b/backend/src/metadata/metadata.module.ts @@ -7,6 +7,7 @@ import { MetadataService } from './metadata.service'; import { TmdbController } from './tmdb/tmdb.controller'; import { tmdbProviders } from './tmdb/tmdb.providers'; import { TmdbService } from './tmdb/tmdb.service'; +import { MetadataController } from './metadata.controller'; @Module({ imports: [ @@ -19,7 +20,7 @@ import { TmdbService } from './tmdb/tmdb.service'; ...tmdbProviders, TmdbService, ], - controllers: [TmdbController], + controllers: [TmdbController, MetadataController], exports: [MetadataService], }) export class MetadataModule {} diff --git a/src/lib/apis/reiverr/reiverr.openapi.ts b/src/lib/apis/reiverr/reiverr.openapi.ts index b6c1af4..5fcce97 100644 --- a/src/lib/apis/reiverr/reiverr.openapi.ts +++ b/src/lib/apis/reiverr/reiverr.openapi.ts @@ -1080,19 +1080,6 @@ export class Api extends HttpClient - this.request({ - path: `/api`, - method: 'GET', - ...params - }), - /** * No description * @@ -1195,6 +1182,34 @@ export class Api extends HttpClient + this.request({ + path: `/api`, + method: 'GET', + ...params + }) + }; + metadata = { + /** + * No description + * + * @tags metadata + * @name ClearCache + * @request POST:/api/metadata/clear-cache + */ + clearCache: (params: RequestParams = {}) => + this.request({ + path: `/api/metadata/clear-cache`, + method: 'POST', + ...params }) }; providers = { diff --git a/src/lib/pages/ManagePage/ManagePage.svelte b/src/lib/pages/ManagePage/ManagePage.svelte index c57dca3..8ccf17c 100644 --- a/src/lib/pages/ManagePage/ManagePage.svelte +++ b/src/lib/pages/ManagePage/ManagePage.svelte @@ -17,7 +17,7 @@ import { scrollIntoView } from '../../selectable'; import { localSettings } from '../../stores/localstorage.store'; import { sessions } from '../../stores/session.store'; - import { user } from '../../stores/user.store'; + import { reiverrApiNew, user } from '../../stores/user.store'; import Plugins from './MediaSources.ManagePage.svelte'; enum Tabs { @@ -366,7 +366,8 @@ {#if tizenMediaKey}
Tizen media key: {tizenMediaKey}
{/if} -
+
+