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)
def get_photo(request,oid): try: user = authenticate_api_request(request) authorize_user(user, request, "get") authorize_user(user,request,"get") photo = Photo.objects.get(id=oid) except ReadJSONError as e: return server_error(e.value) except (AuthenticationFailed, AuthorizationError) as e: return server_error(e.value) except Photo.DoesNotExist: return server_error('Photo with id '+str(oid)+' not found. Deletion failed') data = get_photo_data(photo,user) return server_data(data)
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)