$GENERATED_PYTHON_COMMENT from db import dbGetMany, dbGetOne, dbInsert, dbUpdate from loguru import logger import werkzeug #for $table in $tables def get_${table.name}s(user, token_info): return dbGetMany(user, token_info, { "statement": """ SELECT id #for $column in $table.columns ,$column.name #end for FROM ${table.name}_t #if $table.selectors ORDER BY #set $sep = "" #for $selector in $table.selectors $sep$selector #set $sep = "," #end for #end if """, "params": () } ) def insert_${table.name}(user, token_info, **args): try: body = args["body"] #for $column in $table.columns v_$column.name = body["$column.name"] #end for return dbInsert(user, token_info, { "statement": """ INSERT INTO ${table.name}_t ( #set $sep="" #for $column in $table.columns $sep$column.name #set $sep="," #end for ) VALUES ( #set $sep="" #for $column in $table.columns $sep%s #set $sep="," #end for ) RETURNING * """, "params": [ #set $sep="" #for $column in $table.columns ${sep}v_$column.name #set $sep="," #end for ] }) except KeyError as e: logger.warning("insert_${table.name}: parameter missing: {}".format(e)) raise werkzeug.exceptions.UnprocessableEntity("parameter missing: {}".format(e)) def get_${table.name}(user, token_info, ${table.name}Id=None): return dbGetOne(user, token_info, { "statement": """ SELECT id #for $column in $table.columns ,$column.name #end for FROM ${table.name}_t WHERE id = %s """, "params": (${table.name}Id, ) } ) #if (('immutable' not in $table) or (not $table.immutable)) def update_${table.name}(user, token_info, ${table.name}Id=None, **args): try: body = args["body"] #for $column in $table.columns #if (('immutable' not in $column) or (not $column.immutable)) v_$column.name = body["$column.name"] #end if #end for return dbUpdate(user, token_info, { "statement": """ UPDATE ${table.name}_t SET #set $sep="" #for $column in $table.columns #if (('immutable' not in $column) or (not $column.immutable)) $sep$column.name = %s #end if #set $sep="," #end for WHERE id = %s RETURNING * """, "params": [ #for $column in $table.columns #if (('immutable' not in $column) or (not $column.immutable)) v_${column.name}, #end if #end for ${table.name}Id ] }) except KeyError as e: logger.warning("update_${table.name}: parameter missing: {}".format(e)) raise werkzeug.exceptions.UnprocessableEntity("parameter missing: {}".format(e)) #end if #end for