def deleteResource(self, rid):
     dao = ResourcesDAO()
     if not dao.getResourceById(rid):
         return jsonify(Error="Resource not found."), 404
     else:
         dao.delete(rid)
         return jsonify(DeleteStatus="OK"), 200
 def getResourceById(self, rid):
     dao = ResourcesDAO()
     row = dao.getResourcesById(rid)
     if not row:
         return jsonify(Error="Resource Not Found"), 404
     else:
         resource = self.build_resource_dict(row)
         return jsonify(Resource=resource)
 def getAllResources(self):
     dao = ResourcesDAO()
     resources_list = dao.getAllResources()
     result_list = []
     for row in resources_list:
         result = self.build_resource_dict(row)
         result_list.append(result)
     return jsonify(Resources=result_list)
 def getSuppliersByResourceId(self, rid):
     dao = ResourcesDAO()
     if not dao.getResourceById(rid):
         return jsonify(Error="Resource Not Found"), 404
     suppliers_list = dao.getSuppliersByResourceId(rid)
     result_list = []
     for row in suppliers_list:
         result = self.build_supplier_dict(row)
         result_list.append(result)
     return jsonify(Suppliers=result_list)
 def insertResourceBySupplierIdJson(self, rid, json):
     sid = json['sid']
     resv_amount = json['resv_amount']
     cost = json['cost']
     rname = json['rname']
     if rname and resv_amount and cost and sid:
         dao = ResourcesDAO()
         r = dao.insert(rid, sid, rname, cost, resv_amount)
         if r:
             result = self.build_resource_attributes(
                 rid, sid, rname, cost, resv_amount)
             return jsonify(Resource=result), 201
         else:
             return jsonify(
                 Error="Resource not found or invalid supplier id."), 404
     else:
         return jsonify(Error="Unexpected attributes in post request"), 400
 def insertResourcesJson(self, form):
     print("form: ", form)
     if len(form) != 4:
         return jsonify(Error="Malformed post request"), 400
     else:
         sid = form['sid']
         resv_amount = form['resv_amount']
         cost = form['cost']
         rname = form['rname']
         if rname and resv_amount and cost and sid:
             dao = ResourcesDAO()
             rid = dao.insert(sid, rname, cost, resv_amount)
             result = self.build_resource_attributes(
                 rid, sid, rname, cost, resv_amount)
             return jsonify(Resource=result), 201
         else:
             return jsonify(
                 Error="Unexpected attributes in post request"), 400
 def searchResources(self, args):  #Fixed
     name = args.get("name")
     cost = args.get("cost")
     dao = ResourcesDAO()
     resources_list = []
     if (len(args) == 2) and name and cost:
         resources_list = dao.getResourcesByNameAndCost(name, cost)
     elif (len(args) == 1) and name:
         resources_list = dao.getResourcesByName(name)
     elif (len(args) == 1) and cost:
         resources_list = dao.getResourcesByCost(cost)
     else:
         return jsonify(Error="Malformed query string"), 400
     result_list = []
     for row in resources_list:
         result = self.build_resource_dict(row)
         result_list.append(result)
     return jsonify(Resources=result_list)
 def updateResource(self, rid, form):
     dao = ResourcesDAO()
     if not dao.getResourceById(rid):
         return jsonify(Error="Resource not found."), 404
     else:
         if len(form) != 4:
             return jsonify(Error="Malformed update request"), 400
         else:
             sid = form['sid']
             resv_amount = form['resv_amount']
             cost = form['cost']
             rname = form['rname']
             if rname and resv_amount and cost and sid:
                 dao.update(rid, sid, rname, cost, resv_amount)
                 result = self.build_resource_attributes(
                     rid, sid, rname, cost, resv_amount)
                 return jsonify(Resource=result), 200
             else:
                 return jsonify(
                     Error="Unexpected attributes in update request"), 400
 def getCountByResourceId(self):
     dao = ResourcesDAO()
     result = dao.getCountByResourceId()
     # print(self.build_resource_counts(result))
     return jsonify(ResourceCounts=self.build_resource_counts(result)), 200