diff --git a/api/app/__init__.py b/api/app/__init__.py index 74c2126..5ca7f40 100644 --- a/api/app/__init__.py +++ b/api/app/__init__.py @@ -6,12 +6,9 @@ app = Flask(__name__) -# Import credentials module -from app import creds - # import endpoint packages from app import test from app import tool from app import index from app.admin.members import members -from app import vend \ No newline at end of file +#from app import vend \ No newline at end of file diff --git a/api/app/admin/members/members.py b/api/app/admin/members/members.py index 97c930c..526f66f 100644 --- a/api/app/admin/members/members.py +++ b/api/app/admin/members/members.py @@ -1,54 +1,26 @@ from app import app import sqlalchemy -import urllib.parse from flask import jsonify, request -import db -from app.creds import db_password, DEVICE, DEVICE_KEY - -#? is there a way for use to move this out of this file? -# I think a lot of files will be using this data along with the `url` var and db connection. -# can we do this in __init__.py? -user = "access" -host = "honeycomb.at.hive13.org" -dbname = "door" -driver = "pg8000" - -# designate url -# format is: dialect+driver://username:password@host:port/database -url = "postgresql+{}://{}:{}@{}/{}".format( - driver, - user, - urllib.parse.quote_plus(db_password), - host, - dbname, -) - -# create sqlalchemy engine -# ? Should echo be True here? -engine = sqlalchemy.create_engine(url, echo=True) - -# Bind to engine & connect (comment out for dev outisde of hive): -db.metadata.bind = engine -conn = engine.connect() +from db import db_conn # member profile -@app.route('/api/admin/members/profile/', methods=['GET', 'POST']) +@app.route('/api/admin/members/profile', methods=['GET', 'POST']) def members(): req_data = request.get_json() member_id = req_data['member_id'] # build query, execute on get request - s = sqlalchemy.text("""SELECT * - FROM members + s = sqlalchemy.text("""SELECT lname, fname, phone, created_at + FROM public.members WHERE member_id = :x """) # try to execute the query, except when it returns an error. try: - result = conn.execute(s, x=str(member_id)) + result = db_conn.execute(s, x=str(member_id)) rows = [dict(row) for row in result] return jsonify(rows) - except: - error_message = [{"result": 0, "message": "Invalid Member ID"}] + except Exception as ex: + error_message = [{"result": 0, "message": str(ex)}] return jsonify(error_message) diff --git a/api/app/config.py b/api/app/config.py new file mode 100644 index 0000000..21b3ce1 --- /dev/null +++ b/api/app/config.py @@ -0,0 +1,4 @@ +db_host = 'honeycomb.at.hive13.org' +db_user = 'access' +db_name = 'door' +db_driver = 'pg8000' \ No newline at end of file diff --git a/api/db/__init__.py b/api/db/__init__.py new file mode 100644 index 0000000..862c4ca --- /dev/null +++ b/api/db/__init__.py @@ -0,0 +1,23 @@ +# Import global config +from db import config + +# Import credentials module +from app import creds + +# Initialize database +import sqlalchemy +from db import db +import urllib + +db_url = "postgresql+{}://{}:{}@{}/{}".format( + config.db_driver, + config.db_user, + urllib.parse.quote_plus(creds.db_password), + config.db_host, + config.db_name, +) + +db_engine = sqlalchemy.create_engine(db_url, echo=True) + +db.metadata.bind = db_engine +db_conn = db_engine.connect() \ No newline at end of file diff --git a/api/db/config.py b/api/db/config.py new file mode 100644 index 0000000..21b3ce1 --- /dev/null +++ b/api/db/config.py @@ -0,0 +1,4 @@ +db_host = 'honeycomb.at.hive13.org' +db_user = 'access' +db_name = 'door' +db_driver = 'pg8000' \ No newline at end of file diff --git a/api/db.py b/api/db/db.py similarity index 100% rename from api/db.py rename to api/db/db.py