aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNavan Chauhan <navanchauhan@gmail.com>2020-07-12 21:37:37 +0530
committerNavan Chauhan <navanchauhan@gmail.com>2020-07-12 21:37:37 +0530
commit24f7dd79a66769b7a72970f17aee8f2afac580de (patch)
tree07dfae18b318a8ad5f78a602f0252fd8f826ce14
parent9cfcd4e9e135e4e0c5d6818e86e6ddecf74188af (diff)
Added v1 API
-rw-r--r--Procfile3
-rw-r--r--api.py40
-rw-r--r--app/__init__.py2
-rw-r--r--requirements.txt1
4 files changed, 44 insertions, 2 deletions
diff --git a/Procfile b/Procfile
index 2ac01f7..a3e8f20 100644
--- a/Procfile
+++ b/Procfile
@@ -1 +1,2 @@
-web: gunicorn -w 4 -b "0.0.0.0:$PORT" app:app \ No newline at end of file
+# web: gunicorn -w 4 -b "0.0.0.0:$PORT" app:app
+web: gunicorn -w 4 api:app -k uvicorn.workers.UvicornWorker -b "0.0.0.0:$PORT"
diff --git a/api.py b/api.py
new file mode 100644
index 0000000..436f6fe
--- /dev/null
+++ b/api.py
@@ -0,0 +1,40 @@
+from app import app as flask_app
+#app.run(debug=True, host="0.0.0.0", port=8080)
+
+from fastapi import Body,FastAPI
+from fastapi.middleware.wsgi import WSGIMiddleware
+from flask import Flask, escape, request
+from pydantic import BaseModel
+
+import mysql.connector as con
+mycon = con.connect(host=flask_app.config['DB_HOST'],user=flask_app.config['DB_USER'],password=flask_app.config['DB_PASSWORD'],port=flask_app.config['DB_PORT'],database=flask_app.config['DB_NAME'])
+mycursor = mycon.cursor()
+
+"""
+@flask_app.route("/")
+def flask_main():
+ name = request.args.get("name", "World")
+ return f"Hello, {escape(name)} from Flask!"
+"""
+
+app = FastAPI()
+
+
+@app.get("/v1")
+def API_Version():
+ return {"message":"Curie-API v1"}
+
+
+
+@app.get("/v1/status/{job_id}")
+def get_status(job_id: str):
+ sqlQuery = 'select id, protein_name, ligand_name, date, description, done from curieweb where id="%s"' % (job_id)
+ mycursor.execute(sqlQuery)
+ records = mycursor.fetchall()
+ if records == []:
+ return {"message":"Invalid Job ID"}
+ r = records[0]
+ return {"job_id":r[0],"Protein Name":r[1],"Ligand Name":r[2],"Submitted On":r[3],"Job Description":r[4],"Job Status":r[5]}
+
+
+app.mount("/", WSGIMiddleware(flask_app)) \ No newline at end of file
diff --git a/app/__init__.py b/app/__init__.py
index 95312c5..8c32ef4 100644
--- a/app/__init__.py
+++ b/app/__init__.py
@@ -3,7 +3,7 @@ from flask import Flask
# Config Values
# location where file uploads will be stored
UPLOAD_FOLDER = './app/static/uploads'
-DB_HOST = '192.168.1.6' #'navanspi.duckdns.org'
+DB_HOST = 'navanspi.duckdns.org' #'navanspi.duckdns.org'
DB_PORT = 3306
DB_USER = 'curieweb'
DB_PASSWORD = 'curie-web-russian-54'
diff --git a/requirements.txt b/requirements.txt
index 3c45d1a..1f17149 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -7,6 +7,7 @@ Jinja2==2.11.0
MarkupSafe==1.1.1
Werkzeug==0.16.1
WTForms==2.2.1
+fastapi==0.59.0
tabulate
untangle
mysql_connector