Update app.py
Browse files
app.py
CHANGED
|
@@ -5,12 +5,16 @@ import os
|
|
| 5 |
from flask_cors import CORS
|
| 6 |
|
| 7 |
app = Flask(__name__)
|
| 8 |
-
CORS(app) # Enable CORS for all routes
|
| 9 |
|
| 10 |
-
|
|
|
|
| 11 |
DATA_FILE = os.path.join(DATA_DIR, 'events.json')
|
| 12 |
|
| 13 |
-
#
|
|
|
|
|
|
|
|
|
|
| 14 |
if not os.path.exists(DATA_FILE):
|
| 15 |
with open(DATA_FILE, 'w') as f:
|
| 16 |
json.dump([], f)
|
|
@@ -50,9 +54,8 @@ def index():
|
|
| 50 |
|
| 51 |
return render_template('index.html', events=events, reminders=reminders, search=search_query)
|
| 52 |
|
| 53 |
-
# Get all events or add new event
|
| 54 |
@app.route('/events', methods=['GET', 'POST'])
|
| 55 |
-
@app.route('/events/', methods=['GET', 'POST'])
|
| 56 |
def events():
|
| 57 |
if request.method == 'GET':
|
| 58 |
events = load_events()
|
|
@@ -71,7 +74,6 @@ def events():
|
|
| 71 |
save_events(events)
|
| 72 |
return jsonify(new_event), 201
|
| 73 |
|
| 74 |
-
# Update an existing event
|
| 75 |
@app.route('/events/<event_id>', methods=['PUT'])
|
| 76 |
def update_event(event_id):
|
| 77 |
events = load_events()
|
|
@@ -83,7 +85,6 @@ def update_event(event_id):
|
|
| 83 |
return jsonify(event)
|
| 84 |
return jsonify({'error': 'Event not found'}), 404
|
| 85 |
|
| 86 |
-
# Delete an event
|
| 87 |
@app.route('/events/<event_id>', methods=['DELETE'])
|
| 88 |
def delete_event(event_id):
|
| 89 |
events = load_events()
|
|
@@ -91,12 +92,10 @@ def delete_event(event_id):
|
|
| 91 |
save_events(events)
|
| 92 |
return '', 204
|
| 93 |
|
| 94 |
-
# Custom template filter for formatting time (12-hour clock)
|
| 95 |
@app.template_filter('format12')
|
| 96 |
def format12(value):
|
| 97 |
dt = datetime.fromisoformat(value)
|
| 98 |
return dt.strftime('%I:%M %p, %b %d')
|
| 99 |
|
| 100 |
if __name__ == "__main__":
|
| 101 |
-
# Make sure it listens on 0.0.0.0 (the container's network interface)
|
| 102 |
app.run(host="0.0.0.0", port=7860)
|
|
|
|
| 5 |
from flask_cors import CORS
|
| 6 |
|
| 7 |
app = Flask(__name__)
|
| 8 |
+
CORS(app) # Enable CORS for all routes
|
| 9 |
|
| 10 |
+
# ✅ Use a writable local data directory
|
| 11 |
+
DATA_DIR = './data'
|
| 12 |
DATA_FILE = os.path.join(DATA_DIR, 'events.json')
|
| 13 |
|
| 14 |
+
# ✅ Ensure the ./data directory exists
|
| 15 |
+
os.makedirs(DATA_DIR, exist_ok=True)
|
| 16 |
+
|
| 17 |
+
# ✅ Initialize events.json if it doesn't exist
|
| 18 |
if not os.path.exists(DATA_FILE):
|
| 19 |
with open(DATA_FILE, 'w') as f:
|
| 20 |
json.dump([], f)
|
|
|
|
| 54 |
|
| 55 |
return render_template('index.html', events=events, reminders=reminders, search=search_query)
|
| 56 |
|
|
|
|
| 57 |
@app.route('/events', methods=['GET', 'POST'])
|
| 58 |
+
@app.route('/events/', methods=['GET', 'POST'])
|
| 59 |
def events():
|
| 60 |
if request.method == 'GET':
|
| 61 |
events = load_events()
|
|
|
|
| 74 |
save_events(events)
|
| 75 |
return jsonify(new_event), 201
|
| 76 |
|
|
|
|
| 77 |
@app.route('/events/<event_id>', methods=['PUT'])
|
| 78 |
def update_event(event_id):
|
| 79 |
events = load_events()
|
|
|
|
| 85 |
return jsonify(event)
|
| 86 |
return jsonify({'error': 'Event not found'}), 404
|
| 87 |
|
|
|
|
| 88 |
@app.route('/events/<event_id>', methods=['DELETE'])
|
| 89 |
def delete_event(event_id):
|
| 90 |
events = load_events()
|
|
|
|
| 92 |
save_events(events)
|
| 93 |
return '', 204
|
| 94 |
|
|
|
|
| 95 |
@app.template_filter('format12')
|
| 96 |
def format12(value):
|
| 97 |
dt = datetime.fromisoformat(value)
|
| 98 |
return dt.strftime('%I:%M %p, %b %d')
|
| 99 |
|
| 100 |
if __name__ == "__main__":
|
|
|
|
| 101 |
app.run(host="0.0.0.0", port=7860)
|