|
Server : LiteSpeed System : Linux terra.hostitbro.com 5.14.0-611.54.3.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Thu May 7 16:31:24 EDT 2026 x86_64 User : outerorb ( 1091) PHP Version : 8.1.34 Disable Function : mail Directory : /home2/outerorb/assetradar.outerorbittech.com/api/ | |
|
Path: /home2/outerorb/assetradar.outerorbittech.com/api/tickets.php
Size: 1.65 KB
Permissions: 0666
<?php
// api/tickets.php - create ticket (POST) or list (GET)
require_once __DIR__ . '/../config.php';
header('Content-Type: application/json');
$token = '';
$headers = getallheaders();
if (isset($headers['Authorization'])) {
$token = trim(str_replace('Bearer', '', $headers['Authorization']));
} elseif (isset($_GET['token'])) $token = $_GET['token'];
if (!$token) { echo json_encode(['error'=>'no_token']); exit; }
$stmt = $mysqli->prepare('SELECT id,name,role_slug FROM users WHERE api_token=? LIMIT 1');
$stmt->bind_param('s', $token);
$stmt->execute();
$user = $stmt->get_result()->fetch_assoc();
if (!$user) { echo json_encode(['error'=>'invalid_token']); exit; }
if ($_SERVER['REQUEST_METHOD'] === 'GET') {
$res = $mysqli->query('SELECT * FROM tickets WHERE user_id=' . (int)$user['id']);
$out = [];
while($r = $res->fetch_assoc()) $out[] = $r;
echo json_encode(['tickets'=>$out]);
exit;
}
$data = json_decode(file_get_contents('php://input'), true);
if (!$data) { echo json_encode(['error'=>'invalid']); exit; }
$item_id = (int)$data['item_id'];
$issue_type = substr($data['issue_type'] ?? 'Other',0,200);
$desc = $data['description'] ?? '';
$stmt = $mysqli->prepare('INSERT INTO tickets (item_id,user_id,item_name,issue_type,description,status,created_at) VALUES (?,?,?,?,?,"Pending",NOW())');
$item = $mysqli->query('SELECT item_name FROM items WHERE id=' . $item_id)->fetch_assoc();
$item_name = $item ? $item['item_name'] : '';
$stmt->bind_param('iisss', $item_id, $user['id'], $item_name, $issue_type, $desc);
if ($stmt->execute()) {
echo json_encode(['ok'=>true,'ticket_id'=>$stmt->insert_id]);
} else echo json_encode(['error'=>'db']);
?>