2626from dotenv import load_dotenv
2727from flask import Flask
2828from flask import jsonify
29+ from flask import redirect
30+ from flask import url_for
2931from flask_cors import CORS
3032from flask_jwt_extended import JWTManager
3133from flask_mail import Mail
@@ -275,13 +277,6 @@ def no_jwt_callback(error_message):
275277# import tasks here to be registered by celery
276278
277279import PyMatcha .utils .tasks # noqa
278- from flask import url_for , redirect
279-
280-
281- def has_no_empty_params (rule ):
282- defaults = rule .defaults if rule .defaults is not None else ()
283- arguments = rule .arguments if rule .arguments is not None else ()
284- return len (defaults ) >= len (arguments )
285280
286281
287282@application .route ("/" )
@@ -295,13 +290,22 @@ def site_map():
295290 for rule in application .url_map .iter_rules ():
296291 # Filter out rules we can't navigate to in a browser
297292 # and rules that require parameters
298- if has_no_empty_params (rule ):
299- url = url_for (rule .endpoint , ** (rule .defaults or {}))
300- methods = ""
301- for m in rule .methods :
302- if m == "HEAD" or m == "OPTIONS" :
303- continue
304- methods += f"{ m } "
305- links .append (f"{ methods } { url } " )
293+ url = url_for (
294+ rule .endpoint ,
295+ ** (rule .defaults or {}),
296+ uid = - 1 ,
297+ message_id = - 1 ,
298+ with_uid = - 1 ,
299+ image_id = - 1 ,
300+ amount = - 1 ,
301+ token = - 1 ,
302+ filename = - 1 ,
303+ )
304+ methods = ""
305+ for m in rule .methods :
306+ if m == "HEAD" or m == "OPTIONS" :
307+ continue
308+ methods += f"{ m } "
309+ links .append (f"{ methods } { url } " .split ("?" )[0 ])
306310 # links is now a list of url, endpoint tuples
307311 return jsonify (links ), 200
0 commit comments