Exemplo n.º 1
0
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
Exemplo n.º 2
0
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
Exemplo n.º 3
0
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
Exemplo n.º 4
0
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
Exemplo n.º 5
0
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
Exemplo n.º 6
0
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
Exemplo n.º 7
0
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
Exemplo n.º 8
0
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
Exemplo n.º 9
0
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
Exemplo n.º 10
0
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
Exemplo n.º 11
0
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
Exemplo n.º 12
0
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
Exemplo n.º 13
0
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
Exemplo n.º 14
0
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
Exemplo n.º 15
0
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"})
Exemplo n.º 16
0
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"})
Exemplo n.º 17
0
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