Files
2026-08-11 23:43:07 -05:00

101 lines
2.5 KiB
Python

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('/<path:path>')
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/<int:id>', 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/<int:id>', 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)