Files
peertube-collector/utils/PostHandler.py
Mirko Milovanovic b05d7ca127
Some checks failed
Build Docker Image for Pull Request / build (pull_request) Failing after 35s
feat: add convenience functions, update Docker setup, and integrate Webpack for building WebRTC internals exporter
2025-02-19 21:56:14 +01:00

36 lines
1.4 KiB
Python

import json
import logging
from http.server import BaseHTTPRequestHandler
class Handler(BaseHTTPRequestHandler):
def __init__(self, custom_func, driver, logger, socket_url, socket_port, *args, **kwargs):
self._custom_func = custom_func
self.logger = logger
self.driver = driver
self._socket_url = socket_url
self._socket_port = socket_port
super().__init__(*args, **kwargs)
def do_POST(self):
if self.path == '/webrtc-internals-exporter':
content_length = int(self.headers['Content-Length'])
post_data = self.rfile.read(content_length)
self.logger.log(logging.DEBUG, f"POST request,\nPath: {self.path}\nHeaders:\n{self.headers}\n\nBody:\n{post_data.decode('utf-8')}")
self._custom_func(self.driver, json.loads(post_data.decode('utf-8')), self._socket_url, self._socket_port)
self.send_response(200)
self.end_headers()
self.wfile.write(b'POST request received')
else:
self.send_response(404)
self.end_headers()
self.wfile.write(b'404 Not Found')
def do_GET(self):
if self.path == '/heartbeat':
self.send_response(200)
self.end_headers()
self.wfile.write(b'Heartbeat OK')
else:
self.send_response(404)
self.end_headers()
self.wfile.write(b'404 Not Found')