zkt26/sk1/backend/app.py
2026-05-12 21:49:32 +02:00

112 lines
1.9 KiB
Python

from flask import Flask, request, jsonify, send_from_directory
from flask_cors import CORS
import os
import psycopg2
app = Flask(__name__)
CORS(app)
UPLOAD_FOLDER = "uploads"
os.makedirs(UPLOAD_FOLDER, exist_ok=True)
shared_notes = []
# PostgreSQL connection
conn = psycopg2.connect(
host="postgres",
database="smartshare",
user="postgres",
password=os.getenv("DB_PASSWORD")
)
@app.route('/')
def home():
return jsonify({
"message": "Backend is running"
})
@app.route('/upload', methods=['POST'])
def upload_file():
if 'file' not in request.files:
return jsonify({
"error": "No file uploaded"
}), 400
file = request.files['file']
if file.filename == '':
return jsonify({
"error": "Empty filename"
}), 400
filepath = os.path.join(
UPLOAD_FOLDER,
file.filename
)
file.save(filepath)
return jsonify({
"message": "File uploaded successfully"
})
@app.route('/files', methods=['GET'])
def list_files():
files = os.listdir(UPLOAD_FOLDER)
return jsonify(files)
@app.route('/download/<filename>', methods=['GET'])
def download_file(filename):
return send_from_directory(
UPLOAD_FOLDER,
filename,
as_attachment=True
)
@app.route('/db-test', methods=['GET'])
def db_test():
cur = conn.cursor()
cur.execute("SELECT version();")
version = cur.fetchone()
cur.close()
return jsonify({
"database": "connected",
"postgres_version": version[0]
})
@app.route('/notes', methods=['GET'])
def get_notes():
return jsonify(shared_notes)
@app.route('/notes', methods=['POST'])
def add_note():
data = request.json
note = {
"text": data.get("text")
}
shared_notes.append(note)
return jsonify({
"message": "Note added"
})
if __name__ == "__main__":
app.run(
host="0.0.0.0",
port=5000
)