| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- <?php
- namespace Webkul\Marketing\Services;
- use Illuminate\Http\Request;
- use Webkul\Marketing\Contracts\SearchLog;
- use Webkul\Marketing\Repositories\SearchLogRepository;
- class SearchLogService
- {
- public function __construct(
- protected SearchLogRepository $searchLogRepository
- ) {}
- public function recordWhenSuggested(
- mixed $suggest,
- string $searchText,
- string $queryText,
- int $results,
- ?Request $request = null
- ): ?SearchLog {
- if (
- ! filter_var($suggest, FILTER_VALIDATE_BOOLEAN)
- || trim($searchText) === ''
- ) {
- return null;
- }
- return $this->record($searchText, $queryText, $results, $request);
- }
- public function record(
- string $searchText,
- string $queryText,
- int $results,
- ?Request $request = null
- ): SearchLog {
- $request ??= request();
- return $this->searchLogRepository->create([
- 'search_text' => mb_substr(trim($searchText), 0, 512),
- 'query_text' => mb_substr(trim($queryText), 0, 512),
- 'results' => max(0, $results),
- 'ip_address' => $request->ip(),
- ]);
- }
- }
|