Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/fulltextsearch.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/Controller/ApiController.php21
-rw-r--r--lib/IFullTextSearchPlatform.php9
-rw-r--r--lib/IFullTextSearchProvider.php8
-rw-r--r--lib/Model/SearchResult.php30
-rw-r--r--lib/Service/SearchService.php1
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);
}