def put(self, request, format=None): book = self.get_queryset() result = {} if not book: result["resultCode"] = 200 result["resultText"] = "SUCCESS_EMPTY" result["content"] = "Book Not Found Error" else: book.status = 100 book.save() # add to improper drivers for the given book bookDriver = BookDriver() bookDriver.driver = User.objects.get(id=book.driver.id) bookDriver.book = book bookDriver.save() result["resultCode"] = 100 result["resultText"] = "SUCCESS" result["content"] = "Customer's book status was changed to CANCEL" # push message body messageBody = { 'book': { 'status': 'cancelled', 'book_id': book.id, } } # notify driver driverUserInfo = UserInfo.objects.get(user_id=book.driver_id) if driverUserInfo: notifications.send_push_message(driverUserInfo.push_token, 'Sifariş imtina edildi!', messageBody) return JsonResponse(result)
def put(self, request, format=None): book = self.get_queryset() result = {} if not book: result["resultCode"] = 200 result["resultText"] = "SUCCESS_EMPTY" result["content"] = "Book Not Found Error" else: book.setStatusToComplete() book.save() result["resultCode"] = 100 result["resultText"] = "SUCCESS" result["content"] = { 'book_status': book.status } customerUserInfo = UserInfo.objects.get(user_id=book.customer.id) messageBody = { 'driver': { 'status': 'completed', 'driver_id': book.driver.id, 'respond': 200 } } # notify customer notifications.send_push_message(customerUserInfo.push_token, 'Sürüş bitdi', messageBody) return JsonResponse(result)
def arrived(self, request, pk=None): book = Booking.objects.get(pk=pk) book.status = 20 book.save() serializer = BookSerializer(book) # get customer detail customer = UserInfo.objects.get(user_id=book.customer.id) messageBody = { 'driver': { 'status': 'arrived', 'driver_id': book.driver.id, 'respond': 20 } } # notify customer notifications.send_push_message(customer.push_token, 'Sürücü sizi gözləyir', messageBody) return JsonResponse(serializer.data)
def put(self, request, format=None): book = self.get_queryset() result = {} if not book: result["resultCode"] = 200 result["resultText"] = "SUCCESS_EMPTY" result["content"] = "Book Not Found Error" else: # get proper drivers properDriverList = utils.findProperDrivers(book.id) if properDriverList.count() == 0: result["resultCode"] = 200 result["resultText"] = "SUCCESS_EMPTY" result["content"] = "Proper Drivers Not Found" return JsonResponse(result) # get book pickup address pickupAddress = Address.objects.filter(is_pickup_loc=1, booking_id=book.id).first() nearestDriverUserInfo = utils.findNearestDriver(pickupAddress.latitude, pickupAddress.longitude, 100000, properDriverList) book.driver = nearestDriverUserInfo.user book.status = 10 book.save() serializer = UserInfoSerializer(nearestDriverUserInfo) result["resultCode"] = 100 result["resultText"] = "SUCCESS" result["content"] = serializer.data # push message body messageBody = { 'book': { 'status': 'new', 'book_id': book.id, } } # notify driver notifications.send_push_message(nearestDriverUserInfo.push_token, 'Yeni sifariş', messageBody) return JsonResponse(result)
def put(self, request, format=None): book = self.get_queryset() self.check_object_permissions(request, book) result = {} if not book: result["resultCode"] = 200 result["resultText"] = "SUCCESS_EMPTY" result["content"] = "Book Not Found Error" else: customerUserInfo = UserInfo.objects.get(user_id=book.customer.id) driverUserInfo = UserInfo.objects.get(user_id=book.driver.id) room_id = 'room-' + utils.make_uuid() # Driver Accepted Case acceptDriver = int(request.POST.get('accept')) if acceptDriver == 1: book.status = 1 book.room_id = room_id book.save() data = { "driver": { "id": driverUserInfo.user_id, "latitude": driverUserInfo.latitude, "longitude": driverUserInfo.longitude }, "customer": { "id": customerUserInfo.user_id, "latitude": customerUserInfo.latitude, "longitude": customerUserInfo.longitude } } self.firebase.create('rooms/' + room_id, data) messageBody = { 'driver': { 'status': 'accepted', 'room_id': room_id, 'driver_id': driverUserInfo.user.id, 'respond': 1 } } # notify customer notifications.send_push_message(customerUserInfo.push_token, 'Sifariş qəbul edildi', messageBody) result["resultCode"] = 100 result["resultText"] = "SUCCESS" result["content"] = { 'tracking_room_id': room_id } # -3- Driver Rejected Case else: # -3.1- book.status = 2 book.save() # -3.2- bookDriver = BookDriver() bookDriver.driver = User.objects.get(id=book.driver.id) bookDriver.book = book bookDriver.save() messageBody = { 'driver': { 'status': 'rejected', 'driver_id': driverUserInfo.user.id, 'respond': 2 } } # notify customer notifications.send_push_message(customerUserInfo.push_token, 'Sifariş qəbul olunmadı', messageBody) result["resultCode"] = 100 result["resultText"] = "REJECTED" result["content"] = "Book Rejected" return JsonResponse(result)
def post(self, request): token = request.data.get('pushToken') notifications.send_push_message(token, 'hello orxan') return Response({'token': token})