Ejemplo n.º 1
0
def add_business(request):
    try:
        user = authenticate_api_request(request)
        authorize_user(user, request, "add")
        bus = Business()
        name=get_json_post_or_error('businessName', request)
        addr=get_json_post_or_error('streetAddr', request)
        city = get_json_post_or_error('businessCity', request)
        state = get_json_post_or_error('businessState', request)
        phone =  get_json_post_or_error('businessPhone', request)
        
        #already exists
        if Business.objects.filter(name=name,address=addr,city=city,state=state).count() ==  0:
            bus = Business(name=name,address=addr,city=city,state=state)
            bus.save()
        elif Business.objects.filter(name=name,address=addr,city=city,state=state).count() > 1: #too many
            Business.objects.filter(name=name,address=addr,city=city,state=state).delete()
            Business.objects.create(name=name,address=addr,city=city,state=state,phone=phone)
        else:
            bus = Business.objects.get(name=name,address=addr,city=city,state=state)                    
    except ReadJSONError as e:
        return server_error(e.value)
    except (AuthenticationFailed, AuthorizationError) as e:
        return server_error(e.value) 
    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)
Ejemplo n.º 2
0
def add_query(request):
    try:
        user = authenticate_api_request(request)
        authorize_user(user, request, "add")
        query = Query()
        query.name = get_json_post_or_error('queryName',request)
        query.creator = user#get_json_or_error('queryName',request)
        query.proximity = get_json_post_or_error('proximityWeight',request)
        query.price = get_json_post_or_error('priceWeight',request)
        query.value = get_json_post_or_error('valueWeight',request)
        query.score = get_json_post_or_error('scoreWeight',request)
        query.userHasVisited = get_json_post_or_error('userHasVisited',request)
        query.text = get_json_post_or_error('searchText',request)
        query.networked = get_json_post_or_error('networked',request)
        query.deal = get_json_post_or_error('deal',request)
        query.is_default = False# get_json_or_error('deal',request)
        query.save()
        if 'queryTags' not in request.POST:
            return server_error("Categories did not provide a list")
        categoryList = request.POST.getlist('queryCategories')
        for c in categoryList:
            if Tag.objects.filter(id=c).count() == 0:
                return server_error("Invalid Category provided")
            cat = Tag.objects.get(id=c)
            QueryTag.objects.create(query=query,tag=cat)
    except ReadJSONError as e:
        return server_error(e.value)
    except (AuthenticationFailed, AuthorizationError) as e:
        return server_error(e.value)
    except:
        return server_error("Could not save the object")
    data = get_query_data(query,user)
    return server_data(data)
Ejemplo n.º 3
0
def edit_comment(request,oid):
    try:
        user = authenticate_api_request(request)
        authorize_user(user, request, "edit")
        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)
    
    comment = CategoryDiscussion.objects.create(id=oid,content=content)
    data = get_comment_data(comment,user)
    return server_data(data)
Ejemplo n.º 4
0
def add_photo(request):
    try:
        user = authenticate_api_request(request)
        authorize_user(user, request, "add")
        caption = get_json_post_or_error('photoCaption', request)
        title = get_json_post_or_error('photoTitle', request)
    except ReadJSONError as e:
        return server_error(e.value)
    except (AuthenticationFailed, AuthorizationError) as e:
        return server_error(e.value)
        
    if 'businessID' not in request.GET:
        b = None
        defaultUserPhoto = True

    else:
        defaultUserPhoto = False

        bid = request.GET['businessID']
        try:
            b = Business.objects.get(id=bid)
        except:
            return server_error("Could not retrieve business with ID "+str(bid)+ " for add_photo")

    
    if 'image' in request.FILES:
        img = request.FILES['image']
        photo = add_photo_by_upload(img,b,request.user,defaultUserPhoto,caption,title)
    elif 'url' in request.POST:
        url = request.POST['url']
        if url != '':
            photo = add_photo_by_url(url, b, request.user, defaultUserPhoto,caption,title)
    else:
        return server_error("No photo specified in request.FILES or URL in request.POST")
    data = get_photo_data(photo,user)
    return server_data(data)
Ejemplo n.º 5
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)