scan-barcode / app.py
Xinqi04
baru
04eb69e
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 ---
@app.route("/barcodes", methods=["POST"])
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 ---
@app.route("/barcodes", methods=["GET"])
def get_barcodes():
result = supabase.table(TABLE_NAME).select("*").execute()
return jsonify(result.data), 200
# --- READ One Barcode by Code ---
@app.route("/barcodes/<code>", methods=["GET"])
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 ---
@app.route("/barcodes/<code>", methods=["PUT"])
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 ---
@app.route("/barcodes/<code>", methods=["DELETE"])
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 ---
@app.route("/", methods=["GET"])
def home():
return "Barcode API is running"
if __name__ == "__main__":
app.run(host="0.0.0.0", port=7860)