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)
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)
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
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)