From 189fcf86f7b0781ee27239114c6eaa97e2b5feb6 Mon Sep 17 00:00:00 2001 From: Maxime Alves LIRMM Date: Tue, 30 Nov 2021 01:54:48 +0100 Subject: [PATCH] =?UTF-8?q?[cli.routes]=C2=A0halfapi=20routes=20--export?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- halfapi/cli/routes.py | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/halfapi/cli/routes.py b/halfapi/cli/routes.py index 785a48e..54ff544 100644 --- a/halfapi/cli/routes.py +++ b/halfapi/cli/routes.py @@ -5,18 +5,26 @@ cli/routes.py Defines the "halfapi routes" cli commands # builtins import sys import importlib +from pprint import pprint import click from .cli import cli +from ..logging import logger + from ..lib.domain import gen_router_routes +from ..lib.constants import DOMAIN_SCHEMA +from ..lib.routes import api_routes +from ..lib.schemas import schema_to_csv @click.argument('module', required=True) @click.option('--export', default=False, is_flag=True) +@click.option('--validate', default=False, is_flag=True) +@click.option('--check', default=False, is_flag=True) @click.option('--noheader', default=False, is_flag=True) @cli.command() -def routes(module, export=False, noheader=False): +def routes(module, export=False, validate=False, check=False, noheader=False): """ The "halfapi routes" command """ @@ -26,15 +34,12 @@ def routes(module, export=False, noheader=False): raise click.BadParameter('Cannot import this module', param=module) from exc if export: - if not noheader: - click.echo(';'.join(('path', 'method', 'module:function', 'acl', - 'in_parameters'))) - for path, verb, m_router, fct, parameters in gen_router_routes(mod, []): - for param in parameters: - click.echo(';'.join(( - path, - verb, - f'{m_router.__name__}:{fct.__name__}', - param['acl'].__name__, - ','.join((param.get('in', []))) - ))) + click.echo(schema_to_csv(module, header=not noheader)) + + if validate: + routes_d = api_routes(mod) + try: + DOMAIN_SCHEMA.validate(routes_d[0]) + except Exception as exc: + pprint(routes_d[0]) + raise exc from exc