From 34cb40ccf383a2a64025fd33b3853114d2e8958e Mon Sep 17 00:00:00 2001 From: Anton Ramanovich Date: Mon, 27 Oct 2025 17:53:25 +0100 Subject: [PATCH] [ACS-9166]: introduces variable for search save mode threshold --- .../services/saved-searches-base.service.spec.ts | 4 ++-- .../common/services/saved-searches-base.service.ts | 13 ++++++++----- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/lib/content-services/src/lib/common/services/saved-searches-base.service.spec.ts b/lib/content-services/src/lib/common/services/saved-searches-base.service.spec.ts index 1986eff321..480b2ea569 100644 --- a/lib/content-services/src/lib/common/services/saved-searches-base.service.spec.ts +++ b/lib/content-services/src/lib/common/services/saved-searches-base.service.spec.ts @@ -51,7 +51,7 @@ describe('SavedSearchesBaseService', () => { service.init(); }); - it('should emit updated searches with correct order if total of saved searches is less than 5', (done) => { + it('should emit updated searches with correct order if total of saved searches is less than limit (5)', (done) => { service.mockFetch(SAVED_SEARCHES_CONTENT); const newSearch = { name: 'new-search' } as SavedSearch; service.saveSearch(newSearch).subscribe(() => { @@ -68,7 +68,7 @@ describe('SavedSearchesBaseService', () => { }); }); - it('should emit updated searches with correct order if total of saved searches is more than 5', (done) => { + it('should emit updated searches with correct order if total of saved searches is more than limit (5)', (done) => { const moreSavedSearches = [...SAVED_SEARCHES_CONTENT, ...SAVED_SEARCHES_CONTENT, ...SAVED_SEARCHES_CONTENT]; service.mockFetch(moreSavedSearches); const newSearch = { name: 'new-search' } as SavedSearch; diff --git a/lib/content-services/src/lib/common/services/saved-searches-base.service.ts b/lib/content-services/src/lib/common/services/saved-searches-base.service.ts index f209d50c57..6c32ec47aa 100644 --- a/lib/content-services/src/lib/common/services/saved-searches-base.service.ts +++ b/lib/content-services/src/lib/common/services/saved-searches-base.service.ts @@ -27,6 +27,8 @@ import { AlfrescoApiService } from '../../services'; export abstract class SavedSearchesBaseService implements SavedSearchStrategy { private _nodesApi: NodesApi; + private static readonly SAVE_MODE_THRESHOLD = 5; + protected readonly _savedSearches$ = new ReplaySubject(1); readonly savedSearches$: Observable = this._savedSearches$.asObservable(); @@ -35,7 +37,7 @@ export abstract class SavedSearchesBaseService implements SavedSearchStrategy { return this._nodesApi; } - constructor( + protected constructor( protected readonly apiService: AlfrescoApiService, protected readonly authService: AuthenticationService ) {} @@ -52,17 +54,18 @@ export abstract class SavedSearchesBaseService implements SavedSearchStrategy { } saveSearch(newSaveSearch: Pick): Observable { + const limit = SavedSearchesBaseService.SAVE_MODE_THRESHOLD; return this.fetchAllSavedSearches().pipe( take(1), switchMap((savedSearches) => { let updatedSavedSearches: SavedSearch[] = []; - if (savedSearches.length < 5) { + if (savedSearches.length < limit) { updatedSavedSearches = [{ ...newSaveSearch, order: 0 }, ...savedSearches]; } else { - const firstFiveSearches = savedSearches.slice(0, 5); - const restOfSearches = savedSearches.slice(5); - updatedSavedSearches = [...firstFiveSearches, { ...newSaveSearch, order: 5 }, ...restOfSearches]; + const upToLimitSearches = savedSearches.slice(0, limit); + const restSearches = savedSearches.slice(limit); + updatedSavedSearches = [...upToLimitSearches, { ...newSaveSearch, order: limit }, ...restSearches]; } updatedSavedSearches = updatedSavedSearches.map((search, index) => ({ ...search, order: index }));