Example #1
0
 def deleteResource(self, resourceid):
     dao = ResourcesDAO()
     if not dao.getResourceById(resourceid):
         return jsonify(Error="Resource not found."), 404
     else:
         dao.delete(resourceid)
         return jsonify(DeleteStatus="OK"), 200
Example #2
0
 def getResourceById(self, rid):
     dao = ResourcesDAO()
     row = dao.getResourceById(rid)
     if not row:
         return jsonify(Error="Resource Not Found"), 404
     else:
         resource = Resource().build_dict_from_row(row)
         return jsonify(resource)
Example #3
0
 def getResourceById(self, resID):
     dao = ResourcesDAO()
     row = dao.getResourceById(resID)
     if not row:
         return jsonify(Error="User not found"), 404
     else:
         resource = self.build_resource_dict(row)
         return jsonify(Resource=resource)
Example #4
0
 def getResourceByID(self, resourceid):
     dao = ResourcesDAO()
     row = dao.getResourceById(resourceid)
     if not row:
         return jsonify(Error="Resource Not Found "), 404
     else:
         resource = self.build_resource_dict(row)
         return jsonify(Resource=resource)
 def getResourceById(self,r_id):
     dao = ResourcesDAO()
     row = dao.getResourceById(r_id)
     if not row:
         return jsonify(Eror = 'Resource Not Found'),404
     else:
         r = self.build_resource_dict(row)
     return jsonify(Resource=r)
Example #6
0
 def getResourceById(self, resourceID):
     dao = ResourcesDAO()
     resources_list = dao.getResourceById(resourceID)
     result_list = []
     for row in resources_list:
         result = self.build_resourceInfoByID_dict(row)
         result_list.append(result)
     return jsonify(Resource=result_list)
Example #7
0
 def updateResource(self, rid, form):
     dao = ResourcesDAO()
     if not dao.getResourceById(rid):
         return jsonify(Error="User not found."), 404
     else:
         if len(form) != 2:
             return jsonify(Error="Malformed update request"), 400
         else:
             rname = form['rname']
             catid = form['catid']
             if rname and catid:
                 rid = dao.update(rid, rname, catid)
                 result = Resource().build_dict_from_row(
                     dao.getResourceById(rid))
                 return jsonify(result), 201
             else:
                 return jsonify(
                     Error="Unexpected attributes in put request"), 400
Example #8
0
    def insertRequest(self, form, nid):
        # New Resource
        if len(form) == 3:
            rname = form['rname']
            catid = form['catid']
            qty = form['qty']
            if rname and catid and qty:
                dao = ResourcesDAO()
                resource = dao.getResourcesByRname(rname)
                if not resource:
                    dao2 = CategoriesDAO()
                    if not dao2.getCategoryById(catid):
                        return jsonify(Error="Category Not Found"), 404
                    rid = dao.insert(rname, catid)
                else:
                    rid = (resource[0])[0]

                dao = ResourceRequestsDAO()
                req_id = dao.insertRequest(nid)

                dao3 = ResourceRequestDetailsDAO()
                dao3.insertRequestDetails(req_id, rid, qty)

                table = dao.getRequestByIdWithDetails(req_id)

                if not table:
                    return jsonify(Error="Request Not Found"), 404
                else:
                    print(table)
                    result = ResourceRequest().build_dict_from_table_details(
                        table)
                    return jsonify(result)
        elif len(form) != 2:
            return jsonify(Error="Malformed post request"), 400
        else:
            # Existing Resource
            rid = form['rid']
            qty = form['qty']

            if rid and qty:
                dao = ResourcesDAO()
                if not dao.getResourceById(rid):
                    return jsonify(Error="Resource Not Found"), 404

                dao2 = ResourceRequestsDAO()
                reqid = dao2.insertRequest(nid)
                dao3 = ResourceRequestDetailsDAO()
                dao3.insertRequestDetails(reqid, rid, qty)

                result = ResourceRequest().build_dict_from_row_resource(
                    dao2.getRequestByIdWithDetails2(reqid))
                return jsonify(result), 201
            else:
                return jsonify(
                    Error="Unexpected attributes in post request"), 400
