Spaces:
Sleeping
Sleeping
| from flask import Flask, request, jsonify | |
| from supabase import create_client, Client | |
| from dotenv import load_dotenv | |
| import os | |
| load_dotenv() | |
| app = Flask(__name__) | |
| SUPABASE_URL = os.getenv("SUPABASE_URL") | |
| SUPABASE_KEY = os.getenv("SUPABASE_KEY") | |
| supabase: Client = create_client(SUPABASE_URL, SUPABASE_KEY) | |
| TABLE_NAME = "barcodes" | |
| # --- CREATE Barcode --- | |
| def create_barcode(): | |
| data = request.json | |
| name = data.get("name") | |
| code = data.get("code") | |
| price = data.get("price") | |
| if not all([name, code, price]): | |
| return jsonify({"error": "Missing fields"}), 400 | |
| result = supabase.table(TABLE_NAME).insert({ | |
| "name": name, | |
| "code": code, | |
| "price": price | |
| }).execute() | |
| return jsonify(result.data), 201 | |
| # --- READ All Barcodes --- | |
| def get_barcodes(): | |
| result = supabase.table(TABLE_NAME).select("*").execute() | |
| return jsonify(result.data), 200 | |
| # --- READ One Barcode by Code --- | |
| def get_barcode(code): | |
| result = supabase.table(TABLE_NAME).select("*").eq("code", code).execute() | |
| if not result.data: | |
| return jsonify({"error": "Barcode not found"}), 404 | |
| return jsonify(result.data[0]), 200 | |
| # --- UPDATE Barcode --- | |
| def update_barcode(code): | |
| data = request.json | |
| result = supabase.table(TABLE_NAME).update(data).eq("code", code).execute() | |
| if not result.data: | |
| return jsonify({"error": "Barcode not found"}), 404 | |
| return jsonify(result.data[0]), 200 | |
| # --- DELETE Barcode --- | |
| def delete_barcode(code): | |
| result = supabase.table(TABLE_NAME).delete().eq("code", code).execute() | |
| if not result.data: | |
| return jsonify({"error": "Barcode not found"}), 404 | |
| return jsonify({"message": "Deleted successfully"}), 200 | |
| # --- Root Route for Testing --- | |
| def home(): | |
| return "Barcode API is running" | |
| if __name__ == "__main__": | |
| app.run(host="0.0.0.0", port=7860) | |