Files

81 lines
4.7 KiB
PHP

<?php
declare(strict_types=1);
namespace OCA\ChdAdmin\Controller;
use OCA\ChdAdmin\AppInfo\Application;
use OCP\AppFramework\Controller;
use OCP\AppFramework\Http\TemplateResponse;
use OCP\IRequest;
use OCP\IURLGenerator;
class PageController extends Controller {
public function __construct(
IRequest $request,
private IURLGenerator $urlGenerator,
) {
parent::__construct(Application::APP_ID, $request);
}
/**
* @AdminRequired
* @NoCSRFRequired
*/
public function index(): TemplateResponse {
$gatewayProxyTemplate = '';
try {
$gatewayProxyTemplate = $this->urlGenerator->linkToRoute('qortal_integration.gateway.proxy', ['path' => '__PATH__']);
} catch (\Throwable $e) {
$gatewayProxyTemplate = '/apps/qortal_integration/gateway/__PATH__';
}
return new TemplateResponse(
Application::APP_ID,
'admin',
[
'title' => 'CHD Admin',
'overviewUrl' => $this->urlGenerator->linkToRoute('chd_admin.api.overview'),
'connectorRoutingConfigUrl' => $this->urlGenerator->linkToRoute('chd_admin.api.connectorRoutingConfig'),
'saveConnectorRoutingConfigUrl' => $this->urlGenerator->linkToRoute('chd_admin.api.saveConnectorRoutingConfig'),
'saveConnectorAdminTokenUrl' => $this->urlGenerator->linkToRoute('chd_admin.api.saveConnectorAdminToken'),
'saveBillingAutoFulfillmentUrl' => $this->urlGenerator->linkToRoute('chd_admin.api.saveBillingAutoFulfillment'),
'runBillingAutoFulfillmentUrl' => $this->urlGenerator->linkToRoute('chd_admin.api.runBillingAutoFulfillment'),
'backfillBillingAutoFulfillmentUrl' => $this->urlGenerator->linkToRoute('chd_admin.api.backfillBillingAutoFulfillment'),
'connectorSummaryUrl' => $this->urlGenerator->linkToRoute('chd_admin.api.connectorSummary'),
'connectorInstancesUrl' => $this->urlGenerator->linkToRoute('chd_admin.api.connectorInstances'),
'connectorInstanceDetailUrl' => $this->urlGenerator->linkToRoute('chd_admin.api.connectorInstanceDetail'),
'paymenterClientsUrl' => $this->urlGenerator->linkToRoute('chd_admin.api.paymenterClients'),
'paymenterOrdersUrl' => $this->urlGenerator->linkToRoute('chd_admin.api.paymenterOrders'),
'paymenterSnapshotUrl' => $this->urlGenerator->linkToRoute('chd_admin.api.paymenterSnapshot'),
'paymenterSourceSyncUrl' => $this->urlGenerator->linkToRoute('chd_admin.api.paymenterSourceSync'),
'paymenterBackupsUrl' => $this->urlGenerator->linkToRoute('chd_admin.api.paymenterBackups'),
'paymenterInvoicesUrl' => $this->urlGenerator->linkToRoute('chd_admin.api.paymenterInvoices'),
'paymenterInvoiceItemsUrl' => $this->urlGenerator->linkToRoute('chd_admin.api.paymenterInvoiceItems'),
'saveConnectorInstanceTargetUrl' => $this->urlGenerator->linkToRoute('chd_admin.api.saveConnectorInstanceTarget'),
'saveConnectorInstanceMetadataUrl' => $this->urlGenerator->linkToRoute('chd_admin.api.saveConnectorInstanceMetadata'),
'saveConnectorInstanceStateUrl' => $this->urlGenerator->linkToRoute('chd_admin.api.saveConnectorInstanceState'),
'instanceOperationsUrl' => $this->urlGenerator->linkToRoute('chd_admin.api.instanceOperations'),
'saveInstanceOperationUrl' => $this->urlGenerator->linkToRoute('chd_admin.api.saveInstanceOperation'),
'updateInstanceOperationStatusUrl' => $this->urlGenerator->linkToRoute('chd_admin.api.updateInstanceOperationStatus'),
'introGrantTaskActionUrl' => $this->urlGenerator->linkToRoute('chd_admin.api.introGrantTaskAction'),
'connectorCatalogConfigUrl' => $this->urlGenerator->linkToRoute('chd_admin.api.connectorCatalogConfig'),
'saveConnectorCatalogConfigUrl' => $this->urlGenerator->linkToRoute('chd_admin.api.saveConnectorCatalogConfig'),
'announcementsUrl' => $this->urlGenerator->linkToRoute('chd_admin.api.announcements'),
'announcementTargetUrl' => $this->urlGenerator->linkToRoute('chd_admin.api.announcementTarget'),
'saveAnnouncementsUrl' => $this->urlGenerator->linkToRoute('chd_admin.api.saveAnnouncements'),
'publishAnnouncementUrl' => $this->urlGenerator->linkToRoute('chd_admin.api.publishAnnouncement'),
'qortalAdminUrl' => '/settings/admin/qortal_integration',
'accountDashboardUrl' => '/apps/qortal_integration/account',
'qappsUrl' => '/apps/qortal_integration/qapps',
'qappsRequestUrl' => $this->urlGenerator->linkToRoute('qortal_integration.api.qappsRequest'),
'qappsApproveUrl' => $this->urlGenerator->linkToRoute('qortal_integration.api.qappsApprove'),
'qappsUnlockUrl' => $this->urlGenerator->linkToRoute('qortal_integration.api.qappsUnlock'),
'qappsUnlockStatusUrl' => $this->urlGenerator->linkToRoute('qortal_integration.api.qappsUnlockStatus'),
'gatewayProxyTemplate' => $gatewayProxyTemplate,
'chdcQappAddress' => 'qortal://CHDC',
],
TemplateResponse::RENDER_AS_USER
);
}
}