Example #9
0
 def updateResourcePrice(self, form):
     market_price = form['market_price']
     resourceid = form['resourceID']
     if form and len(form) < 2:
         return jsonify(Error="Malformed post request"), 400
     dao = ResourcesDAO()
     if not dao.getResourceById(resourceid):
         return jsonify(Error="Resource not found."), 404
     else:
         dao.updateResourcePrice(resourceid, market_price)
         return self.getAllResourcesInfo()
    def getSuppliersByResourceId(self,r_id):
        dao = ResourcesDAO()
        resource = dao.getResourceById(r_id)
        if not resource:
            return jsonify(Error="Resource Not Found"), 404

        result_list = []
        supplier_list = dao.getSupplierByResourceId(r_id)
        for row in supplier_list:
            result = self.build_supplier_dict(row)
            result_list.append(result)
        return jsonify(SupplierByResourcesID=result_list)
Example #11
0
 def updateResource(self, resourceid, form):
     dao = ResourcesDAO()
     if not dao.getResourceById(resourceid):
         return jsonify(Error="Resource not found."), 404
     else:
         if len(form) != 4:
             return jsonify(Error="Malformed update request")
         else:
             resourcename = form['resourcename']
             resourceprice = form['resourceprice']
             resourcequantity = form['resourcequantity']
             supplierid = form['supplierid']
             if resourcename and resourceprice and resourcequantity and supplierid:
                 dao.update(resourceid, resourcename, resourceprice, resourcequantity, supplierid)
                 result = self.build_resource_attributes(resourceid, resourcename, resourceprice,
                                                         resourcequantity, supplierid)
                 return jsonify(Resource=result), 400
             else:
                 return jsonify(Error="Unexpected attributes in update request"), 400
Example #12
0
    def insertResource(self, form):
        if len(form) != 2:
            return jsonify(Error="Malformed post request"), 400
        else:
            rname = form['rname']
            catid = form['catId']
            if rname and catid:
                dao = ResourcesDAO()
                catDao = CategoriesDAO()

                category = catDao.getCategoryById(catid)
                if not category:
                    return jsonify(Error="Category not found!"), 400

                rid = dao.insert(rname, catid)
                result = Resource().build_dict_from_row(
                    dao.getResourceById(rid))
                return jsonify(Resource=result), 201
            else:
                return jsonify(
                    Error="Unepected attributes in post request"), 400
Example #13
0
    def updateRequestDetailsByReqId(self, form, req_id):
        if len(form) == 2:
            rid = form['rid']
            qty = form['qty']

            if rid and qty:

                rdao = ResourcesDAO()
                if not rdao.getResourceById(rid):
                    return jsonify(Error="Resource Not Found"), 404

                rrdao = ResourceRequestsDAO()
                if not rrdao.getRequestByIdWithDetails(req_id):
                    return jsonify(Error="Request Not Found"), 404

                rrddao = ResourceRequestDetailsDAO()
                if not rrddao.getRequestDetailsById(req_id, rid):
                    return jsonify(Error="Request Detail Not Found"), 404

                if rrddao.getRequestDetailsById(req_id, rid)[3]:
                    return jsonify(Error="Request Detail was Fulfilled"), 400

                rrddao.update(req_id, rid, qty, None)
                #FIX HEREEEE
                result = ResourceRequest().build_dict_from_table_no_nid(
                    rrdao.getRequestByIdWithDetailsNoReq(req_id))
                return jsonify(result), 201
            else:
                return jsonify(
                    Error="Unexpected Attributes in Put Request"), 400
        elif len(form) != 3:
            return jsonify("Malformed Put Request"), 400
        else:
            rid = form['rid']
            qty = form['qty']
            date = form['f_date']

            if rid and qty and date:
                rdao = ResourcesDAO()
                if not rdao.getResourceById(rid):
                    return jsonify(Error="Resource Not Found"), 404

                rrdao = ResourceRequestsDAO()
                if not rrdao.getRequestByIdWithDetails2(req_id):
                    return jsonify(Error="Request Not Found"), 404

                rrddao = ResourceRequestDetailsDAO()
                if not rrddao.getRequestDetailsById(req_id, rid):
                    return jsonify(Error="Request Detail Not Found"), 404

                if rrddao.getRequestDetailsById(req_id, rid)[3]:
                    return jsonify(Error="Request Detail was Fulfilled"), 400

                rrddao.update(req_id, rid, qty, date)
                result_list = rrdao.getRequestByIdWithDetails2(req_id)
                table = []

                #FIX HEREEEEE
                result = ResourceRequest().build_dict_from_table_no_nid(
                    rrdao.getRequestByIdWithDetails(req_id))
                return jsonify(result), 201

            else:
                return jsonify(
                    Error="Unexpected Attributes in Put Request"), 400
