# Copyright (C) 2023 Cochise Ruhulessin
#
# All rights reserved. No warranty, explicit or implicit, provided. In
# no event shall the author(s) be liable for any claim or damages.
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
import fastapi

from cbra.types import Request


def get(
    request: Request,
    redirect_uri: str = fastapi.Cookie(
        default=...,
        title="Redirect URI",
        alias='bff.redirect_uri',
        description=(
            "The URI to redirect the user-agent to after completing the "
            "login."
        )
    )
) -> str:
    if str.startswith(redirect_uri, '/'):
        redirect_uri = f'{request.url.scheme}://{request.url.netloc}{redirect_uri}'
    return redirect_uri


FrontendRedirectURI: str = fastapi.Depends(get)