import os import sqlite3 from flask import Flask, send_from_directory, request, jsonify app = Flask(__name__) DB_PATH = os.environ.get('DB_PATH', '/app/db/pendientes.db') def init_db(): os.makedirs(os.path.dirname(DB_PATH), exist_ok=True) conn = sqlite3.connect(DB_PATH) conn.execute(''' CREATE TABLE IF NOT EXISTS pendientes ( id INTEGER PRIMARY KEY AUTOINCREMENT, descripcion TEXT NOT NULL, fecha TEXT NOT NULL, estado TEXT NOT NULL, urgencia TEXT NOT NULL ) ''') conn.commit() conn.close() def get_db(): conn = sqlite3.connect(DB_PATH) conn.row_factory = sqlite3.Row return conn @app.route('/') def index(): return send_from_directory('/app/frontend', 'index.html') @app.route('/') def static_files(path): return send_from_directory('/app/frontend', path) @app.route('/api/pendientes', methods=['GET']) def listar_pendientes(): conn = get_db() pendientes = conn.execute('SELECT * FROM pendientes ORDER BY fecha').fetchall() conn.close() return jsonify([dict(row) for row in pendientes]) @app.route('/api/pendientes', methods=['POST']) def crear_pendiente(): data = request.get_json() or {} descripcion = data.get('descripcion', '') fecha = data.get('fecha', '') estado = data.get('estado', 'pendiente') urgencia = data.get('urgencia', 'media') conn = get_db() cursor = conn.execute( 'INSERT INTO pendientes (descripcion, fecha, estado, urgencia) VALUES (?, ?, ?, ?)', (descripcion, fecha, estado, urgencia) ) conn.commit() nuevo_id = cursor.lastrowid conn.close() return jsonify({'id': nuevo_id}), 201 @app.route('/api/pendientes/', methods=['PUT']) def actualizar_pendiente(id): data = request.get_json() or {} descripcion = data.get('descripcion', '') fecha = data.get('fecha', '') estado = data.get('estado', '') urgencia = data.get('urgencia', '') conn = get_db() conn.execute( 'UPDATE pendientes SET descripcion = ?, fecha = ?, estado = ?, urgencia = ? WHERE id = ?', (descripcion, fecha, estado, urgencia, id) ) conn.commit() conn.close() return jsonify({'ok': True}) @app.route('/api/pendientes/', methods=['DELETE']) def eliminar_pendiente(id): conn = get_db() conn.execute('DELETE FROM pendientes WHERE id = ?', (id,)) conn.commit() conn.close() return jsonify({'ok': True}) if __name__ == '__main__': init_db() app.run(host='0.0.0.0', port=5000)