示例#1
0
    def post(self):

        #parser.add_argument(name="id", type= int, location="json")
        #parser.add_argument(name="count", type=int, location="json")

        body = parser.parse_args()
        items = body["items"]
        user_id = body.user_id
        total_spend = 0
        order_item = []
        print("body:", body)
        print("items:", items)
        print("user_id:", user_id)
        for item in items:
            print("item type:", type(item))
            print("item:", item)
            good_id = item["id"]
            count = item["count"]
            good = Good.objects().with_id(good_id)
            price = good.price
            print("good_id:", good_id, ";count: ", count, "price: ", price)
            total_spend += price * count
            singleOrder = SingleOrder(good=good, count=count)
            order_item.append(singleOrder)
        customer = Customer.objects().with_id(user_id)
        #print(mlab.item2json(order_item[0]))
        #print("order_item0:",mlab.item2json(order_item[0]),"order_item1:",order_item[1])

        order = Order(items=order_item,
                      customer=customer,
                      totalspend=total_spend)
        order.save()
        add_order = Order.objects().with_id(order.id)
        return mlab.item2json(add_order)
示例#2
0
 def post(self):
     #Post trên server sẽ lấy đủ đơn hàng, post trên local sẽ thiếu đơn hàng
     body = parser.parse_args()
     items = body["items"]
     user_id = body.user_id
     total_spend = 0
     order_item = []
     dumps = json.dumps(items)
     ldumps = re.findall(r"[\w']+", dumps)
     print(len(items))
     for i in range(0, len(items) + 1):
         try:
             good_id = ldumps[4 * i + 1][1:-1]
             count = int(ldumps[4 * i + 3])
             good = Good.objects().with_id(good_id)
             price = good.price
             total_spend += price * count
             singleOrder = SingleOrder(good=good, count=count)
             order_item.append(singleOrder)
         except:
             print("Index error")
     print("order_item:", mlab.list2json(order_item))
     customer = Customer.objects().with_id(user_id)
     order = Order(items=order_item,
                   customer=customer,
                   totalspend=total_spend)
     order.save()
     add_order = Order.objects().with_id(order.id)
     return mlab.item2json(add_order)
示例#3
0
def authenticate(username, password):
    print("Authenticate register")
    for user in Customer.objects(username=username):
        if user.password == password:
            if safe_str_cmp(user.password.encode('utf-8'),
                            password.encode('utf-8')):
                print("OK")
                return LoginCredentials(str(user.id), user.username,
                                        user.password)
示例#4
0
 def post(self, id):
     parser = reqparse.RequestParser()
     parser.add_argument(name="user_id", type=str, location="json")
     parser.add_argument(name="message", type=str, location="json")
     body = parser.parse_args()
     id_user = body["user_id"]
     message = body["message"]
     rage = Rage.objects().with_id(id)
     customer = Customer.objects().with_id(id_user)
     date = datetime.datetime.utcnow() + datetime.timedelta(hours=7)
     comment = Comment(customer=customer,
                       message=message,
                       date=str(date),
                       rage=rage)
     comment.save()
     comment_add = Comment.objects().with_id(comment.id)
     return mlab.item2json(comment_add), 200
示例#5
0
    def post(self):
        parser = reqparse.RequestParser()
        parser.add_argument(name="username", type=str, location="json")
        parser.add_argument(name="password", type=str, location="json")
        body = parser.parse_args()
        username = body.username
        password = body.password
        print("REGISTER SAVE")
        if username is None or password is None:
            return {"meassage": "Thiếu trường"}, 401

        found_user = Customer.objects(username=username).first()
        if found_user is not None:
            print("User already exist")
            return redirect('api/login', 307)

        user = Customer(username=username, password=password)
        print({"name": user.username + ";password:" + user.password})
        user.save()

        return redirect('api/login', 307)
示例#6
0
 def get(self, id):
     customer = Customer.objects().with_id(id)
     order = Order.objects(Customer == customer)
     return mlab.item2json(order)
