Exemplo n.º 1
0
def get_api_test_item_new():
    select = """
select *
from item
where false"""

    results = api.Results()
    with app.dbconn() as conn:
        columns, rows = api.sql_tab2(conn, select)

        def default_rows(key, row):
            row.price = 12

        rows = api.tab2_rows_default(columns, [None], default_rows)
        results.tables["items", True] = columns, rows
    return results.json_out()
Exemplo n.º 2
0
def post_api_test_item_record():
    item = api.table_from_tab2(
        "item",
        required=["name", "price"],
        options=["tags"],
        matrix=["tags"],
        allow_extra=True,
    )

    if len(item.rows) != 1:
        raise api.UserError("invalid-params", "Update exactly one row.")
    if "id" in item.DataRow.__slots__:
        raise api.UserError("invalid-params", "id column is banned")

    with app.dbconn() as conn:
        with api.writeblock(conn) as w:
            w.insert_rows("item", item, matrix={"tags": "tagitem"})
        conn.commit()
    return api.Results().json_out()
Exemplo n.º 3
0
def put_api_test_item_record(itemid):
    item = api.table_from_tab2(
        "item",
        required=["name", "price"],
        amendments=["id"],
        options=["tags"],
        matrix=["tags"],
        allow_extra=True,
    )

    if len(item.rows) != 1:
        raise api.UserError("invalid-params", "Update exactly one row.")

    for row in item.rows:
        row.id = itemid

    with app.dbconn() as conn:
        with api.writeblock(conn) as w:
            w.upsert_rows("item", item, matrix={"tags": "tagitem"})
        conn.commit()
    return api.Results().json_out()
Exemplo n.º 4
0
def get_api_database_locks():
    select = """
SELECT 
    a.datname,
    c.relname,
    l.transactionid,
    l.mode,
    l.GRANTED,
    a.usename,
    a.query, 
    a.query_start at time zone 'utc' as start_time, 
    --age(now(), a.query_start) AS "age", 
    a.pid 
FROM pg_stat_activity a
JOIN pg_locks l ON l.pid = a.pid
JOIN pg_class c ON c.oid = l.relation
ORDER BY a.query_start;
"""

    results = api.Results(default_title=True)
    with app.dbconn() as conn:
        results.tables["locks", True] = api.sql_tab2(conn, select)
    return results.json_out()
Exemplo n.º 5
0
def api_request_cancel(request):
    token = request.query.get("token")
    app.cancel_request(token)
    return api.Results().json_out()
Exemplo n.º 6
0
def api_sql_info():
    results = api.Results()
    # results.keys['yenot_version'] = str(yenot.__version_info__)
    with app.dbconn() as conn:
        results.keys["sql_version"] = api.sql_1row(conn, "select version()")
    return results.json_out()
Exemplo n.º 7
0
def put_api_database_cancelbackend(request):
    pid = request.params.get("pid")

    with app.dbconn() as conn:
        api.sql_void(conn, "select pg_cancel_backend(%(p)s)", {"p": pid})
    return api.Results().json_out()
Exemplo n.º 8
0
def get_api_database_stats():
    results = api.Results()
    with app.dbconn() as conn:
        results.keys["sql_version"] = api.sql_1row(conn, "select version()")
    return results.json_out()
Exemplo n.º 9
0
def api_server_shutdown():
    app.delayed_shutdown()
    return api.Results().json_out()