metadata get by key endpoint

This commit is contained in:
Yuri Kuznetsov
2024-03-20 11:42:11 +02:00
parent e6631ba1d1
commit 4d35bce189
2 changed files with 21 additions and 4 deletions
+13 -4
View File
@@ -29,8 +29,10 @@
namespace Espo\Controllers;
use Espo\Core\Api\Response;
use Espo\Core\Exceptions\Forbidden;
use Espo\Core\Api\Request;
use Espo\Core\Utils\Json;
use Espo\Core\Utils\Metadata as MetadataUtil;
use Espo\Entities\User as UserEntity;
use Espo\Tools\App\MetadataService as Service;
@@ -53,16 +55,21 @@ class Metadata
$this->user = $user;
}
public function getActionRead(): stdClass
public function getActionRead(Request $request): mixed
{
$key = $request->getQueryParam('key');
if (is_string($key)) {
return $this->service->getDataForFrontendByKey($key);
}
return $this->service->getDataForFrontend();
}
/**
* @return mixed
* @throws Forbidden
*/
public function getActionGet(Request $request)
public function getActionGet(Request $request, Response $response): void
{
if (!$this->user->isAdmin()) {
throw new Forbidden();
@@ -70,6 +77,8 @@ class Metadata
$key = $request->getQueryParam('key');
return $this->metadata->get($key, false);
$value = $this->metadata->get($key);
$response->writeBody(Json::encode($value));
}
}
@@ -31,6 +31,7 @@ namespace Espo\Tools\App;
use Espo\Core\Acl;
use Espo\Core\Utils\Metadata as MetadataUtil;
use Espo\Core\Utils\Util;
use Espo\Entities\User;
use Espo\Modules\Crm\Entities\Reminder;
use Espo\Tools\App\Metadata\AclDependencyProvider;
@@ -264,4 +265,11 @@ class MetadataService
}
}
}
public function getDataForFrontendByKey(?string $key): mixed
{
$data = $this->getDataForFrontend();
return Util::getValueByKey($data, $key);
}
}