def test0200_create_rental(self): customer = Customer(name='Raven', phone='010-9508-1111') customer.save() book = Book(title="ABC", author='Julia', publisher='WinWin') book.save() rental = Rental(book=book, customer=customer) rental.rental_start = datetime.datetime(2020, 8, 15, 00, 00, 00) rental.save() result = Rental.objects().fields(id=0).first() print(result.to_json(follow_reference=True))
def post(self): request.get_json(force=True) args = book_parser.parse_args() book = Book(**args) db_session.add(book) db_session.commit() return None
def get(self): args = rental_parser.parse_args() queries = dict() logger.debug(args) # WHERE if args.setdefault('book_id', None): book = Book.objects(book_id=args['book_id']).first() queries[f'book'] = book if args.setdefault('customer_id', None): customer = Customer.objects(customer_id=args['customer_id']).first() queries[f'customer'] = customer # DATE TIME if args.setdefault('rental_start', None): dt = datetime.datetime.fromisoformat(args['rental_start']) queries[f'rental_start__lte'] = dt if args.setdefault('rental_end', None): if args['rental_end']: dt = datetime.datetime.fromisoformat(args['rental_end']) queries[f'rental_end__gte'] = dt else: queries[f'rental_end__gte'] = None # OFFSET/LIMIT offset = args.setdefault('offset', None) limit = args.setdefault('limit', None) values = Rental.objects(**queries)[offset:limit].to_json() return json.loads(values)
def get(self): args = book_parser.parse_args() queries = dict() for arg in args: queries[f'{arg}__icontains'] = args[arg] values = Book.objects(**queries).to_json() return json.loads(values)
def post(self): request.get_json(force=True) logger.debug(request) args = rental_parser.parse_args() customer = Customer.objects(customer_id=args['customer_id']).first() book = Book.objects(book_id=args['book_id']).first() rental = Rental(customer=customer, book=book) rental.save() return None
def add_books(self): for book in BOOKS: self.session.add(Book(*book)) self.session.commit()
def delete(self, book_id): Book.objects(book_id=book_id).delete() return None
def patch(self, book_id): args = customers_parser.parse_args() Book.objects(book_id=book_id).update(**args) return None
def get(self, book_id): book = Book.objects(book_id=book_id).first() return book.to_mongo().to_dict()
def post(self): request.get_json(force=True) args = book_parser.parse_args() customer = Book(**args) customer.save() return None