Skip to content
This repository was archived by the owner on Dec 12, 2021. It is now read-only.

Commit b003777

Browse files
Merge pull request #4 from manavo/master
Update dependencies
2 parents 8337509 + a504352 commit b003777

File tree

5 files changed

+45
-61
lines changed

5 files changed

+45
-61
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ class Post extends Model implements TypesenseSearch
109109

110110
public function getCollectionSchema(): array {
111111
return [
112-
'name' => $this->getTable(),
112+
'name' => $this->searchableAs(),
113113
'fields' => [
114114
[
115115
'name' => 'title',

composer.json

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -34,18 +34,12 @@
3434
}
3535
},
3636
"require": {
37-
"php": "~7.2",
38-
"laravel/scout": "7.*|^8.0",
39-
"illuminate/bus": "^6.0|^7.0",
40-
"illuminate/contracts": "^6.0|^7.0",
41-
"illuminate/database": "^6.0|^7.0",
42-
"illuminate/pagination": "^6.0|^7.0",
43-
"illuminate/queue": "^6.0|^7.0",
44-
"illuminate/support": "^6.0|^7.0",
45-
"devloopsnet/typesens-php": "^2.0"
37+
"php": ">=7.4",
38+
"laravel/scout": "^8.0",
39+
"typesense/typesense-php": "^4.0"
4640
},
4741
"suggest": {
48-
"devloopsnet/typesens-php": "Required to use the Typesense php client."
42+
"typesense/typesense-php": "Required to use the Typesense php client."
4943
},
5044
"require-dev": {
5145
"phpunit/phpunit": "^8.0|^9.0",

src/Engines/TypesenseSearchEngine.php

Lines changed: 17 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
use Illuminate\Database\Eloquent\Model;
99
use Devloops\LaravelTypesense\Typesense;
1010
use GuzzleHttp\Exception\GuzzleException;
11-
use Devloops\Typesence\Exceptions\TypesenseClientError;
11+
use Typesense\Exceptions\TypesenseClientError;
1212

1313
/**
1414
* Class TypesenseSearchEngine
@@ -76,7 +76,7 @@ public function search(Builder $builder)
7676
[
7777
'q' => $builder->query,
7878
'query_by' => implode(',', $builder->model->typesenseQueryBy()),
79-
'fiter_by' => $this->filters($builder),
79+
'filter_by' => $this->filters($builder),
8080
'per_page' => $builder->limit,
8181
'page' => 1,
8282
]
@@ -90,14 +90,16 @@ public function search(Builder $builder)
9090
public function paginate(Builder $builder, $perPage, $page)
9191
{
9292
return $this->performSearch(
93-
$builder,
94-
[
95-
'q' => $builder->query,
96-
'query_by' => implode(',', $builder->model->typesenseQueryBy()),
97-
'fiter_by' => $this->filters($builder),
98-
'per_page' => $builder->limit,
99-
'page' => 1,
100-
]
93+
$builder,
94+
array_filter(
95+
[
96+
'q' => $builder->query,
97+
'query_by' => implode(',', $builder->model->typesenseQueryBy()),
98+
'filter_by' => $this->filters($builder),
99+
'per_page' => $perPage,
100+
'page' => $page,
101+
]
102+
)
101103
);
102104
}
103105

@@ -106,7 +108,7 @@ public function paginate(Builder $builder, $perPage, $page)
106108
* @param array $options
107109
*
108110
* @return array|mixed
109-
* @throws \Devloops\Typesence\Exceptions\TypesenseClientError
111+
* @throws \Typesense\Exceptions\TypesenseClientError
110112
* @throws \GuzzleHttp\Exception\GuzzleException
111113
*/
112114
protected function performSearch(Builder $builder, array $options = [])
@@ -129,15 +131,15 @@ protected function performSearch(Builder $builder, array $options = [])
129131
/**
130132
* @param \Laravel\Scout\Builder $builder
131133
*
132-
* @return array
134+
* @return string
133135
*/
134-
protected function filters(Builder $builder): array
136+
protected function filters(Builder $builder): string
135137
{
136138
return collect($builder->wheres)->map(
137139
static function ($value, $key) {
138140
return $key . ':=' . $value;
139141
}
140-
)->values()->all();
142+
)->values()->implode(' && ');
141143
}
142144

143145
/**
@@ -188,11 +190,7 @@ public function getTotalCount($results): int
188190
public function flush($model): void
189191
{
190192
$collection = $this->typesense->getCollectionIndex($model);
191-
try {
192-
$collection->delete();
193-
} catch (TypesenseClientError $e) {
194-
} catch (GuzzleException $e) {
195-
}
193+
$collection->delete();
196194
}
197195

198196
}

src/Typesense.php

Lines changed: 22 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,13 @@
11
<?php
22

3-
43
namespace Devloops\LaravelTypesense;
54

6-
7-
use Devloops\Typesence\Client;
8-
use Devloops\Typesence\Document;
9-
use Devloops\Typesence\Collection;
5+
use Typesense\Client;
6+
use Typesense\Document;
7+
use Typesense\Collection;
108
use GuzzleHttp\Exception\GuzzleException;
11-
use Devloops\Typesence\Exceptions\ObjectNotFound;
12-
use Devloops\Typesence\Exceptions\TypesenseClientError;
9+
use Typesense\Exceptions\ObjectNotFound;
10+
use Typesense\Exceptions\TypesenseClientError;
1311

1412
/**
1513
* Class Typesense
@@ -22,22 +20,22 @@ class Typesense
2220
{
2321

2422
/**
25-
* @var \Devloops\Typesence\Client
23+
* @var \Typesense\Client
2624
*/
2725
private $client;
2826

2927
/**
3028
* Typesense constructor.
3129
*
32-
* @param \Devloops\Typesence\Client $client
30+
* @param \Typesense\Client $client
3331
*/
3432
public function __construct(Client $client)
3533
{
3634
$this->client = $client;
3735
}
3836

3937
/**
40-
* @return \Devloops\Typesence\Client
38+
* @return \Typesense\Client
4139
*/
4240
public function getClient(): Client
4341
{
@@ -47,13 +45,13 @@ public function getClient(): Client
4745
/**
4846
* @param \Illuminate\Database\Eloquent\Model|\Devloops\LaravelTypesense\Interfaces\TypesenseSearch $model
4947
*
50-
* @return \Devloops\Typesence\Collection
51-
* @throws \Devloops\Typesence\Exceptions\TypesenseClientError
48+
* @return \Typesense\Collection
49+
* @throws \Typesense\Exceptions\TypesenseClientError
5250
* @throws \GuzzleHttp\Exception\GuzzleException
5351
*/
54-
private function createCollectionFromModel($model): Collection
52+
private function getOrCreateCollectionFromModel($model): Collection
5553
{
56-
$index = $this->client->getCollections()->{$model->getTable()};
54+
$index = $this->client->getCollections()->{$model->searchableAs()};
5755
try {
5856
$index->retrieve();
5957

@@ -64,28 +62,26 @@ private function createCollectionFromModel($model): Collection
6462
);
6563

6664
return $this->client->getCollections()->{$model->getTable()};
67-
} catch (TypesenseClientError $exception) {
68-
throw $exception;
6965
}
7066
}
7167

7268
/**
7369
* @param \Illuminate\Database\Eloquent\Model $model
7470
*
75-
* @return \Devloops\Typesence\Collection
76-
* @throws \Devloops\Typesence\Exceptions\TypesenseClientError
71+
* @return \Typesense\Collection
72+
* @throws \Typesense\Exceptions\TypesenseClientError
7773
* @throws \GuzzleHttp\Exception\GuzzleException
7874
*/
7975
public function getCollectionIndex($model): Collection
8076
{
81-
return $this->createCollectionFromModel($model);
77+
return $this->getOrCreateCollectionFromModel($model);
8278
}
8379

8480
/**
85-
* @param \Devloops\Typesence\Collection $collectionIndex
81+
* @param \Typesense\Collection $collectionIndex
8682
* @param $array
8783
*
88-
* @throws \Devloops\Typesence\Exceptions\TypesenseClientError
84+
* @throws \Typesense\Exceptions\TypesenseClientError
8985
* @throws \GuzzleHttp\Exception\GuzzleException
9086
*/
9187
public function upsertDocument(Collection $collectionIndex, $array): void
@@ -101,26 +97,22 @@ public function upsertDocument(Collection $collectionIndex, $array): void
10197
$collectionIndex->getDocuments()->create($array);
10298
} catch (ObjectNotFound $e) {
10399
$collectionIndex->getDocuments()->create($array);
104-
} catch (TypesenseClientError $e) {
105-
} catch (GuzzleException $e) {
106100
}
107101
}
108102

109103
/**
110-
* @param \Devloops\Typesence\Collection $collectionIndex
111-
* @param $modelId
104+
* @param \Typesense\Collection $collectionIndex
105+
* @param int $modelId
106+
* @throws GuzzleException
107+
* @throws TypesenseClientError
112108
*/
113109
public function deleteDocument(Collection $collectionIndex, $modelId): void
114110
{
115111
/**
116112
* @var $document Document
117113
*/
118114
$document = $collectionIndex->getDocuments()[(string)$modelId];
119-
try {
120-
$document->delete();
121-
} catch (TypesenseClientError $e) {
122-
} catch (GuzzleException $e) {
123-
}
115+
$document->delete();
124116
}
125117

126118
}

src/TypesenseServiceProvider.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
namespace Devloops\LaravelTypesense;
44

5-
use Devloops\Typesence\Client;
5+
use Typesense\Client;
66
use Laravel\Scout\EngineManager;
77
use Illuminate\Support\ServiceProvider;
88
use Devloops\LaravelTypesense\Engines\TypesenseSearchEngine;

0 commit comments

Comments
 (0)