Example #14
0
    def searchResources(self, args):
        rid = args.get('rid')
        rname = args.get('rname')
        rtype = args.get('rtype')
        buy_free = args.get('buy_free')
        ccid = args.get('ccid')
        marketprice = args.get('marketprice')
        qty = args.get('qty')

        dao = ResourcesDAO()

        if (len(args) == 1) and rid:
            resources_list = dao.getResourceById(rid)
            result_list = []
            for row in resources_list:
                result = self.build_resourcesInf_dict(row)
                result_list.append(result)
            return jsonify(Resource=result_list)


        elif (len(args) == 1) and rname:
            resources_list = dao.getResourceInfoByName(rname)
            result_list = []
            for row in resources_list:
                result = self.build_resourcesInf_dict(row)
                result_list.append(result)
            return jsonify(Resource=result_list)

        elif (len(args) == 1) and rtype:
            resources_list = dao.getResourceInfoByType(rtype)
            result_list = []
            for row in resources_list:
                result = self.build_resourcesInf_dict(row)
                result_list.append(result)
            return jsonify(Resource=result_list)

        elif (len(args) == 1) and buy_free:
            resources_list = dao.getResourceInfoByBF(buy_free)
            result_list = []
            for row in resources_list:
                result = self.build_resourcesInf_dict(row)
                result_list.append(result)
            return jsonify(Resource=result_list)

        elif (len(args) == 1) and ccid:
            resources_list = dao.getResourceByCollectionCenterID(ccid)
            result_list = []
            for row in resources_list:
                result = self.build_resourcesInf_dict(row)
                result_list.append(result)
            return jsonify(Resource=result_list)

        elif (len(args) == 1) and marketprice:
            resources_list = dao.getResourceByMarketPrice(marketprice)
            result_list = []
            for row in resources_list:
                result = self.build_resourcesInf_dict(row)
                result_list.append(result)
            return jsonify(Resource=result_list)

        elif (len(args) == 1) and qty:
            resources_list = dao.getResourceByQty(qty)
            result_list = []
            for row in resources_list:
                result = self.build_resourcesInf_dict(row)
                result_list.append(result)
            return jsonify(Resource=result_list)


        else:
            return jsonify(Error="Malformed query string"), 400
        result_list = []
        for row in resources_list:
            result = self.build_resources_dict(row)
            result_list.append(result)
        return jsonify(Resource=result_list)
