Skip to content

Commit 34cb40c

Browse files
committed
[ACS-9166]: introduces variable for search save mode threshold
1 parent 53d3076 commit 34cb40c

File tree

2 files changed

+10
-7
lines changed

2 files changed

+10
-7
lines changed

lib/content-services/src/lib/common/services/saved-searches-base.service.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ describe('SavedSearchesBaseService', () => {
5151
service.init();
5252
});
5353

54-
it('should emit updated searches with correct order if total of saved searches is less than 5', (done) => {
54+
it('should emit updated searches with correct order if total of saved searches is less than limit (5)', (done) => {
5555
service.mockFetch(SAVED_SEARCHES_CONTENT);
5656
const newSearch = { name: 'new-search' } as SavedSearch;
5757
service.saveSearch(newSearch).subscribe(() => {
@@ -68,7 +68,7 @@ describe('SavedSearchesBaseService', () => {
6868
});
6969
});
7070

71-
it('should emit updated searches with correct order if total of saved searches is more than 5', (done) => {
71+
it('should emit updated searches with correct order if total of saved searches is more than limit (5)', (done) => {
7272
const moreSavedSearches = [...SAVED_SEARCHES_CONTENT, ...SAVED_SEARCHES_CONTENT, ...SAVED_SEARCHES_CONTENT];
7373
service.mockFetch(moreSavedSearches);
7474
const newSearch = { name: 'new-search' } as SavedSearch;

lib/content-services/src/lib/common/services/saved-searches-base.service.ts

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ import { AlfrescoApiService } from '../../services';
2727
export abstract class SavedSearchesBaseService implements SavedSearchStrategy {
2828
private _nodesApi: NodesApi;
2929

30+
private static readonly SAVE_MODE_THRESHOLD = 5;
31+
3032
protected readonly _savedSearches$ = new ReplaySubject<SavedSearch[]>(1);
3133
readonly savedSearches$: Observable<SavedSearch[]> = this._savedSearches$.asObservable();
3234

@@ -35,7 +37,7 @@ export abstract class SavedSearchesBaseService implements SavedSearchStrategy {
3537
return this._nodesApi;
3638
}
3739

38-
constructor(
40+
protected constructor(
3941
protected readonly apiService: AlfrescoApiService,
4042
protected readonly authService: AuthenticationService
4143
) {}
@@ -52,17 +54,18 @@ export abstract class SavedSearchesBaseService implements SavedSearchStrategy {
5254
}
5355

5456
saveSearch(newSaveSearch: Pick<SavedSearch, 'name' | 'description' | 'encodedUrl'>): Observable<NodeEntry> {
57+
const limit = SavedSearchesBaseService.SAVE_MODE_THRESHOLD;
5558
return this.fetchAllSavedSearches().pipe(
5659
take(1),
5760
switchMap((savedSearches) => {
5861
let updatedSavedSearches: SavedSearch[] = [];
5962

60-
if (savedSearches.length < 5) {
63+
if (savedSearches.length < limit) {
6164
updatedSavedSearches = [{ ...newSaveSearch, order: 0 }, ...savedSearches];
6265
} else {
63-
const firstFiveSearches = savedSearches.slice(0, 5);
64-
const restOfSearches = savedSearches.slice(5);
65-
updatedSavedSearches = [...firstFiveSearches, { ...newSaveSearch, order: 5 }, ...restOfSearches];
66+
const upToLimitSearches = savedSearches.slice(0, limit);
67+
const restSearches = savedSearches.slice(limit);
68+
updatedSavedSearches = [...upToLimitSearches, { ...newSaveSearch, order: limit }, ...restSearches];
6669
}
6770

6871
updatedSavedSearches = updatedSavedSearches.map((search, index) => ({ ...search, order: index }));

0 commit comments

Comments
 (0)