def term_search(request):
    """
     JSON view that outputs a list of record's legacy bib numbers in JSON

    :param request: Djagno HTTP Request
    """
    call_number=request.REQUEST.get('call_number')
    if request.REQUEST.has_key("type"):
        call_number_type = request.REQUEST.get('type')
    else:
        call_number_type = "lccn"
    if request.REQUEST.has_key("slice-size"):
        slice_size = int(request.REQUEST.get('slice-size'))
    else:
        slice_size = 2 # Default assumes browse display of two results
    current = redis_helpers.get_record(call_number=call_number)
    bib_numbers = []
    if current is not None:
        bib_numbers.append(current.get('bib_number'))
        current_rank = redis_helpers.get_rank(call_number,
                                              call_number_type=call_number_type)

        next_recs = redis_helpers.get_slice(current_rank+1,
                                            current_rank+slice_size,
                                            call_number_type)
        for row in next_recs:
            bib_numbers.append(row.get('bib_number'))
        previous_recs = redis_helpers.get_previous(call_number,
                                                   call_number_type=call_number_type)
        for row in previous_recs:
            bib_numbers.insert(0,row.get('bib_number'))
    return {'bib_numbers':bib_numbers}
def discovery_search(request):
    """
    Supports discovery layer search

    :param request: HTTP Request
    """
    brief_marcr = []
    call_number = request.REQUEST.get('q')
    if request.REQUEST.has_key("type"):
        call_number_type = request.REQUEST.get('type')
    else:
        call_number_type = "lcc"
    if request.REQUEST.has_key("slice-size"):
        slice_size = int(request.REQUEST.get('slice-size'))
    else:
        slice_size = 20
    rank = redis_helpers.get_rank(call_number,
                                  call_number_type=call_number_type)
    call_num_slice  = redis_server.zrange("{0}-sort-set".format(call_number_type),
                                          rank,
                                          rank+slice_size)
    instance_keys = []
    for call_num in call_num_slice:
        instance_keys.append(redis_server.hget('{0}-hash'.format(call_number_type),
                                               call_num))
    for key in instance_keys:
        rec = marcr.app_helpers.get_brief(redis_authority=settings.AUTHORITY_REDIS,
                                          redis_instance=settings.INSTANCE_REDIS,
                                          redis_work=settings.WORK_REDIS,
                                          instance_key=key)
        rec["search_prefix"] = redis_server.hget("{0}:rda:identifierForTheManifestation".format(key),
                                                 call_number_type)
        brief_marcr.append(rec)
    return {'results':brief_marcr}