ver. 0.317: klucz API — przycisk generowania + fix zapisu

- fix: api_key brakowało w whiteliście saveSettings() — wartość tracona przy zapisie
- feat: przycisk "Generuj" losowy 32-znakowy klucz, usunięto "(ordersPRO)" z nazwy
- fix: api.php routing przeniesiony przed global settings + Throwable error handling
- fix: ApiRouter catch Throwable zamiast Exception

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-23 23:30:41 +01:00
parent 3b627e9c73
commit 0fb09f2bae
6 changed files with 69 additions and 12 deletions

45
api.php
View File

@@ -47,6 +47,43 @@ if ( !$isApiRequest )
}
}
// --- API routing (ordersPRO) ---
if ( $isApiRequest )
{
if ( !headers_sent() )
header( 'Content-Type: application/json; charset=utf-8' );
try
{
$mdb = new medoo( [
'database_type' => 'mysql',
'database_name' => $database[ 'name' ],
'server' => $database[ 'host' ],
'username' => $database[ 'user' ],
'password' => $database[ 'password' ],
'charset' => 'utf8'
] );
$settingsRepo = new \Domain\Settings\SettingsRepository( $mdb );
$router = new \api\ApiRouter( $mdb, $settingsRepo );
$router->handle();
}
catch ( \Throwable $e )
{
if ( !headers_sent() )
header( 'Content-Type: application/json; charset=utf-8' );
http_response_code( 500 );
echo json_encode( [
'status' => 'error',
'code' => 'INTERNAL_ERROR',
'message' => 'Internal server error'
], JSON_UNESCAPED_UNICODE );
}
exit;
}
$mdb = new medoo( [
'database_type' => 'mysql',
'database_name' => $database[ 'name' ],
@@ -59,14 +96,6 @@ $mdb = new medoo( [
$settingsRepo = new \Domain\Settings\SettingsRepository( $mdb );
$settings = $settingsRepo->allSettings();
// --- API routing (ordersPRO) ---
if ( $isApiRequest )
{
$router = new \api\ApiRouter( $mdb, $settingsRepo );
$router->handle();
exit;
}
// --- Ekomi CSV export ---
if ( \Shared\Helpers\Helpers::get( 'ekomi_csv' ) )
{