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))
Exemplo n.º 2
0
 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
Exemplo n.º 3
0
    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)
Exemplo n.º 4
0
 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)
Exemplo n.º 5
0
 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
Exemplo n.º 6
0
 def add_books(self):
     for book in BOOKS:
         self.session.add(Book(*book))
     self.session.commit()
Exemplo n.º 7
0
 def delete(self, book_id):
     Book.objects(book_id=book_id).delete()
     return None
Exemplo n.º 8
0
 def patch(self, book_id):
     args = customers_parser.parse_args()
     Book.objects(book_id=book_id).update(**args)
     return None
Exemplo n.º 9
0
 def get(self, book_id):
     book = Book.objects(book_id=book_id).first()
     return book.to_mongo().to_dict()
Exemplo n.º 10
0
 def post(self):
     request.get_json(force=True)
     args = book_parser.parse_args()
     customer = Book(**args)
     customer.save()
     return None