Skip to content

Commit f447ccd

Browse files
committed
Update response for create/update synonym
1 parent 1f8cb7f commit f447ccd

2 files changed

Lines changed: 14 additions & 4 deletions

File tree

src/Adaptors/Requests/CreateSynonymRuleAdaptor.php

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
use SilverStripe\Core\Injector\Injector;
77
use SilverStripe\Forager\Interfaces\Requests\CreateSynonymRuleAdaptor as PostSynonymRuleAdaptorInterface;
88
use SilverStripe\Forager\Service\Query\SynonymRule as SynonymRuleQuery;
9+
use SilverStripe\Forager\Service\Results\SynonymRule as SynonymRuleResult;
10+
use SilverStripe\ForagerBifrost\Processors\SynonymRuleProcessor;
911
use SilverStripe\ForagerBifrost\Service\Requests\CreateSynonymRule;
1012

1113
class CreateSynonymRuleAdaptor implements PostSynonymRuleAdaptorInterface
@@ -22,15 +24,18 @@ public function setClient(?Client $client): void
2224
$this->client = $client;
2325
}
2426

25-
public function process(int|string $synonymCollectionId, SynonymRuleQuery $synonymRule): string|int
27+
public function process(int|string $synonymCollectionId, SynonymRuleQuery $synonymRule): SynonymRuleResult
2628
{
2729
$request = Injector::inst()->create(CreateSynonymRule::class, $synonymCollectionId, $synonymRule);
2830

2931
// Should either be successful or throw an exception, which we'll let fly
3032
$body = $this->client->appSearch()->createSynonymSet($request)->asString();
3133
$body = json_decode($body, true);
3234

33-
return $body['id'];
35+
$synonymRuleResult = SynonymRuleResult::create($body['id']);
36+
SynonymRuleProcessor::applyStringToResult($synonymRuleResult, $body['synonyms']);
37+
38+
return $synonymRuleResult;
3439
}
3540

3641
}

src/Adaptors/Requests/UpdateSynonymRuleAdaptor.php

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
use SilverStripe\Core\Injector\Injector;
77
use SilverStripe\Forager\Interfaces\Requests\UpdateSynonymRuleAdaptor as PatchSynonymRuleAdaptorInterface;
88
use SilverStripe\Forager\Service\Query\SynonymRule as SynonymRuleQuery;
9+
use SilverStripe\Forager\Service\Results\SynonymRule as SynonymRuleResult;
10+
use SilverStripe\ForagerBifrost\Processors\SynonymRuleProcessor;
911
use SilverStripe\ForagerBifrost\Service\Requests\UpdateSynonymRule;
1012

1113
class UpdateSynonymRuleAdaptor implements PatchSynonymRuleAdaptorInterface
@@ -26,7 +28,7 @@ public function process(
2628
int|string $synonymCollectionId,
2729
int|string $synonymRuleId,
2830
SynonymRuleQuery $synonymRule
29-
): string|int {
31+
): SynonymRuleResult {
3032
$request = Injector::inst()->create(
3133
UpdateSynonymRule::class,
3234
$synonymCollectionId,
@@ -38,7 +40,10 @@ public function process(
3840
$body = $this->client->appSearch()->createSynonymSet($request)->asString();
3941
$body = json_decode($body, true);
4042

41-
return $body['id'];
43+
$synonymRuleResult = SynonymRuleResult::create($body['id']);
44+
SynonymRuleProcessor::applyStringToResult($synonymRuleResult, $body['synonyms']);
45+
46+
return $synonymRuleResult;
4247
}
4348

4449
}

0 commit comments

Comments
 (0)