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)
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)
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)
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
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)
def get(self, id): customer = Customer.objects().with_id(id) order = Order.objects(Customer == customer) return mlab.item2json(order)
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
def get(self): print("get all user") customer = Customer.objects() return mlab.list2json(customer), 200
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)
def authenticate(username, password): for user in Customer.objects(username=username): if user.password == password: return LoginCredentials(str(user.id), user.username, user.password)