Пример #1
0
def txn_add_booking(session, data):
    """ Добавить бронь и информацию о ней в билеты """
    check_password_to_cancel(data["password_to_cancel"])
    book_tickets = add_booking_in_tickets(data, session)
    booking_id = add_doc_booking(data, book_tickets, session)
    commit_with_retry(session)
    return booking_id
Пример #2
0
def txn_cancel_booking(session, booking_id):
    """ Удалить бронь и разбронировать билеты """
    tickets = MONGO.db.booking.find_one(
        {"_id": booking_id}, {"tickets._id": 1})["tickets"]
    for ticket in tickets:
        cancel_booking_in_ticket(ticket["_id"], session)
    MONGO.db.booking.delete_one({"_id": booking_id})
    commit_with_retry(session)
    return True
Пример #3
0
def api_register_user(session, data):
    """ Добавить нового пользователя"""
    if not check_login(data["login"]):
        raise ErrorDataDB("Такой пользователь уже зарегистрирован")
    try:
        user = {
            "login": data["login"],
            "password": data["password"]
        }
    except KeyError as ex:
        raise ErrorDataDB("Отсутствует ключ {}".format(ex))
    MONGO.db.users.insert_one(user, session=session)
    commit_with_retry(session)
    return data["login"]
Пример #4
0
def txn_delete_post(session, post_id):
    """Удалить публикацию"""
    MONGO.db.booking.delete_one({"_id": post_id})
    commit_with_retry(session)
    return True
Пример #5
0
def txn_add_post(session, post):
    """ Добавить публикацию """
    MONGO.db.posts.insert_one(post)
    commit_with_retry(session)
    return True