Example #1
0
def get_target_delivery_response(get_offers_options, request_id, views):
    target_delivery_response = target_service.prefetch_views_target_delivery_response(request,
                                                                                      request_id,
                                                                                      get_offers_options,
                                                                                      views)
    response = Response(target_delivery_response.get("response").to_str(), status=200, mimetype='application/json')
    set_target_cookies(response, target_delivery_response)
    return response
Example #2
0
def execute_page_load():
    """
    Make an execute pageload request to get all initial offers at page load time, get cookies for request if they exist,
    and on response set Target cookie for use with next request
    """
    get_offers_options = initialize_options(request)
    target_delivery_response = target_service.get_page_load_target_delivery_response(request, get_offers_options)
    response = Response(target_delivery_response.get("response").to_str(), status=200, mimetype='application/json')
    set_target_cookies(response, target_delivery_response)
    return response
Example #3
0
def execute_mbox():
    """
    Make an execute mboxes request, get cookies for request if they exist,
    and on response set Target cookie for use with next request
    """
    get_offers_options = initialize_options(request)

    mboxes = request.args.get("mbox", "")
    if not mboxes:
        return Response("No Content", status=204)

    execute_mboxes = [MboxRequest(name=mbox, index=index) for index, mbox in enumerate(mboxes.split(","))]
    target_delivery_response = target_service.get_mbox_target_delivery_response(request, get_offers_options,
                                                                                execute_mboxes=execute_mboxes)

    response = Response(target_delivery_response.get("response").to_str(), status=200, mimetype='application/json')
    set_target_cookies(response, target_delivery_response)
    return response
Example #4
0
def send_notifications():
    """
    Takes a payload based on response from a prefetch request (in json format) from previous get_offers call, converts
    it to a PrefetchResponse object, uses it to create DeliveryRequest with notifications, and makes a
    send_notifications call. This implementation makes a synchronous call, but async execution is supported via ether
    callback or asyncio's async/await.  See prefetch_view() and prefetch_view_asyncio() above for examples of
    both async implementations.
    """
    send_notifications_options = initialize_options(request)
    notifications_dict = request.get_json(force=True)

    notifications = []
    if notifications_dict.get("views"):
        notifications.extend(_get_all_view_notifications(notifications_dict.get("views")))
    if notifications_dict.get("mboxes"):
        notifications.extend(_get_all_mbox_notifications(notifications_dict.get("mboxes")))

    target_delivery_response = target_service.send_notifications(request, send_notifications_options, notifications)

    response = Response(target_delivery_response.get("response").to_str(), status=200, mimetype='application/json')
    set_target_cookies(response, target_delivery_response)
    return response
Example #5
0
def prefetch_mbox():
    """
    Make a single request that includes both execute mboxes request as well as prefetch mboxes request.
    Get cookies for request if they exist, and on response set Target cookie for use with next request
    """
    get_offers_options = initialize_options(request)

    mboxes = request.args.get("mbox", "")
    prefetch = request.args.get("prefetch", "")
    if not mboxes and not prefetch:
        return Response("No Content", status=204)

    execute_mboxes = [MboxRequest(name=mbox, index=index) for index, mbox in enumerate(mboxes.split(","))] \
        if mboxes else None
    prefetch_mboxes = [MboxRequest(name=mbox, index=index) for index, mbox in enumerate(prefetch.split(","))] \
        if prefetch else None
    target_delivery_response = target_service.get_mbox_target_delivery_response(request, get_offers_options,
                                                                                execute_mboxes=execute_mboxes,
                                                                                prefetch_mboxes=prefetch_mboxes)

    response = Response(target_delivery_response.get("response").to_str(), status=200, mimetype='application/json')
    set_target_cookies(response, target_delivery_response)
    return response
Example #6
0
def get_offers_callback(request_id, target_delivery_response):
    response = Response(target_delivery_response.get("response").to_str(), status=200, mimetype='application/json')
    set_target_cookies(response, target_delivery_response)
    results[request_id] = response