summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorJohn Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>2020-08-03 11:38:29 +0200
committerJohn Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>2020-08-03 12:05:50 +0200
commitfd91fabc64ab6aa19e12e2d5202615d63b8cdb6c (patch)
tree9f6f5aeaf5ad0400100420e1586b968f36ce08c1 /lib
parentc17a3eaeb96d3e5c2f77becf56e6588f24187a69 (diff)
Allow to get direct contact route
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
Diffstat (limited to 'lib')
-rw-r--r--lib/Controller/ContactsController.php62
-rw-r--r--lib/Controller/PageController.php23
2 files changed, 72 insertions, 13 deletions
diff --git a/lib/Controller/ContactsController.php b/lib/Controller/ContactsController.php
new file mode 100644
index 00000000..24361096
--- /dev/null
+++ b/lib/Controller/ContactsController.php
@@ -0,0 +1,62 @@
+<?php
+/**
+ * @copyright Copyright (c) 2020 John Molakvoæ <skjnldsv@protonmail.com>
+ *
+ * @author John Molakvoæ <skjnldsv@protonmail.com>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+namespace OCA\Contacts\Controller;
+
+use OCA\Contacts\AppInfo\Application;
+use OCP\AppFramework\Controller;
+use OCP\AppFramework\Http\RedirectResponse;
+use OCP\IL10N;
+use OCP\IRequest;
+use OCP\IURLGenerator;
+
+class ContactsController extends Controller {
+
+ /** @var IL10N */
+ private $l10n;
+
+ /** @var IURLGenerator */
+ private $urlGenerator;
+
+ public function __construct(IRequest $request,
+ IL10N $l10n,
+ IURLGenerator $urlGenerator) {
+ parent::__construct(Application::APP_ID, $request);
+
+ $this->l10n = $l10n;
+ $this->urlGenerator = $urlGenerator;
+ }
+
+
+ /**
+ * @NoAdminRequired
+ * @NoCSRFRequired
+ *
+ * Open and find direct contact
+ * @param string $uuid
+ */
+ public function direct(string $contact): RedirectResponse {
+ $url = $this->urlGenerator->getAbsoluteURL('/apps/contacts/' . $this->l10n->t('All contacts') . '/' . $contact);
+ return new RedirectResponse($url);
+ }
+}
diff --git a/lib/Controller/PageController.php b/lib/Controller/PageController.php
index d40b74ce..e94510cd 100644
--- a/lib/Controller/PageController.php
+++ b/lib/Controller/PageController.php
@@ -23,6 +23,7 @@
namespace OCA\Contacts\Controller;
+use OCA\Contacts\AppInfo\Application;
use OCA\Contacts\Service\SocialApiService;
use OCP\AppFramework\Controller;
use OCP\AppFramework\Http\TemplateResponse;
@@ -33,8 +34,6 @@ use OCP\L10N\IFactory;
use OCP\Util;
class PageController extends Controller {
- protected $appName;
-
/** @var IConfig */
private $config;
@@ -47,15 +46,13 @@ class PageController extends Controller {
/** @var SocialApiService */
private $socialApiService;
- public function __construct(string $appName,
- IRequest $request,
+ public function __construct(IRequest $request,
IConfig $config,
IInitialStateService $initialStateService,
IFactory $languageFactory,
SocialApiService $socialApiService) {
- parent::__construct($appName, $request);
+ parent::__construct(Application::APP_ID, $request);
- $this->appName = $appName;
$this->config = $config;
$this->initialStateService = $initialStateService;
$this->languageFactory = $languageFactory;
@@ -70,16 +67,16 @@ class PageController extends Controller {
*/
public function index(): TemplateResponse {
$locales = $this->languageFactory->findAvailableLocales();
- $defaultProfile = $this->config->getAppValue($this->appName, 'defaultProfile', 'HOME');
+ $defaultProfile = $this->config->getAppValue(Application::APP_ID, 'defaultProfile', 'HOME');
$supportedNetworks = $this->socialApiService->getSupportedNetworks();
- $this->initialStateService->provideInitialState($this->appName, 'locales', $locales);
- $this->initialStateService->provideInitialState($this->appName, 'defaultProfile', $defaultProfile);
- $this->initialStateService->provideInitialState($this->appName, 'supportedNetworks', $supportedNetworks);
+ $this->initialStateService->provideInitialState(Application::APP_ID, 'locales', $locales);
+ $this->initialStateService->provideInitialState(Application::APP_ID, 'defaultProfile', $defaultProfile);
+ $this->initialStateService->provideInitialState(Application::APP_ID, 'supportedNetworks', $supportedNetworks);
- Util::addScript($this->appName, 'contacts');
- Util::addStyle($this->appName, 'contacts');
+ Util::addScript(Application::APP_ID, 'contacts');
+ Util::addStyle(Application::APP_ID, 'contacts');
- return new TemplateResponse($this->appName, 'main');
+ return new TemplateResponse(Application::APP_ID, 'main');
}
}