diff --git a/halfapi/cli/domain.py b/halfapi/cli/domain.py index b78c95b..a0bb452 100644 --- a/halfapi/cli/domain.py +++ b/halfapi/cli/domain.py @@ -10,12 +10,7 @@ from .cli import cli from halfapi.conf import DOMAINS, DOMAINSDICT, BASE_DIR from halfapi.lib.schemas import schema_dict_dom -# from halfapi.db import ( -# Domain, -# APIRouter, -# APIRoute, -# AclFunction, -# Acl) + logger = logging.getLogger('halfapi') diff --git a/halfapi/cli/lib/db.py b/halfapi/cli/lib/db.py deleted file mode 100644 index f2657c3..0000000 --- a/halfapi/cli/lib/db.py +++ /dev/null @@ -1,116 +0,0 @@ -import click -# from half_orm.model import Model, CONF_DIR -# from half_orm.model_errors import MissingConfigFile -#import psycopg2 -import subprocess - -_DB_SCHEMA = """ -create schema api; - -create type verb as enum ('POST', 'GET', 'PUT', 'DELETE'); - -create table api.domain ( - name text, - primary key (name) -); - -create table api.router ( - name text, - domain text, - primary key (name, domain) -); - -alter table api.router add constraint router_domain_fkey foreign key (domain) references api.domain(name) on update cascade on delete cascade; - -create table api.route ( - http_verb verb, - path text, -- relative to // - fct_name text, - router text, - domain text, - primary key (http_verb, path, router, domain) -); - -alter table api.route add constraint route_router_fkey foreign key (router, domain) references api.router(name, domain) on update cascade on delete cascade; - -create table api.acl_function ( - name text, - description text, - domain text, - primary key (name, domain) -); - -alter table api.acl_function add constraint acl_function_domain_fkey foreign key (domain) references api.domain(name) on update cascade on delete cascade; - -create table api.acl ( - http_verb verb, - path text not null, - router text, - domain text, - acl_fct_name text, - keys text[], - primary key (http_verb, path, router, domain, acl_fct_name) -); - -alter table api.acl add constraint acl_route_fkey foreign key (http_verb, path, -router, domain) references api.route(http_verb, path, router, domain) on update cascade on delete cascade; -alter table api.acl add constraint acl_function_fkey foreign key (acl_fct_name, domain) references api.acl_function(name, domain) on update cascade on delete cascade; - -create schema "api.view"; - -create view "api.view".route as -select - route.*, - '/'::text || route.domain || '/'::text || route.router || route.path AS abs_path -from - api.route - join api.domain on - route.domain = domain.name -; - -create view "api.view".acl as -select - acl.*, - '/'::text || route.domain || '/'::text || route.router || route.path AS abs_path -from - api.acl - join api.acl_function on - acl.acl_fct_name = acl_function.name - join api.route on - acl.domain = route.domain - and acl.router = route.router - and acl.path = route.path; -""" - -HOP_CONF = """[database] -name = {} -""" - -# class ProjectDB: -# def __init__(self, project_name): -# self.__project_name = project_name -# self.__db_name = f'halfapi_{self.__project_name}' -# self.__db = self._get_db() -# -# def _get_db(self): -# from subprocess import PIPE -# hop_conf_file = f'{CONF_DIR}/{self.__db_name}' -# try: -# return Model(self.__db_name) -# except psycopg2.OperationalError as err: -# "créer la base de données" -# ret = subprocess.run(['/usr/bin/createdb', self.__db_name]) -# if ret.returncode != 0: -# raise Exception(f"Can't create {self.__db_name}") -# except MissingConfigFile: -# print(f"demande validation de {CONF_DIR} {self.__db_name}") -# print("demande validation création de fichier de CONF") -# open(hop_conf_file, 'w').write(HOP_CONF.format(self.__db_name)) -# return self._get_db() -# -# def init(self): -# """ -# """ -# self.__db.execute_query(_DB_SCHEMA) -# self.__db._connection.close() -