def populateLogisticsParameters(request, parameters={}, version="0"): parameters = getPaginationParameters(request, parameters, 10, version) parameters = populateAllUserIDParameters(request, parameters, version) pincodeCode = request.GET.get("pincode_code", "") if pincodeCode != "" and pincodeCode != None: parameters["pincodesCodesArr"] = getArrFromString(pincodeCode) pincodeID = request.GET.get("pincodeID", "") if pincodeID != "" and pincodeID != None: parameters["pincodesArr"] = getArrFromString(pincodeID) logisticsPartnerID = request.GET.get("logisticspartnerID", "") if logisticsPartnerID != "" and logisticsPartnerID != None: parameters["logisticsPartnersArr"] = getArrFromString( logisticsPartnerID) regularDeliveryAvailable = request.GET.get("regular_delivery_available", "") if validate_bool(regularDeliveryAvailable): parameters["regular_delivery_available"] = int( regularDeliveryAvailable) regularPickupAvailable = request.GET.get("regular_pickup_available", "") if validate_bool(regularPickupAvailable): parameters["regular_pickup_available"] = int(regularPickupAvailable) codAvailable = request.GET.get("cod_available", "") if validate_bool(codAvailable): parameters["cod_available"] = int(codAvailable) return parameters
def populateBuyerStoreParameters(request, parameters = {}, version = "0"): parameters = populateBuyerProductParameters(request, parameters, version) buyerStoreLeadID = request.GET.get("buyerstoreleadID", "") if buyerStoreLeadID != "": parameters["buyerStoreLeadsArr"] = getArrFromString(buyerStoreLeadID) buyerStoreLeadStatus = request.GET.get("buyer_store_lead_status", None) if buyerStoreLeadStatus: parameters["buyer_store_lead_status"] = getArrFromString(buyerStoreLeadStatus) return parameters
def getSellerLeadParameters(request, parameters = {}, version = "0"): status = request.GET.get("status", "") if status != "": parameters["statusArr"] = getArrFromString(status) sellerLeadID = request.GET.get("sellerleadID", "") if sellerLeadID != "": parameters["sellerLeadsArr"] = getArrFromString(sellerLeadID) parameters = populateInternalUserIDParameters(request, parameters, version) return parameters
def getContactUsLeadParameters(request, parameters = {}, version = "0"): status = request.GET.get("status", "") if status != "": parameters["statusArr"] = getArrFromString(status) contactUsLeadID = request.GET.get("contactusleadID", "") if contactUsLeadID != "": parameters["contactUsLeadsArr"] = getArrFromString(contactUsLeadID) parameters = populateInternalUserIDParameters(request, parameters, version) return parameters
def populateProductFilterParameters(request, parameters={}, version="0"): productID = request.GET.get("productID", "") if productID != "" and productID != None: parameters["productsArr"] = getArrFromString(productID) categoryID = request.GET.get("categoryID", "") if categoryID != "" and categoryID != None: parameters["categoriesArr"] = getArrFromString(categoryID) fabric = request.GET.get("fabric", "") if fabric != "" and fabric != None: parameters["fabricArr"] = getStrArrFromString(fabric) colour = request.GET.get("colour", "") if colour != "" and colour != None: parameters["colourArr"] = getStrArrFromString(colour) sizes = request.GET.get("sizes", "") if sizes != "" and sizes != None: parameters["sizesArr"] = getStrArrFromString(sizes) productShowOnline = request.GET.get("product_show_online", "") if productShowOnline != "" and validate_bool(productShowOnline): parameters["product_show_online"] = int(productShowOnline) productVerification = request.GET.get("product_verification", "") if productVerification != "" and validate_bool(productVerification): parameters["product_verification"] = int(productVerification) min_price_per_unit = request.GET.get("min_price_per_unit", "") max_price_per_unit = request.GET.get("max_price_per_unit", "") if validate_number(min_price_per_unit) and validate_number( max_price_per_unit) and float(min_price_per_unit) >= 0 and float( max_price_per_unit) > float(min_price_per_unit): parameters["price_filter_applied"] = True parameters["min_price_per_unit"] = float(min_price_per_unit) parameters["max_price_per_unit"] = float(max_price_per_unit) productOrderBy = request.GET.get("product_order_by", "") if productOrderBy != "" and productOrderBy != None: parameters["product_order_by"] = productOrderBy productUpdatedAt = request.GET.get("product_updated_at", "") if productUpdatedAt != "" and productUpdatedAt != None: parameters["product_updated_at"] = productUpdatedAt return parameters
def populateBuyerIDParameters(request, parameters={}, version="0"): accessToken = getAccessToken(request) buyerID = request.GET.get("buyerID", "") tokenPayload = validateBuyerAccessToken(accessToken) parameters["isBuyer"] = 0 parameters["isBuyerStore"] = 0 if "buyerID" in tokenPayload: parameters["buyersArr"] = [int(tokenPayload["buyerID"])] parameters["isBuyer"] = 1 elif buyerID != "": parameters["buyersArr"] = getArrFromString(buyerID) storeUrl = request.GET.get("store_url", "") try: buyerPtr = Buyer.objects.get(store_url=storeUrl, delete_status=False, store_active=True) except Exception as e: pass else: parameters["buyersArr"] = [buyerPtr.id] parameters["isBuyerStore"] = 1 return parameters
def getArticleParameters(request, parameters={}, version="0"): defaultValue = 0 articleID = request.GET.get("articleID", "") if articleID != "" and articleID != None: parameters["articlesArr"] = getArrFromString(articleID) showOnline = request.GET.get("show_online", None) if validate_bool(showOnline): parameters["show_online"] = int(showOnline) articleDetails = request.GET.get("article_details", None) if validate_bool(articleDetails): parameters["article_details"] = int(articleDetails) else: parameters["article_details"] = defaultValue internalUserDetails = request.GET.get("internal_user_details", None) if validate_bool(internalUserDetails): parameters["internal_user_details"] = int(internalUserDetails) else: parameters["internal_user_details"] = defaultValue parameters = populateInternalUserIDParameters(request, parameters) parameters = getPaginationParameters(request, parameters) return parameters
def populateSellerIDParameters(request, parameters={}, version="0"): accessToken = getAccessToken(request) sellerID = request.GET.get("sellerID", "") tokenPayload = get_token_payload(accessToken, "sellerID") parameters["isSeller"] = 0 if "sellerID" in tokenPayload and validate_integer( tokenPayload["sellerID"]) and "password" in tokenPayload: try: sellerPtr = Seller.objects.get(id=int(tokenPayload["sellerID"]), password=tokenPayload["password"], delete_status=False) except: pass else: parameters["sellersArr"] = [sellerPtr.id] parameters["isSeller"] = 1 elif sellerID != "": parameters["sellersArr"] = getArrFromString(sellerID) sellerShowOnline = request.GET.get("seller_show_online", "") if sellerShowOnline != "" and validate_bool(sellerShowOnline): parameters["seller_show_online"] = int(sellerShowOnline) return parameters
def populateCartParameters(request, parameters = {}, version = "0"): defaultValue = 1 if version == "1": defaultValue = 0 parameters = populateAllUserIDParameters(request, parameters, version) productID = request.GET.get("productID", "") if productID != "" and productID != None: parameters["productsArr"] = getArrFromString(productID) cartItemID = request.GET.get("cartitemID", "") if cartItemID != "" and cartItemID != None: parameters["cartItemsArr"] = getArrFromString(cartItemID) cartItemStatus = request.GET.get("cart_item_status", "") if cartItemStatus != "": parameters["cartItemStatusArr"] = getArrFromString(cartItemStatus) parameters = populateBuyerDetailsParameters(request, parameters, version) parameters = populateSellerDetailsParameters(request, parameters, version) parameters = populateProductDetailsParameters(request, parameters, version) parameters = getPaginationParameters(request, parameters, 10, version) cartItemDetails = request.GET.get("cart_item_details", None) if validate_bool(cartItemDetails): parameters["cart_item_details"] = int(cartItemDetails) else: parameters["cart_item_details"] = defaultValue subCartDetails = request.GET.get("sub_cart_details", None) if validate_bool(subCartDetails): parameters["sub_cart_details"] = int(subCartDetails) else: parameters["sub_cart_details"] = defaultValue return parameters
def populateBuyerParameters(request, parameters = {}, version = "0"): parameters = populateBuyerIDParameters(request, parameters, version) parameters = populateInternalUserIDParameters(request, parameters, version) buyerInterestID = request.GET.get("buyerinterestID", "") whatsappSharingActive = request.GET.get("whatsapp_sharing_active", None) if validate_bool(whatsappSharingActive): parameters["whatsapp_sharing_active"] = int(whatsappSharingActive) testBuyer = request.GET.get("test_buyer", None) if validate_bool(testBuyer): parameters["test_buyer"] = int(testBuyer) if buyerInterestID != "": parameters["buyerInterestArr"] = getArrFromString(buyerInterestID) buyersharedproductID = request.GET.get("buyersharedproductID", "") if buyersharedproductID != "" and validate_integer(buyersharedproductID): parameters["buyersharedproductID"] = int(buyersharedproductID) buyerMinID = request.GET.get("buyer_min_ID", "") if buyerMinID != "" and validate_integer(buyerMinID): parameters["buyer_min_ID"] = int(buyerMinID) buyerMaxID = request.GET.get("buyer_max_ID", "") if buyerMaxID != "" and validate_integer(buyerMaxID): parameters["buyer_max_ID"] = int(buyerMaxID) buyerPurchasingStateID = request.GET.get("buyerpurchasingstateID", "") if buyerPurchasingStateID != "": parameters["buyerPurchasingStateArr"] = getArrFromString(buyerPurchasingStateID) parameters = populateBuyerDetailsParameters(request, parameters, version) return parameters
def populateBuyerProductParameters(request, parameters = {}, version = "0"): parameters = populateBuyerParameters(request, parameters, version) isActive = request.GET.get("is_active", None) responded = request.GET.get("responded", None) buyerProductID = request.GET.get("buyerproductID", "") buyerInterestID = request.GET.get("buyerinterestID", "") productID = request.GET.get("productID", "") landing = request.GET.get("landing", "") if validate_bool(isActive): parameters["buyer_product_is_active"] = int(isActive) if validate_bool(landing): parameters["buyer_product_landing"] = int(landing) if validate_integer(responded): parameters["responded"] = int(responded) if buyerProductID != "": parameters["buyerProductsArr"] = getArrFromString(buyerProductID) if buyerInterestID != "": parameters["buyerInterestArr"] = getArrFromString(buyerInterestID) from .catalog_handler import populateProductFilterParameters parameters = populateProductFilterParameters(request, parameters, version) parameters = getPaginationParameters(request, parameters, 10, version) from .catalog_handler import populateProductDetailsParameters parameters = populateProductDetailsParameters(request, parameters, version) return parameters
def populateMarketingContactsParameters(request, parameters={}, version="0"): parameters = populateInternalUserIDParameters(request, parameters, version) parameters = getPaginationParameters(request, parameters, 200) newContacts = request.GET.get("new_contacts", "") if newContacts != "" and validate_bool(newContacts): parameters["new_contacts"] = int(newContacts) else: parameters["new_contacts"] = 1 marketingContactID = request.GET.get("marketingcontactID", "") if marketingContactID != "" and marketingContactID != None: parameters["marketingContactsArr"] = getArrFromString( marketingContactID) return parameters
def populateCategoryParameters(request, parameters={}, version="0"): version = getApiVersion(request) categoryID = request.GET.get("categoryID", "") if categoryID != "": parameters["categoriesArr"] = getArrFromString(categoryID) categoryShowOnline = request.GET.get("category_show_online", "") if categoryShowOnline != "" and validate_bool(categoryShowOnline): parameters["category_show_online"] = int(categoryShowOnline) parameters = populateAllUserIDParameters(request, parameters, version) parameters = populateCategorytDetailsParameters(request, parameters, version) return parameters
def populateInternalUserIDParameters(request, parameters = {}, version = "0"): accessToken = getAccessToken(request) tokenPayload = get_token_payload(accessToken, "internaluserID") internalUserID = request.GET.get("internaluserID", "") parameters["isInternalUser"] = 0 if "internaluserID" in tokenPayload and validate_integer(tokenPayload["internaluserID"]) and "password" in tokenPayload: try: internalUserPtr = InternalUser.objects.get(id=int(tokenPayload["internaluserID"]), password=tokenPayload["password"]) except: pass else: parameters["internalusersArr"] = [internalUserPtr.id] parameters["isInternalUser"] = 1 elif internalUserID != "": parameters["internalusersArr"] = getArrFromString(internalUserID) return parameters
def update_buyer_product_whatsapp(request, parameters): try: requestbody = request.body.decode("utf-8") buyer_product = convert_keys_to_string(json.loads(requestbody)) except Exception as e: return customResponse(400, error_code=4) if not len(buyer_product ) or not "buyerproductID" in buyer_product or buyer_product[ "buyerproductID"] == None: return customResponse(400, error_code=5, error_details="Id for buyer product not sent") buyerProductIDs = getArrFromString(str(buyer_product["buyerproductID"])) buyerProductPtr = BuyerProducts.objects.filter(id__in=buyerProductIDs) if parameters["isBuyer"] == 1: buyerProductPtr.filter(buyer_id=parameters["buyersArr"][0]) if len(buyerProductPtr) != len(buyerProductIDs): return customResponse( 400, error_code=6, error_details="Invalid ids for for buyer products sent") try: buyerProductPtr.update(shared_on_whatsapp=True, updated_at=timezone.now()) except Exception as e: log.critical(e) closeDBConnection() return customResponse(500, error_code=3) else: closeDBConnection() return customResponse(200, {"success": "updated"})
def post_new_buyer_product(request, parameters): try: requestbody = request.body.decode("utf-8") buyer_product = convert_keys_to_string(json.loads(requestbody)) except Exception as e: return customResponse(400, error_code=4) if not len(buyer_product): return customResponse(400, error_code=5, error_details="Invalid data sent in request") buyerParameters = {} buyerParameters["test_buyer"] = False buyerParameters["whatsapp_sharing_active"] = True if "all_buyers" in buyer_product and validate_bool( buyer_product["all_buyers"]) and int( buyer_product["all_buyers"]) == 1: if parameters["isInternalUser"] == 0: return customResponse(403, error_code=8) else: if parameters["isBuyer"] == 1: buyer_product["buyerID"] = parameters["buyersArr"][0] elif not "buyerID" in buyer_product: return customResponse(400, error_code=5, error_details="Id for buyer not sent") buyerParameters["buyersArr"] = getArrFromString( buyer_product["buyerID"]) allBuyersSeries = filterBuyer(buyerParameters).values_list('id', flat=True) if len(allBuyersSeries) == 0: return customResponse(400, error_code=6, error_details="Invalid ids for buyer sent") if not "productID" in buyer_product or buyer_product["productID"] == None: return customResponse(400, error_code=5, error_details="Id for product not sent") productParameters = {} productParameters["product_verification"] = True productParameters["product_show_online"] = True productParameters["productsArr"] = getArrFromString( buyer_product["productID"]) allProductsDF = filterProducts(productParameters).values('id') if len(allProductsDF) == 0: return customResponse(400, error_code=6, error_details="Invalid ids for products sent") allProductsDF = DataFrame(list(allProductsDF)) #buyerProductsPtr = BuyerProducts.objects.filter(buyer_id__in = allBuyersSeries).order_by('buyer_id') buyerProductParameters = {} buyerProductParameters["buyersArr"] = allBuyersSeries #buyerProductParameters["responded"] = 0 allBuyerProductsDF = filterBuyerProducts(buyerProductParameters).values( 'id', 'buyer_id', 'product_id', 'responded') if len(allBuyerProductsDF) == 0: columns = ['id', 'buyer_id', 'product_id', 'responded'] allBuyerProductsDF = DataFrame(columns=columns) else: allBuyerProductsDF = DataFrame(list(allBuyerProductsDF)) buyerProductsToCreate = [] buyerProductsToUpdate = [] buyerSharedProductIDtoCreate = [] for buyer in allBuyersSeries: tempBuyerProductsDF = allBuyerProductsDF[allBuyerProductsDF.buyer_id == buyer] innerFrame = tempBuyerProductsDF[(tempBuyerProductsDF.product_id.isin( allProductsDF.id))] leftOnlyFrame = allProductsDF[( ~allProductsDF.id.isin(innerFrame.product_id))] for product_id in leftOnlyFrame['id'].tolist(): buyerProduct = BuyerProducts(buyer_id=buyer, product_id=product_id, buyer_interest=None) buyerProductsToCreate.append(buyerProduct) buyerProductsToUpdate.extend(innerFrame['id'].tolist()) newBuyerSharedProductID = BuyerSharedProductID( buyer_id=buyer, productid_filter_text=buyer_product["productID"]) buyerSharedProductIDtoCreate.append(newBuyerSharedProductID) try: BuyerSharedProductID.objects.bulk_create(buyerSharedProductIDtoCreate, batch_size=4000) BuyerProducts.objects.bulk_create(buyerProductsToCreate, batch_size=4000) BuyerProducts.objects.filter(id__in=buyerProductsToUpdate).update( is_active=True, delete_status=False, updated_at=timezone.now()) except Exception as e: log.critical(e) closeDBConnection() return customResponse(500, error_code=1) else: closeDBConnection() return customResponse(200, {"buyer_product": "successfully added"})
def populateOrderParameters(request, parameters = {}, version = "0"): parameters = populateAllUserIDParameters(request, parameters, version) orderID = request.GET.get("orderID", "") orderStatus = request.GET.get("order_status", "") orderPaymentStatus = request.GET.get("order_payment_status", "") if orderID != "": parameters["orderArr"] = getArrFromString(orderID) if orderStatus != "": parameters["orderStatusArr"] = getArrFromString(orderStatus) if orderPaymentStatus != "": parameters["orderPaymentStatusArr"] = getArrFromString(orderPaymentStatus) subOrderID = request.GET.get("suborderID", "") subOrderStatus = request.GET.get("sub_order_status", "") subOrderPaymentStatus = request.GET.get("sub_order_payment_status", "") if subOrderID != "": parameters["subOrderArr"] = getArrFromString(subOrderID) if subOrderStatus != "": parameters["subOrderStatusArr"] = getArrFromString(subOrderStatus) if subOrderPaymentStatus != "": parameters["subOrderPaymentStatusArr"] = getArrFromString(subOrderPaymentStatus) orderShipmentID = request.GET.get("ordershipmentID", "") orderShipmentStatus = request.GET.get("order_shipment_status", "") if orderShipmentID != "": parameters["orderShipmentArr"] = getArrFromString(orderShipmentID) if orderShipmentStatus != "": parameters["orderShipmentStatusArr"] = getArrFromString(orderShipmentStatus) orderItemID = request.GET.get("orderitemID", "") orderItemStatus = request.GET.get("order_item_status", "") if orderItemID != "": parameters["orderItemArr"] = getArrFromString(orderItemID) if orderItemStatus != "": parameters["orderItemStatusArr"] = getArrFromString(orderItemStatus) buyerPaymentID = request.GET.get("buyerpaymentID", "") buyerPaymentStatus = request.GET.get("buyer_payment_status", "") if buyerPaymentID != "": parameters["buyerPaymentArr"] = getArrFromString(buyerPaymentID) if buyerPaymentStatus != "": parameters["buyerPaymentStatusArr"] = getArrFromString(buyerPaymentStatus) sellerPaymentID = request.GET.get("sellerpaymentID", "") sellerPaymentStatus = request.GET.get("seller_payment_status", "") if sellerPaymentID != "": parameters["sellerPaymentArr"] = getArrFromString(sellerPaymentID) if sellerPaymentStatus != "": parameters["sellerPaymentStatusArr"] = getArrFromString(sellerPaymentStatus) parameters = getPaginationParameters(request, parameters, 10, version) parameters = populateOrderDetailsParameters(request, parameters, version) return parameters