//
// SPDX-License-Identifier: AGPL-3.0
-export class SearchQueriesService {
+import { SearchBarAdvanceFormData } from '~/models/search-bar';
+
+export class SearchService {
private recentQueries: string[] = this.getRecentQueries();
+ private savedQueries: SearchBarAdvanceFormData[] = this.getSavedQueries();
saveRecentQuery(query: string) {
- if (this.recentQueries.length >= 5) {
+ if (this.recentQueries.length >= MAX_NUMBER_OF_RECENT_QUERIES) {
this.recentQueries.shift();
this.recentQueries.push(query);
} else {
getRecentQueries() {
return JSON.parse(localStorage.getItem('recentQueries') || '[]') as string[];
}
-}
\ No newline at end of file
+
+ saveQuery(data: SearchBarAdvanceFormData) {
+ this.savedQueries.push({
+ type: data.type,
+ cluster: data.cluster,
+ project: data.project,
+ inTrash: data.inTrash,
+ dateFrom: data.dateFrom,
+ dateTo: data.dateTo,
+ saveQuery: data.saveQuery,
+ searchQuery: data.searchQuery
+ });
+ localStorage.setItem('savedQueries', JSON.stringify(this.savedQueries));
+ }
+
+ getSavedQueries() {
+ return JSON.parse(localStorage.getItem('savedQueries') || '[]') as SearchBarAdvanceFormData[];
+ }
+
+ deleteSavedQuery(id: number) {
+ this.savedQueries.splice(id, 1);
+ localStorage.setItem('savedQueries', JSON.stringify(this.savedQueries));
+ }
+}
+
+const MAX_NUMBER_OF_RECENT_QUERIES = 5;
\ No newline at end of file