test-platform/server/edit-question.py

48 lines
1.5 KiB
Python
Raw Normal View History

2024-05-28 17:47:08 +03:00
import mariadb as mdb
import json
import sys
import os
from httputils import parse_query, escape_sql_string
def readfile(path):
if os.path.exists(path):
return open(path).read()
args = {"host": "127.0.0.1",
"port": 3306,
"user": "root",
"password": "",
"database": "test_holder"}
settings = json.loads(readfile("cgi/db-settings.json"))
args.update(settings)
db_connection = mdb.connect(**args)
args = parse_query(os.environ['QUERY_STRING'])
if not 'question_id' in args:
print("Content-Type: text/plain; charset=UTF-8\r\n\r\nВи не зазначили ідентифікатор тесту, до якого має залежати запитання\r\n")
sys.exit(0)
if not 'title' in args:
print("Content-Type: text/plain; charset=UTF-8\r\n\r\nВи не зазначили текст запитання\r\n")
sys.exit(0)
if not 'mtime' in args or not args['mtime']:
args['mtime'] = 0
cur = db_connection.cursor()
try:
cur.execute(f"UPDATE question SET title = '{escape_sql_string(args['title'])}', mtime = {args['mtime']} WHERE id = {args['question_id']};")
db_connection.commit()
#cur.execute(f"SELECT id FROM question ORDER BY id DESC;")
#new_id = iter(cur).__next__()[0]
print(f"Location: /index.py?mode=view-question&id={args['question_id']}\r\n\r\n")
except Exception as e:
print(f"Content-Type: text/plain; charset=UTF-8\r\n\r\nНе вдалося створити нове запитання ({e})\r\n")