diff options
author | Maxence Lange <maxence@artificial-owl.com> | 2018-01-20 02:23:11 +0300 |
---|---|---|
committer | Maxence Lange <maxence@artificial-owl.com> | 2018-01-20 02:23:11 +0300 |
commit | 3128758a9172ea9e26dfd257504ab2ea86e10d70 (patch) | |
tree | b4a1a0d2e9f83b80ded614661c7c48c2ade9355d | |
parent | 17927a50d8db7cfb7d4e9c571bda60402a1cc086 (diff) |
display version in searchresult
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
-rw-r--r-- | lib/Controller/ApiController.php | 21 | ||||
-rw-r--r-- | lib/IFullTextSearchPlatform.php | 9 | ||||
-rw-r--r-- | lib/IFullTextSearchProvider.php | 8 | ||||
-rw-r--r-- | lib/Model/SearchResult.php | 30 | ||||
-rw-r--r-- | lib/Service/SearchService.php | 1 |
5 files changed, 63 insertions, 6 deletions
diff --git a/lib/Controller/ApiController.php b/lib/Controller/ApiController.php index c123aff..e5a2ca5 100644 --- a/lib/Controller/ApiController.php +++ b/lib/Controller/ApiController.php @@ -29,6 +29,7 @@ namespace OCA\FullTextSearch\Controller; use Exception; use OCA\FullTextSearch\AppInfo\Application; use OCA\FullTextSearch\Model\SearchRequest; +use OCA\FullTextSearch\Service\ConfigService; use OCA\FullTextSearch\Service\MiscService; use OCA\FullTextSearch\Service\SearchService; use OCP\AppFramework\Controller; @@ -41,6 +42,9 @@ class ApiController extends Controller { /** @var SearchService */ private $searchService; + /** @var ConfigService */ + private $configService; + /** @var MiscService */ private $miscService; @@ -49,14 +53,17 @@ class ApiController extends Controller { * NavigationController constructor. * * @param IRequest $request + * @param ConfigService $configService * @param SearchService $searchService * @param MiscService $miscService */ public function __construct( - IRequest $request, SearchService $searchService, MiscService $miscService + IRequest $request, ConfigService $configService, SearchService $searchService, + MiscService $miscService ) { parent::__construct(Application::APP_NAME, $request); $this->searchService = $searchService; + $this->configService = $configService; $this->miscService = $miscService; } @@ -98,11 +105,19 @@ class ApiController extends Controller { $result = $this->searchService->search(null, $request); return $this->success( - ['request' => $request, 'result' => $result] + [ + 'request' => $request, + 'result' => $result, + 'version' => $this->configService->getAppValue('installed_version') + ] ); } catch (Exception $e) { return $this->fail( - ['request' => $request, 'error' => $e->getMessage()] + [ + 'request' => $request, + 'error' => $e->getMessage(), + 'version' => $this->configService->getAppValue('installed_version') + ] ); } } diff --git a/lib/IFullTextSearchPlatform.php b/lib/IFullTextSearchPlatform.php index a9cff2e..1b13dc2 100644 --- a/lib/IFullTextSearchPlatform.php +++ b/lib/IFullTextSearchPlatform.php @@ -44,10 +44,16 @@ interface IFullTextSearchPlatform { public function getId(); + /** + * @return string + */ public function getName(); - public function getClient(); + /** + * @return string + */ + public function getVersion(); /** @@ -55,6 +61,7 @@ interface IFullTextSearchPlatform { */ public function setRunner(Runner $runner); + /** * Load the search platform */ diff --git a/lib/IFullTextSearchProvider.php b/lib/IFullTextSearchProvider.php index 1f67e2c..add9c40 100644 --- a/lib/IFullTextSearchProvider.php +++ b/lib/IFullTextSearchProvider.php @@ -62,6 +62,14 @@ interface IFullTextSearchProvider { /** + * return a display version of the Provider + * + * @return string + */ + public function getVersion(); + + + /** * @return string */ public function getOptionsTemplate(); diff --git a/lib/Model/SearchResult.php b/lib/Model/SearchResult.php index c070187..435823b 100644 --- a/lib/Model/SearchResult.php +++ b/lib/Model/SearchResult.php @@ -26,6 +26,7 @@ namespace OCA\FullTextSearch\Model; +use OCA\FullTextSearch\IFullTextSearchPlatform; use OCA\FullTextSearch\IFullTextSearchProvider; class SearchResult implements \JsonSerializable { @@ -39,6 +40,9 @@ class SearchResult implements \JsonSerializable { /** @var IFullTextSearchProvider */ private $provider; + /** @var IFullTextSearchPlatform */ + private $platform; + /** @var int */ private $total; @@ -127,6 +131,21 @@ class SearchResult implements \JsonSerializable { /** + * @return IFullTextSearchPlatform + */ + public function getPlatform() { + return $this->platform; + } + + /** + * @param IFullTextSearchPlatform $platform + */ + public function setPlatform($platform) { + $this->platform = $platform; + } + + + /** * @return int */ public function getTotal() { @@ -207,11 +226,18 @@ class SearchResult implements \JsonSerializable { public function jsonSerialize() { $provider = $this->getProvider(); + $platform = $this->getPlatform(); return [ 'provider' => [ - 'id' => $provider->getId(), - 'name' => $provider->getName() + 'id' => $provider->getId(), + 'name' => $provider->getName(), + 'version' => $provider->getVersion() + ], + 'platform' => [ + 'id' => $platform->getId(), + 'name' => $platform->getName(), + 'version' => $platform->getVersion() ], 'documents' => $this->getDocuments(), 'meta' => diff --git a/lib/Service/SearchService.php b/lib/Service/SearchService.php index c249436..b86f0f7 100644 --- a/lib/Service/SearchService.php +++ b/lib/Service/SearchService.php @@ -124,6 +124,7 @@ class SearchService { $result = $this->searchFromProviders($platform, $providers, $access, $request); foreach ($result as $searchResult) { + $searchResult->setPlatform($platform); $searchResult->setRequest($request); } |