from rest_framework.permissions import BasePermission
from .models import AppClients
from utils.integration.auth import PublicAPIIntegrationAuthentication


class IsKnownClient(BasePermission):
    def has_permission(self, request, view):
        method = request.method

        if method == "GET":
            client = request.client
        else:
            auth = PublicAPIIntegrationAuthentication()
            client, token = auth.authenticate(request=request)

        return bool(client.approval_status.lower() == "approved")