Example #15
0
    def insertAvailabilityAnnouncementbySID(
            self, form,
            sid):  #added by herbert for post announcements by supplier
        print(len(form))
        if len(form) == 3:
            rid = form['rid']
            qty = form['qty']
            priceattime = form['priceattime']
            #rm['date'] #DATE has yet to be added to documentation

            if rid and qty and priceattime:

                dao = ResourcesDAO()
                if not dao.getResourceById(rid):
                    return jsonify(Error="Resource not found"), 404

                dao = AvailabilityAnnouncementsDAO()
                ann_id = dao.insertAvailabilityAnnouncement(sid)

                dao = StocksDAO()
                if not dao.getStockById(rid, sid):
                    #add t
                    # o stock if doesnt exist
                    dao.insertStock(rid, sid, qty, priceattime)
                else:
                    astock = dao.getStockById(rid, sid)
                    newqty = astock[11] + qty
                    dao.updateStock(rid, sid, newqty, priceattime)
                    #increase number of items in stock by qty. of each damn item. shit.
                #dao = SuppliersDAO() # do I even need this one?
                #dao2 = AvailabilityAnnouncementsDAO()
                dao = AvailabilityAnnoucementDetailsDAO()
                dao.insertAvailabilityAnnouncementDetails(
                    ann_id, rid, qty,
                    priceattime)  #do a loop to add all the fields
                dao = AvailabilityAnnouncementsDAO()
                table = dao.getAnnouncementByIdWithDetails(ann_id)
                if not table:
                    return jsonify(
                        Error="Availability Announcement Not Found"), 404
                else:
                    result = AvailabilityAnnouncement(
                    ).build_dict_from_table_details(table)
                    return jsonify(result)
            else:
                return jsonify(
                    Error="Unexpected attributes in post request"), 400
        elif len(form) != 4:
            return jsonify(Error="Malformed post request"), 400
        else:
            rname = form['rname']
            catid = form['catid']
            qty = form['qty']
            priceattime = form['priceattime']
            rid = None
            if rname and catid and qty and priceattime:
                dao2 = CategoriesDAO()
                dao = ResourcesDAO()
                resource = dao.getResourcesByRname(rname)
                if not resource:
                    if not dao2.getCategoryById(catid):
                        return jsonify(Error="Category not found")
                    rid = dao.insert(rname, catid)
                else:
                    rid = (resource[0])[0]
                    print(rid)
                dao = AvailabilityAnnouncementsDAO()
                ann_id = dao.insertAvailabilityAnnouncement(sid)

                dao = StocksDAO()
                if not dao.getStockById(rid, sid):
                    # add t
                    # o stock if doesnt exist
                    dao.insertStock(rid, sid, qty, priceattime)
                else:
                    astock = dao.getStockById(rid, sid)
                    newqty = astock[11] + qty
                    dao.updateStock(rid, sid, newqty, priceattime)
                    # increase number of items in stock by qty. of each damn item. shit.
                # dao = SuppliersDAO() # do I even need this one?
                # dao2 = AvailabilityAnnouncementsDAO()
                dao = AvailabilityAnnoucementDetailsDAO()
                dao.insertAvailabilityAnnouncementDetails(
                    ann_id, rid, qty,
                    priceattime)  # do a loop to add all the fields
                dao = AvailabilityAnnouncementsDAO()
                table = dao.getAnnouncementByIdWithDetails(ann_id)
                if not table:
                    return jsonify(
                        Error="Availability Announcement Not Found"), 404
                else:
                    result = AvailabilityAnnouncement(
                    ).build_dict_from_table_details(table)
                    return jsonify(result)

            else:
                return jsonify(
                    Error="Unexpected attributes in post request"), 400
