#!/usr/bin/env python3
"""The partner's API, simulated: orders for anyone with the right token."""

import http.server
import json
import os
import urllib.parse

TOKEN = open("/etc/partner/token", encoding="utf-8").read().strip()
ORDERS = [
    {"id": "P-1001", "sku": "BOLT-M6", "qty": 40},
    {"id": "P-1002", "sku": "NUT-M6", "qty": 40},
]


class Handler(http.server.BaseHTTPRequestHandler):
    def do_GET(self):
        parsed = urllib.parse.urlparse(self.path)
        query = urllib.parse.parse_qs(parsed.query)
        header = self.headers.get("Authorization", "")
        given = header.removeprefix("Bearer ").strip() or (query.get("token") or [""])[0]
        if given != TOKEN:
            self.send_error(403, "bad token")
            return
        body = json.dumps(ORDERS).encode()
        self.send_response(200)
        self.send_header("Content-Type", "application/json")
        self.send_header("Content-Length", str(len(body)))
        self.end_headers()
        self.wfile.write(body)

    def log_message(self, *args):
        pass


http.server.HTTPServer(("127.0.0.1", int(os.environ.get("PORT", "8977"))), Handler).serve_forever()
