This commit is contained in:
Dennis Eichhorn 2020-02-15 02:00:12 +01:00
parent 54c9395e6f
commit f979779e2b
2 changed files with 32 additions and 8 deletions

View File

@ -770,7 +770,7 @@
"settings_content": {
"name": "settings_content",
"type": "VARCHAR(250)",
"null": false
"null": true
},
"settings_module": {
"name": "settings_module",

View File

@ -81,10 +81,20 @@ final class ApiController extends Controller
*/
public function apiSettingsGet(RequestAbstract $request, ResponseAbstract $response, $data = null) : void
{
$id = $request->getData('id');
$group = $request->getData('group');
$account = $request->getData('account');
$response->set(
$request->getUri()->__toString(),
[
'response' => $this->app->appSettings->get((int) $request->getData('id')),
'response' => $this->app->appSettings->get(
$id !== null ? (int) $id : $id,
$request->getData('name'),
$request->getData('module'),
$group !== null ? (int) $group : $group,
$account !== null ? (int) $account : $account
),
]
);
}
@ -104,14 +114,28 @@ final class ApiController extends Controller
*/
public function apiSettingsSet(RequestAbstract $request, ResponseAbstract $response, $data = null) : void
{
$data = $request->getDataJson('settings');
$keys = \array_keys($data);
$dataSettings = $request->getDataJson('settings');
$this->updateModel($request, $this->app->appSettings->get($keys), $data, function() use($data) : void {
$this->app->appSettings->set($data, true);
}, 'settings');
foreach ($dataSettings as $data) {
$id = isset($data['id']) ? (int) $data['id'] : null;
$name = $data['name'] ?? null;
$content = $data['content'] ?? null;
$module = $data['module'] ?? null;
$group = isset($data['group']) ? (int) $data['group'] : null;
$account = isset($data['account']) ? (int) $data['account'] : null;
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Settigns', 'Settings successfully modified', $data);
$this->updateModel(
$request,
$this->app->appSettings->get($id, $name, $module, $group, $account),
$data,
function() use($id, $name, $content, $module, $group, $account) : void {
$this->app->appSettings->set([['id' => $id, 'name' => $name, 'content' => $content, 'module' => $module, 'group' => $group, 'account' => $account]], true);
},
'settings'
);
}
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Settigns', 'Settings successfully modified', $dataSettings);
}
/**