{ "info": { "name": "tg-live-game", "description": "TG Live Game Backend API Collection", "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" }, "variable": [ { "key": "baseUrl", "value": "http://localhost:8787", "type": "string" }, { "key": "accessToken", "value": "", "type": "string" }, { "key": "refreshToken", "value": "", "type": "string" } ], "auth": { "type": "bearer", "bearer": [ { "key": "token", "value": "{{accessToken}}", "type": "string" } ] }, "item": [ { "name": "tg-live-game-hono", "item": [ { "name": "auth", "item": [ { "name": "register", "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"username\": \"testuser\",\n \"password\": \"test123456\",\n \"email\": \"test@example.com\"\n}" }, "url": { "raw": "{{baseUrl}}/api/auth/register", "host": ["{{baseUrl}}"], "path": ["api", "auth", "register"] } } }, { "name": "login", "event": [ { "listen": "test", "script": { "exec": [ "var jsonData = pm.response.json();", "if (jsonData.code === 200 && jsonData.data) {", " pm.collectionVariables.set('accessToken', jsonData.data.accessToken);", " pm.collectionVariables.set('refreshToken', jsonData.data.refreshToken);", "}" ], "type": "text/javascript" } } ], "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"username\": \"admin\",\n \"password\": \"admin123\"\n}" }, "url": { "raw": "{{baseUrl}}/api/auth/login", "host": ["{{baseUrl}}"], "path": ["api", "auth", "login"] } } }, { "name": "refresh", "event": [ { "listen": "test", "script": { "exec": [ "var jsonData = pm.response.json();", "if (jsonData.code === 200 && jsonData.data) {", " pm.collectionVariables.set('accessToken', jsonData.data.accessToken);", " pm.collectionVariables.set('refreshToken', jsonData.data.refreshToken);", "}" ], "type": "text/javascript" } } ], "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"refreshToken\": \"{{refreshToken}}\"\n}" }, "url": { "raw": "{{baseUrl}}/api/auth/refresh", "host": ["{{baseUrl}}"], "path": ["api", "auth", "refresh"] } } }, { "name": "me", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/auth/me", "host": ["{{baseUrl}}"], "path": ["api", "auth", "me"] } } }, { "name": "change-password", "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"oldPassword\": \"admin123\",\n \"newPassword\": \"newpassword123\"\n}" }, "url": { "raw": "{{baseUrl}}/api/auth/change-password", "host": ["{{baseUrl}}"], "path": ["api", "auth", "change-password"] } } }, { "name": "logout", "request": { "method": "POST", "header": [], "url": { "raw": "{{baseUrl}}/api/auth/logout", "host": ["{{baseUrl}}"], "path": ["api", "auth", "logout"] } } } ] }, { "name": "users", "item": [ { "name": "list", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/users?page=1&pageSize=20", "host": ["{{baseUrl}}"], "path": ["api", "users"], "query": [ { "key": "page", "value": "1" }, { "key": "pageSize", "value": "20" }, { "key": "role", "value": "", "disabled": true }, { "key": "status", "value": "", "disabled": true }, { "key": "search", "value": "", "disabled": true } ] } } }, { "name": "get", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/users/:id", "host": ["{{baseUrl}}"], "path": ["api", "users", ":id"], "variable": [ { "key": "id", "value": "user_id_here" } ] } } }, { "name": "create", "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"username\": \"newuser\",\n \"password\": \"password123\",\n \"email\": \"newuser@example.com\",\n \"role\": \"viewer\"\n}" }, "url": { "raw": "{{baseUrl}}/api/users", "host": ["{{baseUrl}}"], "path": ["api", "users"] } } }, { "name": "update", "request": { "method": "PUT", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"email\": \"updated@example.com\",\n \"role\": \"operator\",\n \"status\": \"active\"\n}" }, "url": { "raw": "{{baseUrl}}/api/users/:id", "host": ["{{baseUrl}}"], "path": ["api", "users", ":id"], "variable": [ { "key": "id", "value": "user_id_here" } ] } } }, { "name": "delete", "request": { "method": "DELETE", "header": [], "url": { "raw": "{{baseUrl}}/api/users/:id", "host": ["{{baseUrl}}"], "path": ["api", "users", ":id"], "variable": [ { "key": "id", "value": "user_id_here" } ] } } }, { "name": "permissions", "item": [ { "name": "list", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/users/:id/permissions", "host": ["{{baseUrl}}"], "path": ["api", "users", ":id", "permissions"], "variable": [ { "key": "id", "value": "user_id_here" } ] } } }, { "name": "add", "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"camera_id\": \"camera_id_here\",\n \"permission\": \"view\"\n}" }, "url": { "raw": "{{baseUrl}}/api/users/:id/permissions", "host": ["{{baseUrl}}"], "path": ["api", "users", ":id", "permissions"], "variable": [ { "key": "id", "value": "user_id_here" } ] } } }, { "name": "delete", "request": { "method": "DELETE", "header": [], "url": { "raw": "{{baseUrl}}/api/users/:id/permissions/:permissionId", "host": ["{{baseUrl}}"], "path": ["api", "users", ":id", "permissions", ":permissionId"], "variable": [ { "key": "id", "value": "user_id_here" }, { "key": "permissionId", "value": "permission_id_here" } ] } } } ] } ] }, { "name": "cameras", "item": [ { "name": "list", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/cameras?page=1&pageSize=20", "host": ["{{baseUrl}}"], "path": ["api", "cameras"], "query": [ { "key": "page", "value": "1" }, { "key": "pageSize", "value": "20" }, { "key": "status", "value": "", "disabled": true }, { "key": "type", "value": "", "disabled": true }, { "key": "search", "value": "", "disabled": true } ] } } }, { "name": "get", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/cameras/:id", "host": ["{{baseUrl}}"], "path": ["api", "cameras", ":id"], "variable": [ { "key": "id", "value": "camera_id_here" } ] } } }, { "name": "create", "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"name\": \"Camera 1\",\n \"type\": \"rtsp\",\n \"protocol\": \"rtmps\",\n \"rtsp_url\": \"rtsp://example.com/stream\",\n \"location\": \"Room 101\"\n}" }, "url": { "raw": "{{baseUrl}}/api/cameras", "host": ["{{baseUrl}}"], "path": ["api", "cameras"] } } }, { "name": "update", "request": { "method": "PUT", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"name\": \"Camera 1 Updated\",\n \"location\": \"Room 102\",\n \"status\": \"online\"\n}" }, "url": { "raw": "{{baseUrl}}/api/cameras/:id", "host": ["{{baseUrl}}"], "path": ["api", "cameras", ":id"], "variable": [ { "key": "id", "value": "camera_id_here" } ] } } }, { "name": "delete", "request": { "method": "DELETE", "header": [], "url": { "raw": "{{baseUrl}}/api/cameras/:id", "host": ["{{baseUrl}}"], "path": ["api", "cameras", ":id"], "variable": [ { "key": "id", "value": "camera_id_here" } ] } } }, { "name": "sessions", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/cameras/:id/sessions?page=1&pageSize=20", "host": ["{{baseUrl}}"], "path": ["api", "cameras", ":id", "sessions"], "query": [ { "key": "page", "value": "1" }, { "key": "pageSize", "value": "20" }, { "key": "status", "value": "", "disabled": true } ], "variable": [ { "key": "id", "value": "camera_id_here" } ] } } } ] }, { "name": "sessions", "item": [ { "name": "list", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/sessions?page=1&pageSize=20", "host": ["{{baseUrl}}"], "path": ["api", "sessions"], "query": [ { "key": "page", "value": "1" }, { "key": "pageSize", "value": "20" }, { "key": "status", "value": "", "disabled": true }, { "key": "camera_id", "value": "", "disabled": true } ] } } }, { "name": "live", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/sessions/live", "host": ["{{baseUrl}}"], "path": ["api", "sessions", "live"] } } }, { "name": "get", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/sessions/:id", "host": ["{{baseUrl}}"], "path": ["api", "sessions", ":id"], "variable": [ { "key": "id", "value": "session_id_here" } ] } } }, { "name": "start", "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"camera_id\": \"camera_id_here\",\n \"live_input_id\": \"live_input_id_here\"\n}" }, "url": { "raw": "{{baseUrl}}/api/sessions", "host": ["{{baseUrl}}"], "path": ["api", "sessions"] } } }, { "name": "end", "request": { "method": "PUT", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"recording_id\": \"recording_id_here\"\n}" }, "url": { "raw": "{{baseUrl}}/api/sessions/:id/end", "host": ["{{baseUrl}}"], "path": ["api", "sessions", ":id", "end"], "variable": [ { "key": "id", "value": "session_id_here" } ] } } }, { "name": "update-viewers", "request": { "method": "PUT", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"viewer_count\": 100\n}" }, "url": { "raw": "{{baseUrl}}/api/sessions/:id/viewers", "host": ["{{baseUrl}}"], "path": ["api", "sessions", ":id", "viewers"], "variable": [ { "key": "id", "value": "session_id_here" } ] } } }, { "name": "stats", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/sessions/:id/stats", "host": ["{{baseUrl}}"], "path": ["api", "sessions", ":id", "stats"], "variable": [ { "key": "id", "value": "session_id_here" } ] } } }, { "name": "delete", "request": { "method": "DELETE", "header": [], "url": { "raw": "{{baseUrl}}/api/sessions/:id", "host": ["{{baseUrl}}"], "path": ["api", "sessions", ":id"], "variable": [ { "key": "id", "value": "session_id_here" } ] } } } ] }, { "name": "stats", "item": [ { "name": "view", "item": [ { "name": "start", "request": { "auth": { "type": "noauth" }, "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"video_id\": \"video_id_here\"\n}" }, "url": { "raw": "{{baseUrl}}/api/stats/view/start", "host": ["{{baseUrl}}"], "path": ["api", "stats", "view", "start"] } } }, { "name": "end", "request": { "auth": { "type": "noauth" }, "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"view_id\": \"view_id_here\",\n \"watch_duration\": 300\n}" }, "url": { "raw": "{{baseUrl}}/api/stats/view/end", "host": ["{{baseUrl}}"], "path": ["api", "stats", "view", "end"] } } }, { "name": "heartbeat", "request": { "auth": { "type": "noauth" }, "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"view_id\": \"view_id_here\",\n \"watch_duration\": 60\n}" }, "url": { "raw": "{{baseUrl}}/api/stats/view/heartbeat", "host": ["{{baseUrl}}"], "path": ["api", "stats", "view", "heartbeat"] } } } ] }, { "name": "video", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/stats/video/:videoId", "host": ["{{baseUrl}}"], "path": ["api", "stats", "video", ":videoId"], "variable": [ { "key": "videoId", "value": "video_id_here" } ] } } }, { "name": "session", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/stats/session/:sessionId", "host": ["{{baseUrl}}"], "path": ["api", "stats", "session", ":sessionId"], "variable": [ { "key": "sessionId", "value": "session_id_here" } ] } } }, { "name": "overview", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/stats/overview?days=7", "host": ["{{baseUrl}}"], "path": ["api", "stats", "overview"], "query": [ { "key": "days", "value": "7" } ] } } }, { "name": "views", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/stats/views?page=1&pageSize=50", "host": ["{{baseUrl}}"], "path": ["api", "stats", "views"], "query": [ { "key": "page", "value": "1" }, { "key": "pageSize", "value": "50" }, { "key": "video_id", "value": "", "disabled": true }, { "key": "session_id", "value": "", "disabled": true }, { "key": "user_id", "value": "", "disabled": true } ] } } } ] }, { "name": "audit-logs", "item": [ { "name": "list", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/audit-logs?page=1&pageSize=50", "host": ["{{baseUrl}}"], "path": ["api", "audit-logs"], "query": [ { "key": "page", "value": "1" }, { "key": "pageSize", "value": "50" }, { "key": "action", "value": "", "disabled": true }, { "key": "resource", "value": "", "disabled": true }, { "key": "user_id", "value": "", "disabled": true }, { "key": "start_date", "value": "", "disabled": true }, { "key": "end_date", "value": "", "disabled": true } ] } } }, { "name": "get", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/audit-logs/:id", "host": ["{{baseUrl}}"], "path": ["api", "audit-logs", ":id"], "variable": [ { "key": "id", "value": "log_id_here" } ] } } }, { "name": "stats", "item": [ { "name": "summary", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/audit-logs/stats/summary?days=7", "host": ["{{baseUrl}}"], "path": ["api", "audit-logs", "stats", "summary"], "query": [ { "key": "days", "value": "7" } ] } } } ] }, { "name": "user", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/audit-logs/user/:userId?page=1&pageSize=20", "host": ["{{baseUrl}}"], "path": ["api", "audit-logs", "user", ":userId"], "query": [ { "key": "page", "value": "1" }, { "key": "pageSize", "value": "20" } ], "variable": [ { "key": "userId", "value": "user_id_here" } ] } } }, { "name": "resource", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/audit-logs/resource/:resource/:resourceId?page=1&pageSize=20", "host": ["{{baseUrl}}"], "path": ["api", "audit-logs", "resource", ":resource", ":resourceId"], "query": [ { "key": "page", "value": "1" }, { "key": "pageSize", "value": "20" } ], "variable": [ { "key": "resource", "value": "camera" }, { "key": "resourceId", "value": "resource_id_here" } ] } } } ] }, { "name": "stream", "item": [ { "name": "video", "item": [ { "name": "list", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/stream/video/list", "host": ["{{baseUrl}}"], "path": ["api", "stream", "video", "list"] } } }, { "name": "get", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/stream/video/:videoId", "host": ["{{baseUrl}}"], "path": ["api", "stream", "video", ":videoId"], "variable": [ { "key": "videoId", "value": "video_id_here" } ] } } }, { "name": "delete", "request": { "method": "DELETE", "header": [], "url": { "raw": "{{baseUrl}}/api/stream/video/:videoId", "host": ["{{baseUrl}}"], "path": ["api", "stream", "video", ":videoId"], "variable": [ { "key": "videoId", "value": "video_id_here" } ] } } }, { "name": "import", "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"url\": \"https://example.com/video.mp4\",\n \"meta\": {\n \"name\": \"My Video\"\n }\n}" }, "url": { "raw": "{{baseUrl}}/api/stream/video/import", "host": ["{{baseUrl}}"], "path": ["api", "stream", "video", "import"] } } }, { "name": "upload-url", "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"maxDurationSeconds\": 3600,\n \"meta\": {\n \"name\": \"My Upload\"\n }\n}" }, "url": { "raw": "{{baseUrl}}/api/stream/video/upload-url", "host": ["{{baseUrl}}"], "path": ["api", "stream", "video", "upload-url"] } } }, { "name": "playback", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/stream/video/:videoId/playback", "host": ["{{baseUrl}}"], "path": ["api", "stream", "video", ":videoId", "playback"], "variable": [ { "key": "videoId", "value": "video_id_here" } ] } } } ] }, { "name": "live", "item": [ { "name": "list", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/stream/live/list", "host": ["{{baseUrl}}"], "path": ["api", "stream", "live", "list"] } } }, { "name": "create", "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"meta\": {\n \"name\": \"My Live Stream\"\n },\n \"recording\": {\n \"mode\": \"automatic\"\n }\n}" }, "url": { "raw": "{{baseUrl}}/api/stream/live", "host": ["{{baseUrl}}"], "path": ["api", "stream", "live"] } } }, { "name": "get", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/stream/live/:liveInputId", "host": ["{{baseUrl}}"], "path": ["api", "stream", "live", ":liveInputId"], "variable": [ { "key": "liveInputId", "value": "live_input_id_here" } ] } } }, { "name": "update", "request": { "method": "PUT", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"meta\": {\n \"name\": \"Updated Live Stream\"\n }\n}" }, "url": { "raw": "{{baseUrl}}/api/stream/live/:liveInputId", "host": ["{{baseUrl}}"], "path": ["api", "stream", "live", ":liveInputId"], "variable": [ { "key": "liveInputId", "value": "live_input_id_here" } ] } } }, { "name": "delete", "request": { "method": "DELETE", "header": [], "url": { "raw": "{{baseUrl}}/api/stream/live/:liveInputId", "host": ["{{baseUrl}}"], "path": ["api", "stream", "live", ":liveInputId"], "variable": [ { "key": "liveInputId", "value": "live_input_id_here" } ] } } }, { "name": "playback", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/stream/live/:liveInputId/playback", "host": ["{{baseUrl}}"], "path": ["api", "stream", "live", ":liveInputId", "playback"], "variable": [ { "key": "liveInputId", "value": "live_input_id_here" } ] } } }, { "name": "recordings", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/stream/live/:liveInputId/recordings", "host": ["{{baseUrl}}"], "path": ["api", "stream", "live", ":liveInputId", "recordings"], "variable": [ { "key": "liveInputId", "value": "live_input_id_here" } ] } } } ] } ] } ] } ] }