Пример #1
0
def get_banners_iter():
    """
    Fetch all banner documents from the database.

    :return: Iterable banner collection (QueryIterator)
    """
    collection = yield db.get_banner_collection()
    defer.returnValue(QueryIterator(collection.find(cursor=True)))
Пример #2
0
def delete_campaign_banners(campaign_id):
    """
    Remove banners (for a campaign) from the database.

    :param campaign_id: Campaign identifier.
    :return:
    """
    collection = yield db.get_banner_collection()
    return_value = yield collection.delete_many({'campaign_id': campaign_id})
    defer.returnValue(return_value)
Пример #3
0
def get_campaign_banners(campaign_id):
    """
    Fetch the banner documents from the database for a given campaign.

    :param campaign_id: Campaign identifier.
    :return: List of banner documents.
    """
    collection = yield db.get_banner_collection()
    return_value = yield collection.find({'campaign_id': campaign_id})
    defer.returnValue(return_value)
Пример #4
0
def get_banner(banner_id):
    """
    Fetch the banner document from the database.

    :param banner_id: Banner identifier.
    :return: Banner document.
    """
    collection = yield db.get_banner_collection()
    return_value = yield collection.find_one({'banner_id': banner_id})
    defer.returnValue(return_value)
Пример #5
0
def update_banner(banner_doc):
    """
    Update banner data or create a new one if doesn't exist.

    :param banner_doc: New banner data, must include banner_id.
    :return: deferred instance of :class:`pymongo.results.UpdateResult`.
    """
    collection = yield db.get_banner_collection()
    return_value = yield collection.replace_one({'banner_id': banner_doc['banner_id']},
                                                banner_doc, upsert=True)
    defer.returnValue(return_value)