示例#7
0
    def post(self):
        parser = reqparse.RequestParser()
        parser.add_argument(name="items", type=list, location="json")
        parser.add_argument(name="address_order", type=str, location="json")
        parser.add_argument(name="phone_number", type=str, location="json")
        parser.add_argument(name="user_id", type=str, location="json")
        parser.add_argument(name="code", type=str, location="json")
        body = parser.parse_args()
        items = body["items"]
        date = datetime.datetime.today().strftime('%d-%m-%Y')
        address_order = body.address_order
        phone_number = body.phone_number
        user_id = body.user_id
        code = body["code"]

        if items is None or date is None or address_order is None or phone_number is None or user_id is None or code is None:
            return {"message": "Thiếu trường rồi mày"}, 401

        if len(str(phone_number)) < 10 or len(str(phone_number)) > 11:
            return {
                "messsage":
                "Đây mà là số điện thoại, mày điên ah? 10 hoặc 11 số nhé c hó"
            }, 401

        try:
            sdt = float(phone_number)
        except:
            return {"message": "Điện thoại cứt gì mà có chữ"}, 401

        #API_KEY = "AIzaSyDngB6pcJy3bHN4GuWZCaJGrb3sQUxWtCo"
        API_KEY = "AIzaSyCEB4QVng3uFEQ-SwxfwOWAG4H3sr7Mfi8"
        url_request = "https://maps.googleapis.com/maps/api/distancematrix/json?origins={0}&destinations={1}&mode=driving&language=vi-VN&key={2}".format(
            "số nhà 1A/178, đường Hoàng Mai , quận Hoàng Mai, thành phố Hà nội",
            str(address_order) + " Hà Nội", API_KEY)

        ship_spend = 0
        try:
            req = requests.get(url_request)
            json_data = json.loads(req.content)
            list_add = json_data["rows"]
            elements = list_add[0]["elements"]
            km = elements[0]["distance"]["text"]
            txt = str(km).split(" ")
            distance = txt[0].replace(",", ".")
            ship_spend = float(distance) * 3000
        except:
            ship_spend = -1
        order_items = []
        spend = 0
        for item in items:
            rage_id = item["id"]
            count = item["count"]
            try:
                sl = int(count)
                if sl < 1:
                    return {"message": "Số lượng > 0 hả mày?"}, 401
            except:
                return {"message": "count là int ok mày?"}, 401
            rage = Rage.objects().with_id(rage_id)
            single_order = SingleOrder(count=count, rage=rage)
            order_items.append(single_order)
            spend += float(rage["new_price"]) * sl
        if spend == 0:
            return {"message": "đặt hàng cc gì mà bằng 0"}, 401
        try:
            customer = Customer.objects().with_id(user_id)
            customer.update(address_order=address_order,
                            phone_number=phone_number)
        except:
            return {"message": "userid của mày bị điên ah"}, 401

        code = str(code).lower()
        gift = GiftCode.objects().filter(code=code)
        code_price = gift[0]["price"]
        try:
            spend_min = gift[0]["spend_min"]
        except:
            spend_min = -1
        if (spend > 0 and (spend >= spend_min and spend_min != -1)):
            user_number = gift[0]["user_number"]
            user_number -= 1
            if user_number == 0:
                gift[0].delete()
            else:
                gift[0].update(user_number=user_number)
            # print("order_items")
            # print(order_items)
            # print("date")
            # print(date)
            # print("address_order")
            # print(address_order)
            # print("phone_number")
            # print(phone_number)
            # print("user")
            # print(Customer.objects().with_id(user_id).get_json())
            # print("spend")
            # print(spend + ship_spend - code_price)
            # print("ship_money")
            # print(ship_spend)
            # print("code")
            # print(code)
            # print("code_price")
            # print(code_price)

            order = Order(items=order_items,
                          date=date,
                          address_order=address_order,
                          phone_number=phone_number,
                          customer=Customer.objects().with_id(user_id),
                          is_Success=False,
                          spend=spend + ship_spend - code_price,
                          ship_money=ship_spend,
                          code=code,
                          code_price=code_price)
        else:
            order = Order(items=order_items,
                          date=date,
                          address_order=address_order,
                          phone_number=phone_number,
                          customer=Customer.objects().with_id(user_id),
                          is_Success=False,
                          code=code,
                          spend=spend + ship_spend,
                          ship_money=ship_spend,
                          code_price=code_price)
        order.save()
        add_order = Order.objects().with_id(order.id)
        apikey = "blablalaa"
        #push_service = FCMNotification(api_key=apikey)
        #push_service.notify_topic_subscribers(topic_name="admin", message_body="Có đơn hàng mới",
        #                                      message_title="Kiểm tra ngay")
        return mlab.item2json(add_order), 200
示例#8
0
 def get(self):
     print("get all user")
     customer = Customer.objects()
     return mlab.list2json(customer), 200
示例#9
0
 def identity(payload):
     user_id = payload["identity"]
     user = Customer.objects().with_id(user_id)
     if (user_id is not None):
         return LoginCredentials(str(user.id), user.username, user.password)
示例#10
0
 def authenticate(username, password):
     for user in Customer.objects(username=username):
         if user.password == password:
             return LoginCredentials(str(user.id), user.username,
                                     user.password)