148 lines
3.2 KiB
Cheetah
148 lines
3.2 KiB
Cheetah
$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
|
|
|
|
#for $column in $table.columns
|
|
#if (('foreignkey' in $column) and $column.foreignkey)
|
|
|
|
def get_${table.name}_by_${column.name}(user, token_info, ${column.name}Id=None):
|
|
return dbGetMany(user, token_info, {
|
|
"statement": """
|
|
SELECT
|
|
id
|
|
#for $innerColumn in $table.columns
|
|
,$innerColumn.name
|
|
#end for
|
|
FROM ${table.name}_t
|
|
WHERE ${column.name} = %s
|
|
#if $table.selectors
|
|
ORDER BY
|
|
#set $sep = ""
|
|
#for $selector in $table.selectors
|
|
$sep$selector
|
|
#set $sep = ","
|
|
#end for
|
|
#end if
|
|
""",
|
|
"params": (${column.name}Id, )
|
|
}
|
|
)
|
|
#end if
|
|
#end for
|
|
|
|
#end for
|