// Copyright (c) 2023 Sourcefuse Technologies // // This software is released under the MIT License. // https://opensource.org/licenses/MIT import {Getter, Model} from '@loopback/repository'; import {IAuthUserWithPermissions} from '@sourceloop/core'; import {SearchFilter} from '..'; import {SearchQuery} from '../models'; import {SearchFunctionType, SearchServiceConfig} from '../types'; export interface SearchControllerBase { readonly searchFn: SearchFunctionType; readonly config: SearchServiceConfig; readonly filter: SearchFilter; /** * Implementation of the endpoint `GET /search`. * @param query search query */ search( query: SearchQuery, saveInRecents: boolean, getUser: Getter, ): Promise; } export interface SearchControllerCtor { new ( config: SearchServiceConfig, searchFn: SearchFunctionType, filter: SearchFilter, ): SearchControllerBase; }