20 lines
1.3 KiB
PHP

<?php
require "db.php";
$action=$_GET['action']??'';$b=body();
if($action==="create"){
$owner=(int)($b["owner_id"]??0);$title=trim($b["title"]??"");
if($owner<1||$title==="") out(false,"invalid data",[],400);
$st=db()->prepare("INSERT INTO sessions (owner_id,title) VALUES (?,?)");$st->execute([$owner,$title]);
out(true,"created",["session_id"=>db()->lastInsertId()],201);
}
if($action==="list"){
$owner=isset($_GET["owner_id"])?(int)$_GET["owner_id"]:null;$q=trim($_GET["q"]??"");$sort=$_GET["sort"]??"created_at_desc";
$allowed=["created_at_asc"=>"created_at ASC","created_at_desc"=>"created_at DESC","title_asc"=>"title ASC","title_desc"=>"title DESC"];
$order=$allowed[$sort]??$allowed["created_at_desc"];
$sql="SELECT s.session_id,s.title,s.created_at,u.username FROM sessions s JOIN users u ON u.user_id=s.owner_id WHERE 1=1";$p=[];
if($owner){$sql.=" AND s.owner_id=?";$p[]=$owner;}if($q!==""){$sql.=" AND s.title LIKE ?";$p[]="%$q%";}$sql.=" ORDER BY $order";
$st=db()->prepare($sql);$st->execute($p);out(true,"ok",["items"=>$st->fetchAll()]);
}
if($action==="delete"){ $id=(int)($_GET["id"]??0);$st=db()->prepare("DELETE FROM sessions WHERE session_id=?");$st->execute([$id]);
out(true,"deleted",["count"=>$st->rowCount()]);}
out(false,"unknown action",[],404);