diff --git a/app/store/delete_item.py b/app/store/delete_item.py new file mode 100644 index 0000000..36fb8c7 --- /dev/null +++ b/app/store/delete_item.py @@ -0,0 +1,8 @@ +from utils import database +def dltItem(ItemID): + db=database.Db() + print("You are deleting data for item id : {}".format(ItemID)) + query = ("DELETE FROM ItemRateChart WHERE ItemID=%s") + params=(ItemID, ) + return db.dlt(query,params) + \ No newline at end of file diff --git a/app/store/get_item.py b/app/store/get_item.py new file mode 100644 index 0000000..cbf1884 --- /dev/null +++ b/app/store/get_item.py @@ -0,0 +1,7 @@ +from utils import database + +def findItem(ItemID): + db= database.Db() + query=("SELECT * FROM ItemRateChart WHERE ItemID=%s") + params=(ItemID, ) + return db.select(query,params) diff --git a/app/store/get_table.py b/app/store/get_table.py new file mode 100644 index 0000000..b929b3d --- /dev/null +++ b/app/store/get_table.py @@ -0,0 +1,7 @@ +from utils import database + +def getTable(): + db= database.Db() + print("Request for table") + query=("SELECT * from ItemRateChart") + return db.getall(query) \ No newline at end of file diff --git a/app/store/post_item.py b/app/store/post_item.py new file mode 100644 index 0000000..201334f --- /dev/null +++ b/app/store/post_item.py @@ -0,0 +1,7 @@ +from utils import database + +def addItem(ItemName,ItemUnit,CurrentRate): + db=database.Db() + query=("INSERT INTO ItemRateChart (ItemName,ItemUnit,CurrentRate) VALUES(%s,%s,%s)") + params=(ItemName,ItemUnit,CurrentRate) + return db.insert(query, params) diff --git a/app/store/put_item.py b/app/store/put_item.py new file mode 100644 index 0000000..020d192 --- /dev/null +++ b/app/store/put_item.py @@ -0,0 +1,17 @@ +from utils import database + + +def updateInfo(ItemID,ItemName=None, ItemUnit=None, CurrentRate=None): + db= database.Db() + print("you are updating data for id : {}".format(ItemID)) + print(ItemName,ItemUnit,CurrentRate) + args={"ItemName" : ItemName,"ItemUnit" : ItemUnit,"CurrentRate": CurrentRate} + query="UPDATE ItemRateChart set " + params = () + for key in args: + if args[key]!= None: + query += key + "=" + "%s " + params += (args[key], ) + query += "WHERE ItemID=%s" + params += (ItemID,) + return db.update(query,params) diff --git a/app/store/store_routes.py b/app/store/store_routes.py new file mode 100644 index 0000000..9458b1b --- /dev/null +++ b/app/store/store_routes.py @@ -0,0 +1,57 @@ +from flask_restful import Resource +from utils import response +from store import get_item,post_item,put_item,delete_item,get_table +from flask import request +class Item(Resource): + + def get(self,ItemID): + key, data = get_item.findItem(ItemID) + if len(data) == 0: + return response.styler(404) + itemdetails = dict(zip(key,data[0])) + return itemdetails + + def post(self): + ItemName= request.form["ItemName"] + ItemUnit= request.form["ItemUnit"] + CurrentRate= request.form["CurrentRate"] + err=post_item.addItem(ItemName,ItemUnit,CurrentRate) + if err != True: + return response.styler(200,{"ItemID": err}) + return response.styler(400) + + def put(self,ItemID): + ItemName, ItemUnit, CurrentRate = None, None, None + if request.form.get('ItemName', None): + ItemName = request.form['ItemName'] + if request.form.get('ItemUnit', None): + ItemUnit = request.form['ItemUnit'] + if request.form.get('CurrentRate', None): + CurrentRate = request.form["CurrentRate"] + print("The values are , {} , {} , {}".format(ItemName, ItemUnit, + CurrentRate)) + err = put_item.updateInfo(ItemID,ItemName, ItemUnit, CurrentRate) + if err!=True: + return response.styler(203) + return response.styler(400) + + def delete(self,ItemID): + + err=delete_item.dltItem(ItemID) + print(err) + if err!= "failed" and err!=0: + return response.styler(203) + + return response.styler(400) + + +class Table(Resource): + def get(self): + key,data= get_table.getTable() + if len(data)==0: + return response.styler(404) + a=[] + for i in range(len(data)): + d= dict(zip(key,data[i])) + a.append(d) + return (a) \ No newline at end of file diff --git a/routes.py b/routes.py index 36e5cb0..1dab5f5 100644 --- a/routes.py +++ b/routes.py @@ -1,8 +1,13 @@ from flask import Flask from flask_restful import Resource, Api from user import user_routes +from store import store_routes app = Flask(__name__) api = Api(app) api.add_resource(user_routes.User, '/user/') +api.add_resource(store_routes.Table,'/store', endpoint="Table") + +api.add_resource(store_routes.Item,'/store/',endpoint= "Item") +api.add_resource(store_routes.Item,'/store', endpoint="addItem") diff --git a/utils/database.py b/utils/database.py index 9c52895..e512971 100644 --- a/utils/database.py +++ b/utils/database.py @@ -29,4 +29,31 @@ def insert(self,query,params): return True self.mariadb_connection.commit() return self.cursor.lastrowid - \ No newline at end of file + + def update(self,query,params): + try: + self.cursor.execute(query,params) + print(self.cursor.rowcount, "record updated") + except mariadb.Error as error: + print("Error: {}".format(error)) + return True + self.mariadb_connection.commit() + return ("successful") + + def dlt(self,query,params): + try: + self.cursor.execute(query,params) + print(self.cursor.rowcount, "row deleted") + except mariadb.Error as error: + print("Error: {}".format(error)) + return ("failed") + self.mariadb_connection.commit() + return (self.cursor.rowcount) + + def getall(self,query): + try: + self.cursor.execute(query) + except mariadb.Error as error: + print("Error: {}".format(error)) + return "" + return self.cursor.column_names, self.cursor.fetchall() diff --git a/utils/response.py b/utils/response.py index 628a75e..ad11298 100644 --- a/utils/response.py +++ b/utils/response.py @@ -1,13 +1,13 @@ from flask import jsonify, make_response -msg = {404 : "Not Found", - 401 : "Unauthorized", - 400:"Bad Request", - 204:"Request Successful"} +msg = {401 : "Unauthorized", + 203 : "Request Successful", + 400 : "Bad Request", + 404 : "Not Found"} def styler (status,body = None): if (status in msg.keys()): - body = {"body" : msg[status]} + body = {"body": msg[status]} return make_response(jsonify(body),status) body = {"body": body} return make_response(jsonify(body), status)