"""
CGI Implementation for proxy redirection.
Executes the redirect logic and outputs standard CGI headers and body.
"""

import os

from proxy_redirect import ProxyRedirectBase


class CGIProxyRedirect(ProxyRedirectBase):
    """
    Subclass of ProxyRedirectBase that handles CGI-specific I/O.
    """

    def __init__(self):
        """
        Initializes the CGI proxy using the system environment variables.
        """
        super().__init__(dict(os.environ))

    def emit(self):
        """Executes the logic and prints to STDOUT in CGI format."""
        response = self.run()

        # Emit headers
        print(f"Status: {response['status']}")
        for key, value in response.get("headers", {}).items():
            print(f"{key}: {value}")

        # Header/Body separator
        print()

        # Emit body
        print(response.get("body", ""))


if __name__ == "__main__":
    app = CGIProxyRedirect()
    app.emit()
