Esempio n. 1
0
def add_comment(request):
    try: 
        user = authenticate_api_request(request)
        oid = get_json_get_or_error('commentBaseID', request)  
        commentType = get_json_get_or_error('type', request)  
        content = get_json_post_or_error('commentContent', request)  
    except ReadJSONError as e:
        return server_error(e.value)
    except (AuthenticationFailed, AuthorizationError) as e:
        return server_error(e.value)

    try:
        if 'replyTo' in request.GET:
            replyToID = request.GET['replyTo']
            replyComment = Discussion.objects.get(id=replyToID)
        else:
            replyComment = None
    except:
        return server_error("No comment found with id "+str(replyToID))
    
    if commentType == 'business':
        try:
            bus = Business.objects.get(id=oid)
        except:
            return server_error("Business with ID "+str(oid)+ " does not exist")
        comment = BusinessDiscussion.objects.create(user=user,reply_to=replyComment,content=content,business=bus)
    elif commentType == 'category':
        try:
            btag = BusinessTag.objects.get(id=oid)
        except:
            return server_error("Category with ID "+str(oid)+ " does not exist")
        comment = CategoryDiscussion.objects.create(user=user,reply_to=replyComment,content=content,businesstag=btag)
    elif commentType == 'photo':
        try:
            photo = Photo.objects.get(id=oid)
        except:
            return server_error("Photo with ID "+str(oid)+ " does not exist")
        comment = PhotoDiscussion.objects.create(user=user,reply_to=replyComment,content=content,photo=photo)  
    else:
        return server_error("Invalid commentType "+str(commentType))
    data = get_comment_data(comment,user)
    return server_data(data)
Esempio n. 2
0
def get_photos(request,oid):
    try:
        user = authenticate_api_request(request)
        authorize_user(user, request, "get")
        phototype = get_json_get_or_error('type', request)  
        order_by = get_json_get_or_error('order_by', request)  
    except ReadJSONError as e:
        return server_error(e.value)
    except (AuthenticationFailed, AuthorizationError) as e:
        return server_error(e.value)

    
    if phototype=="business":
        try:
            bus = Business.objects.get(id=oid)
        except:
            return server_error("No business with ID"+str(oid)+" found")
        allphotos= Photo.objects.filter(business=bus)           
    else:
        allphotos= Photo.objects.filter(user=user,business=None)
        
    data = get_photos_data(allphotos,user,order_by=order_by)
    return server_data(data)
Esempio n. 3
0
def rate_photo(request,oid):
    try:
        user = authenticate_api_request(request)
        authorize_user(user, request, "rate")
        rating = get_json_get_or_error('rating', request)
    except ReadJSONError as e:
        return server_error(e.value)
    except (AuthenticationFailed, AuthorizationError) as e:
        return server_error(e.value)


    photo = Photo.objects.get(id=oid)            
    PhotoRating.objects.create(rating = rating,user=user,photo=photo)
    data = get_photo_data(photo,user)
    return server_data(data)
Esempio n. 4
0
def rate_comment(request,oid):
    try:
        user = authenticate_api_request(request)
        authorize_user(user, request, "rate")
        rating = get_json_get_or_error('rating', request)
        comment = Discussion.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('Comment with id '+str(oid)+'not found')

    CommentRating.objects.create(user=user,rating=rating,comment=comment)
    data = get_comment_data(comment,user)
    return server_data(data)
Esempio n. 5
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)
Esempio n. 6
0
def get_queries(request):
    try:
        user = authenticate_api_request(request)
        authorize_user(user, request, "get")
        querytype = get_json_get_or_error('type', request)
    except ReadJSONError as e:
        return server_error(e.value)
    except (AuthenticationFailed, AuthorizationError) as e:
        return server_error(e.value)
      
    if querytype=='yours':
        queries = Query.objects.filter(creator=user)
    elif querytype=='popular': 
        queries = Query.objects.filter(is_default=True)
    else:
        queries = Query.objects.filter(creator=user)
    data = get_queries_data(queries,user)
    return server_data(data)
Esempio n. 7
0
def rate_business(request,oid):
    try:
        user = authenticate_api_request(request)
        authorize_user(user, request, "rate")
        rating = get_json_get_or_error('rating', request)
        bus = Business.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('Business with id '+str(oid)+'not found')    
        
    if Rating.objects.filter(business=bus,user=user).count() > 0:
        Rating.objects.filter(business=bus,user=user).delete()
    Rating.objects.create(business=bus, rating=rating,user=user) 
    bus.dist = distance.distance(user.current_location,(bus.lat,bus.lon)).miles
    bus_data = get_single_bus_data_ios(bus,user)
    return server_data(bus_data)
Esempio n. 8
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)