from flask import Flask, request, jsonify
import pymysql
import logging
import ssl

app = Flask(__name__)

# Настройка логгера
logging.basicConfig(filename='/var/www/gps/kabo_app.log', level=logging.DEBUG)

@app.route('/search', methods=['GET', 'POST'])
def search():
    if request.method == 'GET':
        # Если это GET-запрос, получаем параметр text из URL
        text = request.args.get('text')
    elif request.method == 'POST':
        # Если это POST-запрос, пытаемся получить JSON-данные
        data = request.get_json()
        text = data.get('text')
    else:
        # Если это другой метод запроса, возвращаем ошибку
        return jsonify({'error': 'Unsupported method'}), 405

    # Логирование информации
    logging.info('Received text: %s', text)

    # Подключение к базе данных
    try:
        db = pymysql.connect(
            host='localhost',
            user='kabo2023',
            passwd='AaBbCc-2023r',
            db='agata_kabo',
            charset='utf8'
        )

        # Создание курсора
        with db.cursor() as cursor:
            # Выполнение SQL-запроса для выбора всех координат из базы данных
            select_query = "SELECT numer, marka, kierowca, firma, notatka FROM auta WHERE numer LIKE %s OR marka LIKE %s OR kierowca LIKE %s OR firma LIKE %s OR notatka LIKE %s"
            cursor.execute(select_query, (f'%{text}%', f'%{text}%', f'%{text}%', f'%{text}%', f'%{text}%'))
            result = cursor.fetchall()

            result_list = []

            for row in result:
                numer, marka, kierowca, firma, notatka = row
                response = {'message': f'Auto: {numer}, {marka}, {kierowca}, {firma}, {notatka}'}
                result_list.append(response)

            return jsonify(result_list)

    except pymysql.MySQLError as e:
        logging.error('Database error: %s', e)
        return jsonify({'error': 'Database error'}), 500
    finally:
        db.close()

@app.route('/get-messages', methods=['GET'])
def get_messages():
    text = [{'text': ''}]
    return jsonify(messages)

if __name__ == "__main__":
    app.run(host='0.0.0.0', port=8448)
