feat(admin): независимые именованные UTM-наборы
This commit is contained in:
1 parent
941a4f01aa
commit
94619432a3
16 files changed
+220
-114
No files matched your search
@@ -1,7 +1,7 @@
|
||||
<?php
|
||||
declare(strict_types=1);
|
||||
require dirname(__DIR__).'/bootstrap.php';
|
||||
use PrelandAdmin\{Auth,Store,Config,Transport,Jobs,Sets,Problem,LinkBuilder,Notes,Copy};
|
||||
use PrelandAdmin\{Auth,Store,Config,Transport,Jobs,Sets,Problem,LinkBuilder,Notes,Copy,UtmPresets};
|
||||
header('X-Content-Type-Options: nosniff');header('X-Frame-Options: DENY');header('Referrer-Policy: same-origin');header('Cache-Control: no-store');
|
||||
$path=parse_url($_SERVER['REQUEST_URI']??'/',PHP_URL_PATH);
|
||||
if(!str_starts_with((string)$path,'/api/')) {require dirname(__DIR__).'/views/dashboard.php';exit;}
|
||||
@@ -69,6 +69,13 @@ try {
|
||||
$target=$store->target((string)($_GET['target']??''));$read=(new Transport($store,$target))->readConfig();$readAt=gmdate(DATE_ATOM);
|
||||
reply(['config'=>$read['config'],'version'=>$read['version'],'read_at'=>$readAt,'warnings'=>[],'sets'=>$sets->list($target,$read['config'])]);
|
||||
}
|
||||
if($path==='/api/utm-presets'){
|
||||
$presets=new UtmPresets($store);
|
||||
if($method==='GET'){if($_GET)throw new Problem('Список наборов не привязан к доменам.');reply(['presets'=>$presets->all()]);}
|
||||
if($method==='POST')reply(['preset'=>$presets->create($data)],201);
|
||||
if($method==='DELETE'){if(count($data)!==1||!is_string($data['id']??null))throw new Problem('Передайте только ID набора.');$presets->delete($data['id']);reply([]);}
|
||||
throw new Problem('Метод наборов не поддерживается.',405);
|
||||
}
|
||||
if($path==='/api/copy'){
|
||||
if($method!=='POST')throw new Problem('Метод копирования не поддерживается.',405);
|
||||
reply(['job'=>$enqueue(fn()=>(new Copy($store))->create($data),[])],202);
|
||||
|
||||
Reference in new issue
Block a user