Example #16
0
    def insertRequestDetailsByReqId(self, form, req_id):

        # Existing Resource
        if 2 == len(form):
            rid = form['rid']
            qty = form['qty']

            if rid and qty:
                dao = ResourcesDAO()
                if not dao.getResourceById(rid):
                    return jsonify(Error="Resource Not Found"), 404

                dao2 = ResourceRequestsDAO()
                request = dao2.getRequestByIdWithDetails(req_id)
                if not request:
                    return jsonify(Error="Request Not Found"), 404
                else:
                    nid = request[0]

                dao3 = ResourceRequestDetailsDAO()
                if not dao3.getRequestDetailsById(req_id, rid):
                    dao3.insertRequestDetails(req_id, rid, qty)
                else:
                    return jsonify(Error="Duplicate Primary Key"), 400

                table = dao2.getRequestByIdWithDetails2(req_id)
                if not table:
                    return jsonify(Error="Resource Request Not Found"), 404
                else:
                    result = ResourceRequest().build_dict_from_row_resource(
                        table)
                    return jsonify(result)
        elif len(form) != 3:
            return jsonify(Error="Malformed Post Request"), 400

        # New Resource
        else:
            rname = form['rname']
            catid = form['catid']
            qty = form['qty']
            if rname and catid and qty:
                dao = ResourcesDAO()
                dao2 = CategoriesDAO()

                # Check if resource exists
                resource = dao.getResourcesByRname(rname)
                if not resource:
                    # Create new resource
                    if not dao2.getCategoryById(catid):
                        return jsonify(Error="Category Not Found"), 404
                    rid = dao.insert(rname, catid)
                else:
                    rid = (resource[0])[0]

                dao3 = ResourceRequestsDAO()
                request = dao3.getRequestByIdWithDetails(req_id)
                if not request or not request[0]:
                    return jsonify(Error="Request Not Found"), 404
                else:
                    nid = request[0][2]
                dao4 = ResourceRequestDetailsDAO()
                if not dao4.getRequestDetailsById(req_id, rid):
                    dao4.insertRequestDetails(req_id, rid, qty)
                else:
                    return jsonify(Error="Duplicate Primary Key"), 400

                table = dao3.getRequestByIdWithDetails(req_id)
                if not table:
                    return jsonify(Error="Request Not Found"), 404
                else:
                    result = ResourceRequest().build_dict_from_table_details(
                        table)
                    return jsonify(result)
            else:
                return jsonify(Error="Malformed Post Request"), 400
 def updateResource(self, r_id, form):
     dao = ResourcesDAO()
     if not dao.getResourceById(r_id):
         return jsonify(Error="Resource not found."), 404
     else:
         if len(form) < 5 or len(form) > 8:
             return jsonify(Error="Malformed pst Request"), 400
         else:
             r_type = form['r_type']
             r_quantity = form['r_quantity']
             r_location = form['r_location']
             r_price = form['r_price']
             r_availability = form['r_availability']
             if r_type and r_quantity and r_location and r_price and r_availability:
                 if 'water' in r_type:
                     water_type = form['water_type']
                     measurement_unit = form['measurement_unit']
                     dao.updateResource(r_id, r_type, r_quantity, r_location, r_price,r_availability)
                     dao.updateWater(water_type, measurement_unit, r_id)
                     result={}
                     result['r_id'] = r_id
                     result['r_type'] = r_type
                     result['r_quantity'] = r_quantity
                     result['r_location'] = r_location
                     result['r_price'] = r_price
                     result['r_availability'] = r_availability
                     result['water_type'] = water_type
                     result['measurement_unit'] = measurement_unit
                     return jsonify(Water=result), 200
                 if 'fuel' in r_type:
                     fuel_type = form['fuel_type']
                     fuel_octane_rating = form['fuel_octane_rating']
                     dao.updateResource(r_id, r_type, r_quantity, r_location, r_price,r_availability)
                     dao.updateFuel( fuel_type, fuel_octane_rating, r_id)
                     result = {}
                     result['r_id'] = r_id
                     result['r_type'] = r_type
                     result['r_quantity'] = r_quantity
                     result['r_location'] = r_location
                     result['r_price'] = r_price
                     result['r_availability'] = r_availability
                     result['fuel_type'] = fuel_type
                     result['fuel_octane_rating'] = fuel_octane_rating
                     return jsonify(Fuel=result), 200
                 if 'food' in r_type:
                     food_type = form['food_type']
                     dao.updateResource(r_id, r_type, r_quantity, r_location, r_price,r_availability)
                     dao.updateFood(food_type, r_id)
                     result = {}
                     result['r_id'] = r_id
                     result['r_type'] = r_type
                     result['r_quantity'] = r_quantity
                     result['r_location'] = r_location
                     result['r_price'] = r_price
                     result['r_availability'] = r_availability
                     result['food_type'] = food_type
                     return jsonify(Food=result), 200
                 if 'battery' in r_type:
                     batt_type = form['batt_type']
                     batt_volts = form['batt_volts']
                     dao.updateResource(r_id, r_type, r_quantity, r_location, r_price,r_availability)
                     dao.updateBattery(batt_type, batt_volts, r_id)
                     result = {}
                     result['r_id'] = r_id
                     result['r_type'] = r_type
                     result['r_quantity'] = r_quantity
                     result['r_location'] = r_location
                     result['r_price'] = r_price
                     result['r_availability'] = r_availability
                     result['batt_type'] = batt_type
                     result['batt_volts'] = batt_volts
                     return jsonify(Battery=result), 200
                 if 'generator' in r_type:
                     g_brand = form['g_brand']
                     g_fuel_type = form['g_fuel_type']
                     g_power = form['g_power']
                     dao.updateResource(r_id, r_type, r_quantity, r_location, r_price,r_availability)
                     dao.updateGenerator(g_brand,g_fuel_type, g_power, r_id)
                     result = {}
                     result['r_id'] = r_id
                     result['r_type'] = r_type
                     result['r_quantity'] = r_quantity
                     result['r_location'] = r_location
                     result['r_price'] = r_price
                     result['r_availability'] = r_availability
                     result['g_brand'] = g_brand
                     result['g_fuel_type'] = g_fuel_type
                     result['g_power'] = g_power
                     return jsonify(Generator=result), 200
                 else:
                     dao.updateResource(r_id,r_type, r_quantity, r_location, r_price, r_availability)
                     result = {}
                     result['r_id'] = r_id
                     result['r_type'] = r_type
                     result['r_quantity'] = r_quantity
                     result['r_location'] = r_location
                     result['r_price'] = r_price
                     result['r_availability'] = r_availability
                     return jsonify(Resource=result), 200
             else:
                 return jsonify(Error="Unexpected attributes in update request"), 400