def refresh()

in modular_api/index.py [0:0]


def refresh():
    _trace_id = get_trace_id(tracer=tracer)
    refresh_token = request.json.get('refresh_token')
    if not refresh_token:
        return build_response(
            _trace_id=_trace_id,
            http_code=HTTPStatus.UNAUTHORIZED,
            message='Refresh token is required',
        )
    # Validate the refresh token
    username, rt_version = validate_refresh_token(refresh_token)
    if not username:
        return build_response(
            _trace_id=_trace_id,
            http_code=HTTPStatus.UNAUTHORIZED,
            message='Invalid or expired refresh token',
        )
    # Generate a new JWT session token
    jwt_token = encode_data_to_jwt(username=username)
    # Generate and store a new refresh JWT token
    new_rt_version = gen_refresh_token_version()
    new_refresh_token = encode_data_to_refresh_jwt(username, new_rt_version)
    RefreshTokenService.create_and_save(username, new_rt_version)
    data = {
        'jwt': jwt_token,
        'refresh_token': new_refresh_token,
        'version': __version__,
    }
    return build_response(
        _trace_id=_trace_id, http_code=HTTPStatus.OK, content=data
    )