async def createRecord(cls, room: NewRoomReservationParams, userDoc: User): msg = Message() crud = CRUD(cls=cls) try: roomDoc = model.Room.objects.get(id=room.room) if not roomDoc.available: raise RoomNotAvailableError else: roomDoc.update(available=False) room = dict(room) room['room'] = roomDoc.id room['user'] = userDoc['id'] crud.create(room, msg) return msg.data except RoomNotAvailableError: raise except DoesNotExist: raise except ValidationError as e: logging.error(str(e)) raise ValidationError except NotUniqueError as e: logging.error(str(e)) msg.addMessage('Error', str(e)) raise except Exception as e: msg.addMessage('Error', str(e)) raise
async def createRecord(cls, userInfo: UserInfoParams, user: UserParams): msg = Message() crud = CRUD(cls=cls) user = dict(user) try: userInfo = dict(userInfo) userInfo['user_id'] = user['id'] crud.create(userInfo, msg) return msg.data except DoesNotExist: raise except Exception as e: msg.addMessage('Error', str(e)) raise
async def searchWithParams(cls, skip, limit, expand: list = None, **kwargs) -> dict: crud = CRUD(cls=cls) try: kwargs["active"] = True crud.read(query=kwargs, skip=skip, limit=limit, exclude=['createdOn', 'active']) data = crud.toJSON(expand) return data except DoesNotExist: raise except ValidationError as e: logging.error(str(e)) raise ValidationError except Exception as e: logging.error(str(e)) raise
async def createRecord(cls, **kwargs): msg = Message() crud = CRUD(cls=cls) try: crud.create(kwargs, msg) return msg.data except NotUniqueError as e: logging.error(str(e)) msg.addMessage('Error', str(e)) raise except ValidationError as e: logging.error(str(e)) raise ValidationError except Exception as e: msg.addMessage('Error', str(e)) raise
async def createRecord(cls, newUser: UserParams): msg = Message() crud = CRUD(cls=cls) try: newUser = dict(newUser) newUser['password'] = get_hash(newUser['password']) crud.create(newUser, msg) return msg.data except DoesNotExist: raise except NotUniqueError as e: logging.error(str(e)) raise except Exception as e: msg.addMessage('Error', str(e)) raise
async def createRecord(cls, room: NewRoomParams): msg = Message() crud = CRUD(cls=cls) try: roomDoc = model.RoomType.objects.get(id=room.room_type) hotelDoc = model.Hotel.objects.get(id=room.hotel) room = dict(room) room['room_type'] = roomDoc.id room['hotel'] = hotelDoc.id crud.create(room, msg) except NotUniqueError as e: logging.error(str(e)) raise except Exception as e: msg.addMessage('Error', str(e)) return msg.data else: return msg.data
async def createRecord(cls, reservation: NewCarReservationParams, user: dict): msg = Message() crud = CRUD(cls=cls) try: userDoc = model.User.objects.get(id=user['id']) carDoc = model.Car.objects.get(id=reservation.car) reservation = dict(reservation) reservation['user'] = userDoc.id reservation['car'] = carDoc.id crud.create(reservation, msg) return msg.data except DoesNotExist: raise except ValidationError as e: logging.error(str(e)) raise ValidationError except Exception as e: msg.addMessage('Error', str(e)) raise
async def createRecord(cls, model: NewCarModelParams): msg = Message() crud = CRUD(cls=cls) try: carBrand = CarBrand.objects.get(id=model.brand) model = dict(model) model['brand'] = carBrand.id crud.create(model, msg) return msg.data except DoesNotExist: raise except ValidationError as e: logging.error(str(e)) raise ValidationError except NotUniqueError as e: logging.error(str(e)) msg.addMessage('Error', str(e)) raise except Exception as e: msg.addMessage('Error', str(e)) raise
async def createRecord(cls, newRoomType: NewRoomTypeParams): msg = Message() crud = CRUD(cls=cls) try: hotel = model.Hotel.objects.get(id=newRoomType.hotel) newRoomType = dict(newRoomType) newRoomType['hotel'] = hotel.id crud.create(newRoomType, msg) return msg.data except DoesNotExist: raise except ValidationError as e: logging.error(str(e)) raise ValidationError except NotUniqueError as e: logging.error(str(e)) msg.addMessage('Error', str(e)) raise except Exception as e: msg.addMessage('Error', str(e)) raise
async def createRecord(cls, car: NewCarParams): msg = Message() crud = CRUD(cls=cls) try: brandDoc = model.CarBrand.objects.get(id=car.brand) carTypeDoc = model.CarType.objects.get(id=car.car_type) modelDoc = model.CarModel.objects.get(id=car.model) car = dict(car) car['brand'] = brandDoc.id car['car_type'] = carTypeDoc.id car['model'] = modelDoc.id crud.create(car, msg) return msg.data except DoesNotExist: raise except ValidationError as e: logging.error(str(e)) raise ValidationError except Exception as e: msg.addMessage('Error', str(e)) raise
async def createRecord(cls, reservation: NewReservationParams, user: dict): msg = Message() crud = CRUD(cls=cls) try: hotelDoc = model.RoomReservation.query(query={ "id__in": reservation.hotel_reservation, "user": user["id"], 'active': True }, ) carDoc = model.CarReservation.query(query={ "id__in": reservation.car_reservation, "user": user["id"], 'active': True }, ) userDoc = model.User.objects.get(id=user['id']) reservation = dict(reservation) reservation['user'] = userDoc.id if isinstance(hotelDoc, list): reservation['hotel_reservation'] = list( map(lambda x: x.id, hotelDoc)) else: reservation['hotel_reservation'] = [hotelDoc.id] if isinstance(carDoc, list): reservation['car_reservation'] = list( map(lambda x: x.id, carDoc)) else: reservation['car_reservation'] = [carDoc.id] crud.create(reservation, msg) return msg.data except DoesNotExist: raise except ValidationError as e: logging.error(str(e)) raise ValidationError except Exception as e: msg.addMessage('Error', str(e)) raise
async def deleteRecord(cls, userId: str) -> None: msg = Message() crud = CRUD(cls=cls) try: query = {"user_id": userId, 'active': True} crud.read(query=query) crud.delete(msg, softDelete=False) return msg.data except DoesNotExist: raise except Exception as e: raise
async def deleteRecord(cls, objectID: str) -> None: msg = Message() crud = CRUD(cls=cls) try: query = {"id": objectID, 'active': True} crud.read(query=query) crud.delete(msg) return msg.data except DoesNotExist: raise except ValidationError as e: logging.error(str(e)) raise ValidationError except Exception as e: raise e
async def deleteRecord(cls, currentUser): msg = Message() crud = CRUD(cls=cls) try: currentUser = dict(currentUser) query = {"username": currentUser.get('username'), 'active': True} crud.read(query=query) crud.delete(msg) await UserInfo.deleteRecord(crud.documents[0].id) return msg.data except DoesNotExist: raise except Exception as e: msg.addMessage('Error', str(e)) raise
async def deleteRecord(cls, objectID: str) -> None: msg = Message() crud = CRUD(cls=cls) try: query = {"id": objectID, 'active': True} crud.read(query=query) crud.delete(msg) roomDoc = Room.objects.get(id=crud.documents[0].room.id) roomDoc.update(available=True) return msg.data except DoesNotExist: raise except ValidationError as e: logging.error(str(e)) raise ValidationError except Exception as e: raise e
async def updateRecord(cls, user: UserParams, newData: UserInfoParams): msg = Message() crud = CRUD(cls=cls) user = dict(user) try: query = {"user_id": user.get('id'), 'active': True} exclude = cls._meta.get("exclude_from_update", []) if 'id' not in exclude: exclude.append('id') crud.read(query=query) crud.update(newData, msg, exclude=exclude) return msg.data except DoesNotExist: raise except Exception as e: msg.addMessage('Error', str(e)) raise
async def updateRecord(cls, **kwargs): msg = Message() crud = CRUD(cls=cls) try: query = {"id": kwargs.get('id'), 'active': True} exclude = cls._meta.get("exclude_from_update", []) if 'id' not in exclude: exclude.append('id') crud.read(query=query) crud.update(kwargs, msg, exclude=exclude) return msg.data except DoesNotExist: raise except ValidationError as e: logging.error(str(e)) raise ValidationError except Exception as e: msg.addMessage('Error', str(e)) raise
async def updateRecord(cls, currentUser, newData: dict): msg = Message() crud = CRUD(cls=cls) try: if "password" in newData: newData['password'] = get_hash(newData['password']) currentUser = dict(currentUser) query = {"username": currentUser.get('username')} exclude = cls._meta.get("exclude_from_update", []) if 'id' not in exclude: exclude.append('id') crud.read(query=query) crud.update(newData, msg, exclude=exclude) return msg.data except DoesNotExist: raise except Exception as e: msg.addMessage('Error', str(e)) raise