Example #1
0
def get_business_category(request,oid):
    try:
        user = authenticate_api_request(request)
        authorize_user(user, request, "get")
        category = BusinessTag.objects.get(id=oid)
    except ReadJSONError as e:
        return server_error(e.value)
    except (AuthenticationFailed, AuthorizationError) as e:
        return server_error(e.value)
    except: 
        return server_error('Category with id '+str(oid)+'not found')
    
    data = get_category_data(category,user)
    return server_data(data)
Example #2
0
def rate_business_category(request,oid):
    try:
        user = authenticate_api_request(request)
        authorize_user(user, request, "rate")
        rating = get_json_get_or_error('rating', request)
        category = BusinessTag.objects.get(id=oid)
    except ReadJSONError as e:
        return server_error(e.value)
    except (AuthenticationFailed, AuthorizationError) as e:
        return server_error(e.value)
    except: 
        return server_error('Category with id '+str(oid)+'not found')
    
    TagRating.objects.create(user=user,tag=category,rating=rating)
    
    data = get_category_data(category,user)
    return server_data(data)
Example #3
0
def get_single_bus_data_ios(b, user):
    if b.lat == 0 or b.lon == 0:
        b = setBusLatLng(b)

    d = dict()
    d["businessID"] = b.id
    d["businessName"] = b.name
    d["businessCity"] = b.city
    d["businessState"] = b.state
    d["streetAddr"] = b.address

    d["latitude"] = b.lat
    d["longitude"] = b.lon
    d["businessID"] = b.id
    d["businessPhone"] = "555 555-5555"

    d["distanceFromCurrentUser"] = str(b.get_distance(user))

    d["ratingOverAllUsers"] = round(getBusAvg(b.id) * 2) / 2
    d["photo"] = get_photo_url(b)
    d["numberOfRatings"] = getNumRatings(b.id)

    d["numberOfLoves"] = getNumLoved(b)
    d["numberOfLikes"] = getNumLiked(b)

    # the user exists and has rated something
    if user and Rating.objects.filter(user=user, business=b).count() > 0:
        try:
            r = Rating.objects.get(user=user, business=b)
        except Rating.MultipleObjectsReturned:
            r = Rating.objects.filter(user=user, business=b)[0]
        d["ratingForCurrentUser"] = r.rating
    else:
        d["ratingForCurrentUser"] = 0

    bustags = BusinessTag.objects.filter(business=b)  # .exclude(tag=get_master_summary_tag())
    d["categories"] = []
    for bt in bustags:
        d["categories"].append(get_category_data(bt, user))

    if d["ratingForCurrentUser"] == 0:
        # b.recommendation = get_best_current_recommendation(b, user)

        d["ratingRecommendation"] = getBusAvg(b.id)
    return d
Example #4
0
def add_business_category(request,oid):
    try:
        user = authenticate_api_request(request)
        authorize_user(user, request, "add")
        tagid = get_json_get_or_error('tagID', request)
        bus = Business.objects.get(id=oid)
        tag = Tag.objects.get(id=tagid)
    except ReadJSONError as e:
        return server_error(e.value)
    except (AuthenticationFailed, AuthorizationError) as e:
        return server_error(e.value)
    except: 
        return server_error('Retrieving business and category failed (IDs: '+str(oid)+ ' and ' + str(tagid))
    
    if BusinessTag.objects.filter(business=bus,tag=tag).count() > 0:
        category = BusinessTag.objects.get(business=bus, tag=tag)
    else:
        category = BusinessTag.objects.create(business=bus,tag=tag,creator=user)
    data = get_category_data(category,user)
    return server_data(data)