112 lines
1.9 KiB
Python
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
|
|
)
|