Ejemplo n.º 1
0
 def post(self, request, format=None):
     request = {k: v for k, v in request.DATA.iteritems()}
     user = User.objects.get(pk=request.pop('user_id'))
     check = check_session(user, request.pop('session_id'))
     if check[1]:
         library = Library.objects.get(pk=request['library_id'])
         page = request.get('page', 1)
         amount = request.get('amount', 5)
         yaps_list = [
             yp_order.yap for yp_order in library.library_yap_order.filter(
                 is_active=True).order_by('-order')
         ][:amount]
         paginator = Paginator(object_list=yaps_list,
                               per_page=amount,
                               allow_empty_first_page=False)
         try:
             yaps = paginator.page(page)
         except PageNotAnInteger:
             # If page is not an integer, deliver first page.
             return Response({
                 "valid": False,
                 "message": "Page is not an integer."
             })
         except EmptyPage:
             # If page is out of range (e.g. 9999), deliver last page of results.
             return Response({"valid": True, "data": None})
         serialized = AbstractYapSerializer(yaps,
                                            many=True,
                                            data=self.request.DATA,
                                            context={'user': user})
         return Response({"valid": True, "data": serialized.data})
     else:
         return Response({"valid": False, "message": check[0]})
Ejemplo n.º 2
0
 def post(self, request):
     kwargs = {k: v for k, v in request.DATA.iteritems()}
     user = User.objects.get(pk=kwargs.pop('user_id'))
     check = check_session(user=user, session_id=kwargs.pop('session_id'))
     if check[1]:
         library = Library.objects.get(pk=kwargs.get('library_id'))
         if library.user == user:
             return Response({
                 "valid":
                 False,
                 "message":
                 "You cannot subscribe your own library."
             })
         response = user.functions.subscribe_library(library=library)
         if isinstance(response, str):
             return Response({"valid": False, "message": response})
         else:
             # subscribed_user = User.objects.get(pk=kwargs.get('user_subscribing_id'))
             # subscribe_user = SubscribeUser.objects.get(user=user,subscribed_user=subscribed_user,is_active=True)
             # if follower_request.is_accepted == True:
             # 	if user.settings.facebook_connection_flag == True:
             # 		if 'facebook_shared_flag' in kwargs:
             # 			if kwargs.get('facebook_shared_flag') == True:
             # 				facebook_shared_story = facebook.share_new_following_story_on_facebook(user=user,user_followed=user_requested,facebook_access_token=kwargs.get('facebook_access_token'))
             return Response({"valid": True, "data": None})
     else:
         return Response({"valid": False, "message": check[0]})
Ejemplo n.º 3
0
	def post(self,request):
		"""example json
		"""
		kwargs = {k:v for k,v in request.DATA.iteritems()}
		user = User.objects.get(pk=kwargs['user_id'])
		check = check_session(user=user,session_id=kwargs['session_id'])
		if check[1]:
			listen = Listen.objects.get(pk=kwargs['listen_id'])
			if kwargs['obj_type'] == "yap":
				obj = Yap.objects.get(pk=kwargs['obj'])
			else:
				obj = Reyap.objects.get(pk=kwargs['obj'])
			if kwargs.get('facebook_shared_flag') == True:
				if kwargs.get('facebook_access_token'):
					if user.settings.facebook_connection_flag == True:
						facebook_access_token = kwargs.pop('facebook_access_token')
					else:
						return Response({"valid":False,"message":"User hasn't connected their account to facebook."})
				else:
					return Response({"valid":False,"message":"Yap cannot be shared to facebook without an facebook_access_token."})
			response = user.functions.like(obj,listen,kwargs['time_clicked'])
			if isinstance(response,dict):
				return Response(response)
			else:
				if kwargs.get('facebook_shared_flag') == True and user.settings.facebook_connection_flag == True:
					if kwargs['obj_type'] == "yap":
						f = facebook.share_like_story_on_facebook(user=user,facebook_access_token=facebook_access_token,yap=obj)
					elif kwargs['obj_type'] == "reyap":
						f = facebook.share_like_story_on_facebook(user=user,facebook_access_token=facebook_access_token,reyap=obj)
				return Response({"valid":True})
		else:
			return Response({"valid":True,"message":check[0]})
Ejemplo n.º 4
0
 def post(self, request):
     kwargs = {k: v for k, v in request.DATA.iteritems()}
     print kwargs
     user = User.objects.get(pk=kwargs.pop('user_id'))
     check = check_session(user=user, session_id=kwargs.pop('session_id'))
     if check[1]:
         title = kwargs.get('title')
         description = kwargs.get('description')
         picture_flag = kwargs.get('picture_flag')
         if picture_flag == True:
             picture_path = kwargs.get('picture_path')
             picture_cropped_flag = kwargs.get('picture_cropped_flag')
             if picture_cropped_flag == True:
                 picture_cropped_path = kwargs.get('picture_cropped_path')
                 library = create_library(
                     user=user,
                     title=title,
                     description=description,
                     picture_flag=picture_flag,
                     picture_path=picture_path,
                     picture_cropped_flag=picture_cropped_path,
                     picture_cropped_path=picture_cropped_path)
         return Response({
             "valid": True,
             "message": "Library has successfully been created.",
             "library_id": library.pk
         })
     else:
         return Response(check[0])
Ejemplo n.º 5
0
 def post(self, request, **kwargs):
     request = {k: v for k, v in request.DATA.iteritems()}
     user = User.objects.get(pk=request.pop('user_id'))
     check = check_session(user=user, session_id=request.pop('session_id'))
     obj = request['obj']
     obj_type = request['obj_type']
     if check[1]:
         if obj_type == "yap":
             try:
                 result = Yap.objects.get(pk=obj, is_active=True)
             except ObjectDoesNotExist:
                 return Response({
                     'valid': False,
                     'message': 'This yap does not exist.'
                 })
         elif obj_type == "reyap":
             try:
                 result = Reyap.objects.get(pk=obj, is_active=True)
             except ObjectDoesNotExist:
                 return Response({
                     'valid': False,
                     'message': 'This reyap does not exist.'
                 })
         serialized = PushNotificationObjectSerializer(
             result, data=self.request.DATA, context={'user': user})
         return Response(serialized.data)
     else:
         return Response(check[0])
Ejemplo n.º 6
0
	def post(self,request,format=None):
		request = {k:v for k,v in request.DATA.iteritems()}
		a = timezone.now()
		user = User.objects.get(pk=request['user_id'])
		if request['profile_user_id']:
			profile_user = User.objects.get(pk=request['profile_user_id'])
		else:
			profile_user = user
		check = check_session(user=user,session_id=request.pop('session_id'))
		if check[1]:
			after_yap = request.get("after_yap",None)
			after_reyap = request.get("after_reyap",None)
			after = request.get("after",None)
			stream_type = request['stream_type']
			if stream_type == "posts":
				stream = profile_user.functions.load_profile_posts(request['amount'],after_yap=after_yap,after_reyap=after_reyap)
				serialized = ProfilePostStreamSerializer(stream,data=self.request.DATA,many=True,context={'user':user})
				return Response(serialized.data)
			elif stream_type == "likes":
				stream = profile_user.functions.load_profile_likes(request['amount'],after=after)
				serialized = ProfileLikeStreamSerializer(stream,data=self.request.DATA,many=True,context={'user':user})
				return Response(serialized.data)
			elif stream_type == "listens":
				if profile_user.profile.listen_stream_public == True or user == profile_user:
					stream = profile_user.functions.load_profile_listens(request['amount'],after=after)
					serialized = ProfileListenStreamSerializer(stream,data=self.request.DATA,many=True,context={'user':user})
					return Response(serialized.data)
				else:
					return Response({"Valid":False, "Message":"This user's listen stream is private."})
			else:
				stream = Yap.objects.none()
		else:
			return Response(check[0])
Ejemplo n.º 7
0
	def post(self,request,**kwargs):
		request = {k:v for k,v in request.DATA.iteritems()}
		user = User.objects.get(pk=request.pop('user_id'))
		check = check_session(user=user,session_id=request.pop('session_id'))
		obj = request['obj']
		obj_type = request['obj_type']
		if check[1]:
			if obj_type == "yap":
				try:
					obj = Yap.objects.get(pk=obj,is_active=True)
				except ObjectDoesNotExist:
					return Response({'valid':False,'message':'This yap does not exist.'})
				if 'after' in request:
					reyap_objects_of_users_that_reyapped_this_object = Reyap.objects.filter(is_active=True,yap=obj,date_created__lt=dateutil.parser.parse(request.get('after')))
				else:
					reyap_objects_of_users_that_reyapped_this_object = Reyap.objects.filter(is_active=True,yap=obj)
			elif obj_type == "reyap":
				try:
					obj = Reyap.objects.get(pk=obj,is_active=True)
				except ObjectDoesNotExist:
					return Response({'valid':False,'message':'This reyap does not exist.'})
				if 'after' in request:
					reyap_objects_of_users_that_reyapped_this_object = Reyap.objects.filter(is_active=True,yap=obj.yap,date_created__lt=dateutil.parser.parse(request.get('after')))
				else:
					reyap_objects_of_users_that_reyapped_this_object = Reyap.objects.filter(is_active=True,yap=obj.yap)
			users_that_reyapped_this_object = sorted(set(reyap_objects_of_users_that_reyapped_this_object),reverse=True,key=attrgetter('date_created'))[:request.get("amount")]
			serialized = YapDetailsListOfLikersAndReyappers(users_that_reyapped_this_object,many=True,data=self.request.DATA,context={'user':user})
			return Response(serialized.data)
		else:
			return Response(check[0])
Ejemplo n.º 8
0
	def post(self,request,**kwargs):
		request = {k:v for k,v in request.DATA.iteritems()}
		user = User.objects.get(pk=request.pop('user_id'))
		check = check_session(user=user,session_id=request.pop('session_id'))
		obj = request['obj']
		obj_type = request['obj_type']
		if check[1]:
			twitter_access_token_key = request.pop('twitter_access_token_key')
			twitter_access_token_secret = request.pop('twitter_access_token_secret')
			if obj_type == "yap":
				try:
					result = Yap.objects.get(pk=obj,is_active=True)
				except ObjectDoesNotExist:
					return Response({'valid':False,'message':'This yap does not exist.'})
				twitter_post = twitter.share_yap_or_reyap_on_twitter(user=user,yap=result,twitter_access_token_key=twitter_access_token_key,twitter_access_token_secret=twitter_access_token_secret)
				return Response({'valid':True,'message':'Yap has successfully been shared on Twitter.'})
			elif obj_type == "reyap":
				try:
					result = Reyap.objects.get(pk=obj,is_active=True)
				except ObjectDoesNotExist:
					return Response({'valid':False,'message':'This reyap does not exist.'})
				twitter_post = twitter.share_yap_or_reyap_on_twitter(user=user,reyap=result,twitter_access_token_key=twitter_access_token_key,twitter_access_token_secret=twitter_access_token_secret)
				return Response({'valid':True,'message':'Reyap has successfully been shared on Twitter.'})
		else:
			return Response(check[0])
Ejemplo n.º 9
0
 def post(self, request, **kwargs):
     kwargs = {k: v for k, v in request.DATA.iteritems()}
     user = User.objects.get(pk=kwargs.pop('user_id'))
     check = check_session(user=user, session_id=kwargs.pop('session_id'))
     if check[1]:
         if 'twitter_connection_flag' in kwargs:
             if kwargs.get('twitter_connection_flag') == False:
                 twitter_changes = {}
                 twitter_changes['twitter_connection_flag'] = False
                 twitter_changes['twitter_account_id'] = None
                 twitter_changes['twitter_share_reyap'] = False
                 info1 = UserInfo.objects.get(username=user.username)
                 info2 = info1.modify_account(**twitter_changes)
                 new_settings = user.settings
                 serialized = SettingsSerializer(new_settings,
                                                 data=self.request.DATA)
                 return Response(serialized.data)
             else:
                 return Response({
                     "valid":
                     False,
                     "message":
                     "The twitter_connection_flag must be false to disconnect the Twitter Account."
                 })
         else:
             return Response({
                 "valid":
                 False,
                 "message":
                 "There must be a twitter_connection_flag sent which must be false to disconnect the Twitter Account."
             })
     else:
         return Response(check[0])
Ejemplo n.º 10
0
	def post(self,request):
		kwargs = {k:v for k,v in request.DATA.iteritems()}
		user = User.objects.get(pk=kwargs.pop('user_id'))
		check = check_session(user=user,session_id=kwargs.pop('session_id'))
		if check[1]:
			reyap = Reyap.objects.get(pk=kwargs['reyap_id'])
			response = reyap.delete(is_user_deleted=True)
			return Response({"valid":True,"message":response})
Ejemplo n.º 11
0
	def post(self,request):
		request = {k:v for k,v in request.DATA.iteritems()}
		user = User.objects.get(pk=request['user_id'])
		check = check_session(user,request['session_id'])
		if check[1]:
			serialized = StreamMenuSerializer(user,data=self.request.DATA)
			return Response(serialized.data)
		else:
			return Response(check[0])
Ejemplo n.º 12
0
	def post(self,request,**kwargs):
		request = {k:v for k,v in request.DATA.iteritems()}
		user = User.objects.get(pk=request.pop('user_id'))
		check = check_session(user=user,session_id=request.pop('session_id'))
		if check[1]:
			settings = user.profile
			return Response(EditProfileInfoSerializer(settings).data)
		else:
			return Response(check[0])
Ejemplo n.º 13
0
	def post(self,request,**kwargs):
		request = {k:v for k,v in request.DATA.iteritems()}
		user = User.objects.get(pk=request['user_id'])
		check = check_session(user,request['session_id'])
		if check[1]:
			serialized = ExploreScreenStatisticsSerializer(user)
			return Response(serialized.data)
		else:
			return Response(check[0])
Ejemplo n.º 14
0
 def post(self, request, **kwargs):
     request = {k: v for k, v in request.DATA.iteritems()}
     user = User.objects.get(pk=request.pop('user_id'))
     check = check_session(user=user, session_id=request.pop('session_id'))
     if check[1]:
         settings = user.settings
         return Response(SettingsSerializer(settings).data)
     else:
         return Response(check[0])
Ejemplo n.º 15
0
	def post(self,request,format=None):
		request = {k:v for k,v in request.DATA.iteritems()}
		user = User.objects.get(pk=(request['user_id']))
		check = check_session(user=user,session_id=request['session_id'])
		if check[1]:
			channels = Channel.objects.filter(is_active=True)
			serialized = YapChannelListSerializer(channels,data=self.request.DATA)
			return Response(serialized.data)
		else:
			return Response(check[0])
Ejemplo n.º 16
0
	def post(self,request):
		kwargs = {k:v for k,v in request.DATA.iteritems()}
		user = User.objects.get(pk=kwargs['user_id'])
		check = check_session(user=user,session_id=kwargs['session_id'])
		if check[1]:
			listen = Listen.objects.get(pk=kwargs['listen_id'])
			listen_click = ListenClick.objects.create(user=user,listen=listen,skipped_flag=True,time_clicked=kwargs['time_clicked'])
			return Response({"valid":True,"message":"success","listen_id":listen.pk})
		else:
			return Response(check[0])
Ejemplo n.º 17
0
 def post(self, request, **kwargs):
     request = {k: v for k, v in request.DATA.iteritems()}
     user = User.objects.get(pk=request.pop('user_id'))
     check = check_session(user=user, session_id=request.pop('session_id'))
     if check[1]:
         info = UserInfo.objects.get(username=user.username)
         profile_picture_deleted = info.delete_profile_picture()
         return Response(profile_picture_deleted)
     else:
         return Response(check[0])
Ejemplo n.º 18
0
	def post(self,request):
		kwargs = {k:v for k,v in request.DATA.iteritems()}
		user = User.objects.get(pk=kwargs['user_id'])
		check = check_session(user=user,session_id=kwargs['session_id'])
		if check[1]:
			listen = Listen.objects.get(pk=kwargs['listen_id'])
			response = listen.set_time_listened(time_listened=kwargs['time_listened'])
			return Response({"valid":True,"message":"success","listen_id":listen.pk})
		else:
			return Response(check[0])
Ejemplo n.º 19
0
	def post(self,request,**kwargs):
		request = {k:v for k,v in request.DATA.iteritems()}
		user = User.objects.get(pk=request.pop('user_id'))
		check = check_session(user=user,session_id=request.pop('session_id'))
		if check[1]:
			info = UserInfo.objects.get(username=user.username)
			profile_picture_deleted = info.delete_profile_picture()
			return Response(profile_picture_deleted)
		else:
			return Response(check[0])
Ejemplo n.º 20
0
 def post(self, request):
     kwargs = {k: v for k, v in request.DATA.iteritems()}
     user = User.objects.get(pk=kwargs.pop('user_id'))
     check = check_session(user=user, session_id=kwargs.pop('session_id'))
     if check[1]:
         library = Library.objects.get(pk=kwargs['library_id'])
         response = library.delete(is_user_deleted=False)
         return Response({"valid": True, "message": response})
     else:
         return Response(check[0])
Ejemplo n.º 21
0
	def post(self,request):
		kwargs = {k:v for k,v in request.DATA.iteritems()}
		user = User.objects.get(pk=kwargs['user_id'])
		check = check_session(user=user,session_id=kwargs['session_id'])
		if check[1]:
			#print user.functions
			response = user.functions.follow_deny(kwargs['user_requesting_id'])
			return Response({"valid":True,"message":response})
		else:
			return Response(check[0])
Ejemplo n.º 22
0
 def post(self, request):
     kwargs = {k: v for k, v in request.DATA.iteritems()}
     user = User.objects.get(pk=kwargs['user_id'])
     check = check_session(user=user, session_id=kwargs['session_id'])
     if check[1]:
         listen = Listen.objects.get(pk=kwargs['listen_id'])
         response = listen.set_time_listened(
             time_listened=kwargs['time_listened'])
         return Response({"valid": True, "data": None})
     else:
         return Response({"valid": False, "message": check[0]})
Ejemplo n.º 23
0
    def post(self, request):
        """example json
		"""
        kwargs = {k: v for k, v in request.DATA.iteritems()}
        user = User.objects.get(pk=kwargs['user_id'])
        check = check_session(user=user, session_id=kwargs['session_id'])
        if check[1]:
            yap = Yap.objects.get(pk=kwargs['yap_id'])
            if kwargs.get('longitude'):
                longitude = kwargs.pop('longitude')
            if kwargs.get('latitude'):
                latitude = kwargs.pop('latitude')
            if kwargs.get('facebook_shared_flag') == True:
                if kwargs.get('facebook_access_token'):
                    if user.settings.facebook_connection_flag == True:
                        facebook_access_token = kwargs.pop(
                            'facebook_access_token')
                    else:
                        return Response({
                            "valid":
                            False,
                            "message":
                            "User hasn't connected their account to facebook."
                        })
                else:
                    return Response({
                        "valid":
                        False,
                        "message":
                        "Yap cannot be shared to facebook without an facebook_access_token."
                    })
            if kwargs.get('longitude') and kwargs.get('latitude'):
                response = user.functions.listen(yap=yap,
                                                 longitude=longitude,
                                                 latitude=latitude)
            else:
                response = user.functions.listen(yap)
            if isinstance(response, dict):
                return Response(response)
            else:
                if kwargs.get(
                        'facebook_shared_flag'
                ) == True and user.settings.facebook_connection_flag == True:
                    f1 = facebook.share_listen_story_on_facebook(
                        user=user,
                        facebook_access_token=facebook_access_token,
                        yap=yap)
                return Response({
                    "valid": True,
                    "message": "success",
                    "Listen_id": response.pk
                })
        else:
            return Response(check[0])
Ejemplo n.º 24
0
	def post(self,request,format=None):
		kwargs = {k:v for k,v in request.DATA.iteritems()}
		print kwargs
		user = User.objects.get(pk=kwargs.pop('user_id'))
		check = check_session(user,kwargs.pop('session_id'))
		if check[1]:
			kwargs['user'] = user
			kwargs['reported_general_flag'] = True
			Report.objects.create(**kwargs)
			return Response ({"valid":True,"Message":"General report has been reported."})
		else:
			return Response(check[0])
Ejemplo n.º 25
0
 def post(self, request, format=None):
     request = {k: v for k, v in request.DATA.iteritems()}
     user = User.objects.get(pk=request.pop('user_id'))
     check = check_session(user, request.pop('session_id'))
     if check[1]:
         profile_user = User.objects.get(pk=request['profile_user_id'])
         serialized = UserSerializer(profile_user,
                                     data=self.request.DATA,
                                     context={'user': user})
         return Response({"valid": True, "data": serialized.data})
     else:
         return Response({"valid": False, "message": check[0]})
Ejemplo n.º 26
0
	def post(self,request):
		request = {k:v for k,v in request.DATA.iteritems()}
		user = User.objects.get(pk=request['user_id'])
		check = check_session(user,request['session_id'])
		if check[1]:
			notifications_read = request['notifications_read']
			for notification_read in notifications_read:
				notification_read = Notification.objects.get(pk=notification_read)
				notification_read1 = notification_read.read()
			return Response({"valid":True,"message":"Notifications have been viewed."})
		else:
			return Response(check[0])
Ejemplo n.º 27
0
	def post(self,request,format=None):
		request = {k:v for k,v in request.DATA.iteritems()}
		print request
		user = User.objects.get(pk=request['user_id'])
		check = check_session(user,request.pop('session_id'))
		if check[1]:
			profile_user = User.objects.get(pk=request['profile_user_id'])
			profile = profile_user.profile
			serialized = ProfileInfoSerializer(profile,data=self.request.DATA,context={'user':user})
			return Response(serialized.data)
		else:
			return Response(check[0])
Ejemplo n.º 28
0
 def post(self, request, format=None):
     request = {k: v for k, v in request.DATA.iteritems()}
     user = User.objects.get(pk=request['user_id'])
     check = check_session(user, request.pop('session_id'))
     if check[1]:
         dashboard = Dashboard.objects.get(user=user, is_active=True)
         if 'page' in request:
             page = request.get('page')
             amount = request.get('amount')
             minutes = 2880
             time = datetime.datetime.now() - datetime.timedelta(
                 minutes=minutes)
             yaps = Yap.objects.filter(is_active=True,
                                       date_created__gte=time)
             libraries = Library.objects.filter(yaps__in=yaps,
                                                is_active=True)
             if self.user.listens.filter(is_active=True).exists() == True:
                 key = listening_score_for_libraries
                 reverse = True
             else:
                 key = lambda *args: random.random()
                 reverse = False
             explore_top_libraries = sorted(set(libraries),
                                            key=key,
                                            reverse=reverse)[:30]
             paginator = Paginator(object_list=explore_top_libraries,
                                   per_page=amount,
                                   allow_empty_first_page=False)
             try:
                 dashboard_libraries_explored = paginator.page(page)
             except PageNotAnInteger:
                 # If page is not an integer, deliver first page.
                 return Response({
                     "valid": False,
                     "message": "Page is not an integer."
                 })
             except EmptyPage:
                 # If page is out of range (e.g. 9999), deliver last page of results.
                 return Response({"valid": True, "data": None})
         else:
             if dashboard.check_date_calculated_explore_top_libraries(
             ) == False:
                 dashboard.recalculate_subscribed_top_libraries()
             dashboard_libraries_explored = dashboard.explore_top_libraries.all(
             )
         serialized = LibraryPreviewSerializer(
             dashboard_libraries_subscribed,
             many=True,
             data=self.request.DATA,
             context={'user': user})
         return Response({"valid": True, "data": serialized.data})
     else:
         return Response({"valid": False, "message": check[0]})
Ejemplo n.º 29
0
 def post(self, request):
     kwargs = {k: v for k, v in request.DATA.iteritems()}
     user = User.objects.get(pk=kwargs['user_id'])
     check = check_session(user=user, session_id=kwargs['session_id'])
     if check[1]:
         response = user.functions.unsubscribe_library(kwargs['library_id'])
         if isinstance(response, str):
             return Response({"valid": False, "message": response})
         else:
             return Response({"valid": True, "data": None})
     else:
         return Response({"valid": False, "message": check[0]})
Ejemplo n.º 30
0
	def post(self,request):
		kwargs = {k:v for k,v in request.DATA.iteritems()}
		user = User.objects.get(pk=kwargs.pop('user_id'))
		check = check_session(user=user,session_id=kwargs.pop('session_id'))
		if check[1]:
			if Question.objects.filter(is_active=True).count() >= 1:
				question1 = Question.objects.filter(is_active=True)[0]
				serialized = QuestionSerializer(question1,data=self.request.DATA)
				return Response(serialized.data)
			else:
				return Response(None)
		else:
			return Response(check[0])
Ejemplo n.º 31
0
	def post(self,request,format=None):
		kwargs = {k:v for k,v in request.DATA.iteritems()}
		user = User.objects.get(pk=kwargs['user_id'])
		check = check_session(user=user,session_id=kwargs.pop('session_id'))
		if check[1]:
			if Answer.objects.filter(user=user,is_active=True).exists() == True:
				recommended_list = recommended_users_to_follow_according_to_questionaire(user=user)
			else:
				recommended_list = [recommended.user for recommended in Recommended.objects.filter(is_active=True)][:25]
			serialized = RecommendedSerializer(recommended_list,many=True,context={'user':user})
			return Response(serialized.data)
		else:
			return Response(check[0])
Ejemplo n.º 32
0
	def post(self,request,**kwargs):
		request = {k:v for k,v in request.DATA.iteritems()}
		user = User.objects.get(pk=request.pop('user_id'))
		check = check_session(user=user,session_id=request.pop('session_id'))
		if check[1]:
			if 'after' in request:
				list_of_following_and_followers = user.functions.list_of_following_and_followers(amount=request['amount'],after=request['after'])
			else:
				list_of_following_and_followers = user.functions.list_of_following_and_followers(amount=request['amount'])
			serialized = ListOfFollowingAndFollowersSerializer(list_of_following_and_followers,data=self.request.DATA,many=True,context={'user':user})
			return Response(serialized.data)
		else:
			return Response(check[0])
Ejemplo n.º 33
0
 def post(self, request, format=None):
     request = {k: v for k, v in request.DATA.iteritems()}
     user = User.objects.get(pk=request.pop('user_id'))
     check = check_session(user, request.pop('session_id'))
     if check[1]:
         library = Library.objects.get(pk=request.get('library_id'))
         serialized = LibraryPreviewSerializer(library,
                                               many=False,
                                               data=self.request.DATA,
                                               context={'user': user})
         return Response({"valid": True, "data": serialized.data})
     else:
         return Response({"valid": False, "message": check[0]})
Ejemplo n.º 34
0
	def post(self,request,**kwargs):
		request = {k:v for k,v in request.DATA.iteritems()}
		user = User.objects.get(pk=request.pop('user_id'))
		check = check_session(user=user,session_id=request.pop('session_id'))
		profile_user = User.objects.get(pk=request['profile_user_id'])
		if check[1]:
			if 'after' in request:
				list_of_following = profile_user.functions.list_of_following(queryset=True,amount=request['amount'],after=request['after'])
			else:
				list_of_following = profile_user.functions.list_of_following(queryset=True,amount=request['amount'])
			serialized = ListOfFollowingSerializer(list_of_following,data=self.request.DATA,many=True,context={'profile_user':profile_user})
			return Response(serialized.data)
		else:
			return Response({"Valid":False,"Message":check[0]})
Ejemplo n.º 35
0
	def post(self,request):
		kwargs = {k:v for k,v in request.DATA.iteritems()}
		user = User.objects.get(pk=kwargs['user_id'])
		check = check_session(user=user,session_id=kwargs['session_id'])
		if check[1]:
			listen = Listen.objects.get(pk=kwargs['listen_id'])
			try:
				hashtag_clicked=Hashtag.objects.get(hashtag_name=kwargs['hashtag_clicked'])
			except ObjectDoesNotExist:
				return Response({"valid":False,"message":"This hashtag doesn't exist."})
			listen_click = ListenClick.objects.create(user=user,listen=listen,hashtag_clicked_flag=True,hashtag_clicked=hashtag_clicked,time_clicked=kwargs['time_clicked'])
			return Response({"valid":True,"message":"success","listen_id":listen.pk})
		else:
			return Response(check[0])
Ejemplo n.º 36
0
	def post(self,request,**kwargs):
		request = {k:v for k,v in request.DATA.iteritems()}
		user = User.objects.get(pk=request.pop('user_id'))
		check = check_session(user=user,session_id=request['session_id'])

		if check[1]:
			try: 
				session = SessionVerification.objects.get(pk=request['session_id'])
			except ObjectDoesNotExist:
				return Response({"valid":False,"message":"You haven't signed in and set your device token yet."})
			session.sign_out_device()
			return Response({"valid":True})
		else:
			return Response(check[0])
Ejemplo n.º 37
0
 def post(self, request, **kwargs):
     request = {k: v for k, v in request.DATA.iteritems()}
     user = User.objects.get(pk=request.pop('user_id'))
     check = check_session(user=user, session_id=request.pop('session_id'))
     obj = request['obj']
     obj_type = request['obj_type']
     if check[1]:
         twitter_access_token_key = request.pop('twitter_access_token_key')
         twitter_access_token_secret = request.pop(
             'twitter_access_token_secret')
         if obj_type == "yap":
             try:
                 result = Yap.objects.get(pk=obj, is_active=True)
             except ObjectDoesNotExist:
                 return Response({
                     'valid': False,
                     'message': 'This yap does not exist.'
                 })
             twitter_post = twitter.share_yap_or_reyap_on_twitter(
                 user=user,
                 yap=result,
                 twitter_access_token_key=twitter_access_token_key,
                 twitter_access_token_secret=twitter_access_token_secret)
             return Response({
                 'valid':
                 True,
                 'message':
                 'Yap has successfully been shared on Twitter.'
             })
         elif obj_type == "reyap":
             try:
                 result = Reyap.objects.get(pk=obj, is_active=True)
             except ObjectDoesNotExist:
                 return Response({
                     'valid': False,
                     'message': 'This reyap does not exist.'
                 })
             twitter_post = twitter.share_yap_or_reyap_on_twitter(
                 user=user,
                 reyap=result,
                 twitter_access_token_key=twitter_access_token_key,
                 twitter_access_token_secret=twitter_access_token_secret)
             return Response({
                 'valid':
                 True,
                 'message':
                 'Reyap has successfully been shared on Twitter.'
             })
     else:
         return Response(check[0])
Ejemplo n.º 38
0
	def post(self,request):
		kwargs = {k:v for k,v in request.DATA.iteritems()}
		user = User.objects.get(pk=kwargs['user_id'])
		check = check_session(user=user,session_id=kwargs['session_id'])
		if check[1]:
			listen = Listen.objects.get(pk=kwargs['listen_id'])
			try:
				user_handle_clicked=User.objects.get(username=kwargs['user_handle_clicked'])
			except ObjectDoesNotExist:
				return Response({"valid":False,"message":"There is no User with this user handle."})
			listen_click = ListenClick.objects.create(user=user,listen=listen,user_handle_clicked_flag=True,user_handle_clicked=user_handle_clicked,time_clicked=kwargs['time_clicked'])
			return Response({"valid":True,"message":"success","listen_id":listen.pk})
		else:
			return Response(check[0])
Ejemplo n.º 39
0
 def post(self, request):
     kwargs = {k: v for k, v in request.DATA.iteritems()}
     user = User.objects.get(pk=kwargs['user_id'])
     check = check_session(user=user, session_id=kwargs['session_id'])
     if check[1]:
         listen = Listen.objects.get(pk=kwargs['listen_id'])
         listen_click = ListenClick.objects.create(
             user=user,
             listen=listen,
             skipped_flag=True,
             time_clicked=kwargs['time_clicked'])
         return Response({"valid": True, "data": None})
     else:
         return Response({"valid": False, "message": check[0]})
Ejemplo n.º 40
0
 def post(self, request, format=None):
     request = {k: v for k, v in request.DATA.iteritems()}
     user = User.objects.get(pk=request['user_id'])
     check = check_session(user, request.pop('session_id'))
     if check[1]:
         # start = datetime.datetime.now()
         dashboard = Dashboard.objects.get(user=user, is_active=True)
         if 'page' in request:
             page = request.get('page')
             amount = request.get('amount')
             before_for_loop_1 = datetime.datetime.now()
             # print "before for loop_1 " + str(before_for_loop_1 - start)
             subscribed_users = [
                 sub_user.subscribed_user for sub_user in
                 SubscribeUser.objects.filter(user=user, is_active=True)
             ]
             after_subscribed_users = datetime.datetime.now()
             # print "after_for_loop_1 " + str(after_subscribed_users - before_for_loop_1)
             paginator = Paginator(object_list=subscribed_users,
                                   per_page=amount,
                                   allow_empty_first_page=False)
             try:
                 dashboard_users_subscribed = paginator.page(page)
             except PageNotAnInteger:
                 # If page is not an integer, deliver first page.
                 return Response({
                     "valid": False,
                     "message": "Page is not an integer."
                 })
             except EmptyPage:
                 # If page is out of range (e.g. 9999), deliver last page of results.
                 return Response({"valid": True, "data": None})
         else:
             if dashboard.check_date_calculated_subscribed_most_listened_users(
             ) == False:
                 dashboard.recalculate_subscribed_most_listened_users()
             after_subscribed_users = datetime.datetime.now()
             # print "after_for_loop_1" + str(after_subscribed_users - start)
             dashboard_users_subscribed = dashboard.subscribed_most_listened_users.all(
             )
         serialized = UserSerializer(dashboard_users_subscribed,
                                     many=True,
                                     data=self.request.DATA,
                                     context={'user': user})
         end = datetime.datetime.now()
         # print "After serializerd " + str(end-after_subscribed_users)
         return Response({"valid": True, "data": serialized.data})
     else:
         return Response({"valid": False, "message": check[0]})
Ejemplo n.º 41
0
	def post(self,request,format=None):
		request = {k:v for k,v in request.DATA.iteritems()}
		user = User.objects.get(pk=request['user_id'])
		check = check_session(user,request['session_id'])
		if check[1]:
			if 'after' in request:
				stream = user.functions.load_stream(request['amount'],request['after'])
				serialized = PostSerializer(stream,data=self.request.DATA,many=True,context={'user':user})
				return Response(serialized.data)
			else:
				stream = user.functions.load_stream(request['amount'])#,request['after'])
				serialized = PostSerializer(stream,data=self.request.DATA,many=True,context={'user':user})
				return Response(serialized.data)
		else:
			return Response(check[0])
Ejemplo n.º 42
0
	def post(self,request):
		request = {k:v for k,v in request.DATA.iteritems()}
		user = User.objects.get(pk=request['user_id'])
		check = check_session(user,request['session_id'])
		if check[1]:
			channel_id = request.get('channel_id')
			if 'after' in request:
				yaps = Yap.objects.filter(is_active=True,is_private=False,pk__lt=request['after'],channel__channel_id=channel_id)[:request.get('amount')]
			else:
				yaps = Yap.objects.filter(is_active=True,is_private=False,channel__channel_id=channel_id)[:request.get('amount')]
			final_yaps = sorted(set(yaps),key=attrgetter('date_created'), reverse=True)
			serialized = StreamYapSerializer(final_yaps,data=self.request.DATA,many=True,context={'user':user})
			return Response(serialized.data)
		else:
			return Response(check[0])
Ejemplo n.º 43
0
	def post(self,request,format=None):
		request = {k:v for k,v in request.DATA.iteritems()}
		user = User.objects.get(pk=request['user_id'])
		check = check_session(user,request['session_id'])
		if check[1]:
			minutes = 2880
			time = datetime.datetime.now() - datetime.timedelta(minutes=minutes)
			if 'after' in request:
				yaps = Yap.objects.filter(is_active=True,is_private=False,pk__lt=request['after'],date_created__gte=time)[:request.get('amount')]
			else:
				yaps = Yap.objects.filter(is_active=True,is_private=False,date_created__gte=time)[:request.get('amount')]
			final_yaps = sorted(set(yaps),key=yap_trending_score, reverse=True)
			serialized = StreamYapSerializer(final_yaps,data=self.request.DATA,many=True,context={'user':user})
			return Response(serialized.data)
		else:
			return Response(check[0])
Ejemplo n.º 44
0
	def post(self,request):
		kwargs = {k:v for k,v in request.DATA.iteritems()}
		user = User.objects.get(pk=kwargs.pop('user_id'))
		check = check_session(user=user,session_id=kwargs.pop('session_id'))
		if check[1]:
			response = user.functions.follow_request(kwargs['user_requested_id'])
			user_requested = User.objects.get(pk=kwargs.get('user_requested_id'))
			follower_request = FollowerRequest.objects.get(user=user,user_requested=user_requested,is_active=True)
			if follower_request.is_accepted == True:
				if user.settings.facebook_connection_flag == True:
					if 'facebook_shared_flag' in kwargs:
						if kwargs.get('facebook_shared_flag') == True:
							facebook_shared_story = facebook.share_new_following_story_on_facebook(user=user,user_followed=user_requested,facebook_access_token=kwargs.get('facebook_access_token'))
			return Response({"valid":True,"message":response})
		else:
			return Response(check[0])
Ejemplo n.º 45
0
	def post(self,request):
		kwargs = {k:v for k,v in request.DATA.iteritems()}
		user = User.objects.get(pk=kwargs.pop('user_id'))
		check = check_session(user=user,session_id=kwargs.pop('session_id'))
		if check[1]:
			if "question_id" in kwargs:
				try:
					question = Question.objects.get(pk=kwargs.get("question_id"))
				except ObjectDoesNotExist:
					return Response(None)
				serialized = QuestionSerializer(question,data=self.request.DATA)
				return Response(serialized.data)
			else:
				return Response({"valid":False,"messsage":"For this request you must request using a question_id."})
		else:
			return Response(check[0])
Ejemplo n.º 46
0
    def post(self, request, **kwargs):
        request = {k: v for k, v in request.DATA.iteritems()}
        user = User.objects.get(pk=request.pop('user_id'))
        check = check_session(user=user, session_id=request['session_id'])

        if check[1]:
            try:
                session = Session.objects.get(pk=request['session_id'])
            except ObjectDoesNotExist:
                return Response({
                    "valid": False,
                    "message": "This session doesn't exist."
                })
            session.sign_out_device()
            return Response({"valid": True})
        else:
            return Response(check[0])
Ejemplo n.º 47
0
	def post(self,request,format=None):
		request = {k:v for k,v in request.DATA.iteritems()}
		user = User.objects.get(pk=request['user_id'])
		check = check_session(user,request['session_id'])
		if check[1]:
			minutes = 2880
			amount = 12
			time = datetime.datetime.now() - datetime.timedelta(minutes=minutes)
			yaps = Yap.objects.filter(hashtags_flag=True,is_active=True,is_private=False,date_created__gte=time)
			hashtags_list = Hashtag.objects.filter(yaps__in=yaps,is_blocked=False)
			hashtags = sorted(set(hashtags_list),key=hashtag_trending_score,reverse=True)[:amount]
			if isinstance(hashtags,str):
				return Response(None)
			else:
				serialized = HashtagSerializer(hashtags,data=self.request.DATA,many=True)
				return Response(serialized.data)
		else:
			return Response(check[0])
Ejemplo n.º 48
0
	def post(self,request):
		"""example json
		"""
		kwargs = {k:v for k,v in request.DATA.iteritems()}
		user = User.objects.get(pk=kwargs['user_id'])
		check = check_session(user=user,session_id=kwargs['session_id'])
		if check[1]:
			listen = Listen.objects.get(pk=kwargs['listen_id'])
			if kwargs['obj_type'] == "yap":
				o = Yap.objects.get(pk=kwargs['obj'])
			else:
				o = Reyap.objects.get(pk=kwargs['obj'])
			if kwargs.get('facebook_shared_flag') == True:
				if kwargs.get('facebook_access_token'):
					if user.settings.facebook_connection_flag == True:
						facebook_access_token = kwargs.pop('facebook_access_token')
					else:
						return Response({"valid":False,"message":"User hasn't connected their account to facebook."})
				else:
					return Response({"valid":False,"message":"Yap cannot be shared to facebook without an facebook_access_token."})
			if kwargs.get('twitter_shared_flag') == True:
				if kwargs.get('twitter_access_token_key'):
					if kwargs.get('twitter_access_token_secret'):
						if user.settings.twitter_connection_flag == True:
							twitter_access_token_key = kwargs.pop('twitter_access_token_key')
							twitter_access_token_secret = kwargs.pop('twitter_access_token_secret')
						else:
							return Response({"valid":False,"message":"User hasn't connected their account to Twitter."})
					else:
						return Response({"valid":False,"message":"Reyap cannot be shared without a twitter_access_token_secret."})
				else:
					return Response({"valid":False,"message":"Reyap cannot be shared without a twitter_access_token_key."})
			response = user.functions.reyap(o,listen,kwargs['time_clicked'])
			if isinstance(response,dict):
				return Response({"valid":False,"message":response})
			else:
				if kwargs.get('facebook_shared_flag') == True and user.settings.facebook_connection_flag == True and user.settings.facebook_share_reyap == True:
					f1 = facebook.share_reyap_on_facebook(user=user,facebook_access_token=facebook_access_token,reyap=response)
					f2 = facebook.share_reyap_story_on_facebook(user=user,facebook_access_token=facebook_access_token,reyap=response)
				if kwargs.get('twitter_shared_flag') == True and user.settings.twitter_connection_flag == True and user.settings.twitter_share_reyap == True:
					t = twitter.share_yap_on_twitter(user=user,yap=yap,twitter_access_token_key=twitter_access_token_key,twitter_access_token_secret=twitter_access_token_secret)
				return Response({"valid":True,"message":"success","reyap_id":response.pk})
		else:
			return Response(check[0])
Ejemplo n.º 49
0
	def post(self,request,**kwargs):
		kwargs = {k:v for k,v in request.DATA.iteritems()}
		user = User.objects.get(pk=kwargs.pop('user_id'))
		check = check_session(user=user,session_id=kwargs.pop('session_id'))
		if check[1]:
			if kwargs.get('user_country_id'):
				try:
					user_country = Country.objects.get(pk=kwargs.pop('user_country_id'))
				except ObjectDoesNotExist:
					return Response({"valid":False,"message":"The country you have selected doesn't exist."})
				kwargs['user_country'] = user_country
			if kwargs.get('user_us_state_id') and user_country.country_name == "United States":
				try:
					user_us_state = USState.objects.get(pk=kwargs.pop('user_us_state_id'))
				except ObjectDoesNotExist:
					return Response({"valid":False,"message":"The US State you have selected doesn't exist."})
				kwargs['user_us_state'] = user_us_state
			if kwargs.get('user_us_zip_code'):
				try:
					user_us_zip_code = USZIPCode.objects.get(us_zip_code=kwargs.pop('user_us_zip_code'))
				except ObjectDoesNotExist:
					return Response({"valid":False,"message":"The ZIP Code you have selected doesn't exist."})
				kwargs['user_us_zip_code'] = user_us_zip_code
			if kwargs.get('user_city_name') or kwargs.get('user_city_name') == '':
				if user_country.country_name == "United States" and kwargs.get('user_us_state',None) and kwargs.get('user_us_zip_code',None):
					user_city = City.objects.get_or_create(city_name=kwargs.pop('user_city_name'),us_state=user_us_state,country=user_country,us_zip_code=user_us_zip_code,is_active=True)
				else:
					user_city = City.objects.get_or_create(city_name=kwargs.pop('user_city_name'),country=user_country,is_active=True)
				kwargs['user_city'] = user_city[0]
			info1 = UserInfo.objects.get(username=user.username)
			info2 = info1.modify_account(**kwargs)
			if isinstance(info2,str):
				return Response({"valid":False,"message":info2})
			else:
				if 'facebook_connection_flag' in kwargs:
					if User.objects.get(username=self.username).settings.facebook_connection_flag == True:
						facebook_post = facebook.connected_facebook_and_yapster_post_on_facebook(user=user,facebook_access_token=facebook_access_token)
				if 'twitter_connection_flag' in kwargs:
					if User.objects.get(username=self.username).settings.twitter_connection_flag == True:
						facebook_post = twitter.connected_twitter_and_yapster_post_on_twitter(user=user,facebook_access_token=facebook_access_token)
				return Response({"valid":True,"message":"Your profile has successfully been edited."})
		else:
			return Response(check[0])
Ejemplo n.º 50
0
	def post(self,request):
		"""example json
		"""
		kwargs = {k:v for k,v in request.DATA.iteritems()}
		user = User.objects.get(pk=kwargs['user_id'])
		check = check_session(user=user,session_id=kwargs['session_id'])
		if check[1]:
			listen = Listen.objects.get(pk=kwargs['listen_id'])
			if kwargs['obj_type'] == "yap":
				obj = Yap.objects.get(pk=kwargs['obj'])
			else:
				obj = Reyap.objects.get(pk=kwargs['obj'])
			response = user.functions.unreyap(obj,user,listen,kwargs['time_clicked'])
			if isinstance(response,str):
				return Response({"valid":False,"message":response})
			elif isinstance(response,bool):
				return Response({"valid":True})
		else:
			return Response(check[0])
Ejemplo n.º 51
0
 def post(self, request):
     kwargs = {k: v for k, v in request.DATA.iteritems()}
     user = User.objects.get(pk=kwargs['user_id'])
     check = check_session(user=user, session_id=kwargs['session_id'])
     if check[1]:
         user_to_unsubscribe = User.objects.get(pk=kwargs.get('user_2_id'))
         if user_to_unsubscribe == user:
             return Response({
                 "valid":
                 False,
                 "message":
                 "You cannot subscribe or unsubscribe yourself."
             })
         response = user.functions.unsubscribe_user(user_to_unsubscribe)
         if isinstance(response, str):
             return Response({"valid": False, "message": response})
         else:
             return Response({"valid": True, "data": None})
     else:
         return Response({"valid": False, "message": check[0]})
Ejemplo n.º 52
0
 def post(self, request, format=None):
     request = {k: v for k, v in request.DATA.iteritems()}
     user = User.objects.get(pk=request['user_id'])
     check = check_session(user, request.pop('session_id'))
     if check[1]:
         dashboard = Dashboard.objects.get(user=user, is_active=True)
         if 'page' in request:
             page = request.get('page')
             amount = request.get('amount')
             subscribed_libraries = [
                 sub_library.subscribed_library for sub_library in
                 SubscribeLibrary.objects.filter(user=user, is_active=True)
             ]
             paginator = Paginator(object_list=subscribed_libraries,
                                   per_page=amount,
                                   allow_empty_first_page=False)
             try:
                 dashboard_libraries_subscribed = paginator.page(page)
             except PageNotAnInteger:
                 # If page is not an integer, deliver first page.
                 return Response({
                     "valid": False,
                     "message": "Page is not an integer."
                 })
             except EmptyPage:
                 # If page is out of range (e.g. 9999), deliver last page of results.
                 return Response({"valid": True, "data": None})
         else:
             if dashboard.check_date_calculated_subscribed_most_listened_libraries(
             ) == False:
                 dashboard.recalculate_subscribed_most_listened_libraries()
             dashboard_libraries_subscribed = dashboard.subscribed_most_listened_libraries.all(
             )
         serialized = LibraryPreviewSerializer(
             dashboard_libraries_subscribed,
             many=True,
             data=self.request.DATA,
             context={'user': user})
         return Response({"valid": True, "data": serialized.data})
     else:
         return Response({"valid": False, "message": check[0]})
Ejemplo n.º 53
0
	def post(self,request,**kwargs):
		request = {k:v for k,v in request.DATA.iteritems()}
		if 'user_id' in request:
			user = User.objects.get(pk=request['user_id'])
			check = check_session(user,request['session_id'])
			if check[1]:
				pass
			else:
				Response({"valid":False,"message":check[0]})
		else:
			user = None
		if "search_id" in request:
			search_id = request['search_id']
			search = Search.objects.get(pk=search_id)
		else:
			screen = request.get("screen")
			text = request.get("text")
			longitude = request.get("longitude", None)
			latitude = request.get("latitude", None)
			if screen == "dashboard_subscribed":
				search = Search.objects.create(user=user,origin_dashboard_subscribed_screen_flag=True,text=text,latitude=latitude,longitude=longitude)
			elif screen == "dashboard_subscribed_view_all_users":
				search = Search.objects.create(user=user,origin_dashboard_subscribed_view_all_users_screen_flag=True,text=text,latitude=latitude,longitude=longitude)
			elif screen == "dashboard_subscribed_view_all_libraries":
				search = Search.objects.create(user=user,origin_dashboard_subscribed_view_all_libraries_screen_flag=True,text=text,latitude=latitude,longitude=longitude)
			elif screen == "dashboard_explore":
				search = Search.objects.create(user=user,origin_dashboard_explore_screen_flag=True,text=text,latitude=latitude,longitude=longitude)
			elif screen == "dashboard_explore_view_all_users":
				search = Search.objects.create(user=user,origin_dashboard_explore_view_all_users_screen_flag=True,text=text,latitude=latitude,longitude=longitude)
			elif screen == "dashboard_explore_view_all_libraries":
				search = Search.objects.create(user=user,origin_dashboard_explore_view_all_libraries_screen_flag=True,text=text,latitude=latitude,longitude=longitude)
			elif screen == "dashboard_explore_view_all":
				search = Search.objects.create(user=user,origin_dashboard_explore_view_all_screen_flag=True,text=text,latitude=latitude,longitude=longitude)
			elif screen == "profile":
				search = Search.objects.create(user=user,origin_profile_screen_flag=True,text=text,latitude=latitude,longitude=longitude)
			elif screen == "library_details":
				search = Search.objects.create(user=user,origin_profile_screen_flag=True,text=text,latitude=latitude,longitude=longitude)
			elif screen == "web":
				search = Search.objects.create(user=user,origin_web_screen_flag=True,text=text,latitude=latitude,longitude=longitude)
		search_type = request.get("search_type","all")
		page = request.get('page',1)
		amount = request.get('amount',5)
		if search_type == "all":
			serialized = SearchResultsSerializer(search,context={'user':user})
			return Response({"valid":True,"search_id":search.pk,"data":serialized.data})
		elif search_type == "users":
			search_results = search.default_user_search()
		elif search_type == "libraries":
			search_results = search.default_library_search()
		elif search_type == "yaps":
			search_results = search.default_yap_search()
		paginator = Paginator(object_list=search_results,per_page=amount,allow_empty_first_page=False)
		try:
			results = paginator.page(page)
		except PageNotAnInteger:
			# If page is not an integer, deliver first page.
			return Response({"valid":False,"message":"Page is not an integer."})
		except EmptyPage:
			# If page is out of range (e.g. 9999), deliver last page of results.
			return Response({"valid":True,"data":None})
		if search_type == "users":
			serialized = UserSerializer(results,many=True,context={'user':user})
		elif search_type == "libraries":
			serialized = LibraryPreviewSerializer(results,many=True,context={'user':user})
		elif search_type == "yaps":
			serialized = AbstractYapSerializer(results,many=True,context={'user':user})
		return Response({"valid":True,"search_id":search.pk,"data":serialized.data})
Ejemplo n.º 54
0
 def post(self, request, **kwargs):
     kwargs = {k: v for k, v in request.DATA.iteritems()}
     user = User.objects.get(pk=kwargs.pop('user_id'))
     check = check_session(user=user, session_id=kwargs.pop('session_id'))
     if check[1]:
         if kwargs.get('country'):
             country = kwargs.get('country')
             if country == "":
                 kwargs['country'] = None
             else:
                 try:
                     country = Country.objects.get(
                         name=kwargs.pop('country'))
                 except ObjectDoesNotExist:
                     return Response({
                         "valid":
                         False,
                         "message":
                         "The country you have selected doesn't exist."
                     })
                 kwargs['country'] = country
         if kwargs.get('us_zip_code'):
             us_zip_code = kwargs.get('us_zip_code')
             if us_zip_code == "":
                 kwargs['us_zip_code'] = None
             else:
                 try:
                     us_zip_code = USZIPCode.objects.get(
                         name=kwargs.pop('us_zip_code'))
                 except ObjectDoesNotExist:
                     return Response({
                         "valid":
                         False,
                         "message":
                         "The ZIP Code you have selected doesn't exist."
                     })
                 kwargs['us_zip_code'] = us_zip_code
         if kwargs.get("us_state") and kwargs.get(
                 'us_zip_code') and country.country_name == "United States":
             us_state = kwargs.get("us_state")
             if us_state == "":
                 kwargs['us_state'] = None
             else:
                 try:
                     us_state = USState.objects.get(
                         pk=kwargs.pop('us_state_name'))
                 except ObjectDoesNotExist:
                     return Response({
                         "valid":
                         False,
                         "message":
                         "The US State you have selected doesn't exist."
                     })
                 kwargs['us_state'] = us_state
         if kwargs.get('city'):
             city = kwargs.get('city')
             if city == "":
                 kwargs['city'] = None
             else:
                 if country.name == "United States" and kwargs.get(
                         'us_state', None) and kwargs.get(
                             'us_zip_code', None):
                     city = City.objects.get_or_create(
                         name=kwargs.pop('city'),
                         us_state=us_state,
                         country=country,
                         us_zip_code=us_zip_code,
                         is_active=True)
                 else:
                     city = City.objects.get_or_create(
                         name=kwargs.pop('city'),
                         country=country,
                         is_active=True)
             kwargs['city'] = city[0]
         info1 = UserInfo.objects.get(username=user.username)
         info2 = info1.modify_account(**kwargs)
         if isinstance(info2, str):
             return Response({"valid": False, "message": info2})
         else:
             if 'facebook_connection_flag' in kwargs:
                 if User.objects.get(
                         username=self.username
                 ).settings.facebook_connection_flag == True:
                     facebook_post = facebook.connected_facebook_and_yapster_post_on_facebook(
                         user=user,
                         facebook_access_token=facebook_access_token)
             if 'twitter_connection_flag' in kwargs:
                 if User.objects.get(
                         username=self.username
                 ).settings.twitter_connection_flag == True:
                     facebook_post = twitter.connected_twitter_and_yapster_post_on_twitter(
                         user=user,
                         facebook_access_token=facebook_access_token)
             return Response({
                 "valid":
                 True,
                 "message":
                 "Your profile has successfully been edited."
             })
     else:
         return Response(check[0])
Ejemplo n.º 55
0
 def post(self, request, **kwargs):
     kwargs = {k: v for k, v in request.DATA.iteritems()}
     user = User.objects.get(pk=kwargs.pop('user_id'))
     check = check_session(user=user, session_id=kwargs.pop('session_id'))
     if check[1]:
         if kwargs.get('country_id'):
             try:
                 country = Country.objects.get(pk=kwargs.pop('country_id'))
             except ObjectDoesNotExist:
                 return Response({
                     "valid":
                     False,
                     "message":
                     "The country you have selected doesn't exist."
                 })
             kwargs['country'] = country
         if kwargs.get(
                 'us_state_id') and country.country_name == "United States":
             try:
                 us_state = USState.objects.get(
                     pk=kwargs.pop('us_state_id'))
             except ObjectDoesNotExist:
                 return Response({
                     "valid":
                     False,
                     "message":
                     "The US State you have selected doesn't exist."
                 })
             kwargs['us_state'] = us_state
         if kwargs.get('us_zip_code'):
             try:
                 us_zip_code = USZIPCode.objects.get(
                     us_zip_code=kwargs.pop('us_zip_code'))
             except ObjectDoesNotExist:
                 return Response({
                     "valid":
                     False,
                     "message":
                     "The ZIP Code you have selected doesn't exist."
                 })
             kwargs['us_zip_code'] = us_zip_code
         if kwargs.get('city_name'):
             if country.country_name == "United States" and kwargs.get(
                     'us_state', None) and kwargs.get('us_zip_code', None):
                 city = City.objects.get_or_create(
                     city_name=kwargs.pop('city_name'),
                     us_state=us_state,
                     country=country,
                     us_zip_code=us_zip_code)
             else:
                 city = City.objects.get_or_create(
                     city_name=kwargs.pop('city_name'), country=country)
             kwargs['city'] = city[0]
         if 'facebook_connection_flag' in kwargs:
             if kwargs.get('facebook_connection_flag') == True:
                 if 'facebook_access_token' in kwargs:
                     facebook_access_token = kwargs.get(
                         'facebook_access_token')
                 else:
                     kwargs['facebook_connection_flag'] = False
                     kwargs['facebook_account_id'] = None
                 if "facebook_page_connection_flag" not in kwargs:
                     kwargs['facebook_page_connection_flag'] = False
                     kwargs['facebook_page_id'] = None
             else:
                 kwargs['facebook_connection_flag'] = False
                 kwargs['facebook_account_id'] = None
                 kwargs['facebook_page_connection_flag'] = False
                 kwargs['facebook_page_id'] = None
         if 'twitter_connection_flag' in kwargs:
             if kwargs.get('twitter_connection_flag') == True:
                 if 'twitter_access_token_key' in kwargs:
                     if 'twitter_access_token_secret' in kwargs:
                         twitter_access_token_key = kwargs.pop(
                             'twitter_access_token_key')
                         twitter_access_token_secret = kwargs.pop(
                             'twitter_access_tHoken_secret')
                     else:
                         return Response({
                             "valid":
                             False,
                             "message":
                             "There must be both twitter_access_token_key and twitter_access_token_secret to connect and share to Twitter. "
                         })
                 else:
                     return Response({
                         "valid":
                         False,
                         "message":
                         "There must be both twitter_access_token_key and twitter_access_token_secret to connect and share to Twitter. "
                     })
             else:
                 kwargs['twitter_connection_flag'] = False
                 kwargs['twitter_account_id'] = None
         info1 = UserInfo.objects.get(username=user.username)
         info2 = info1.modify_account(**kwargs)
         new_settings = user.settings
         serialized = SettingsSerializer(new_settings,
                                         data=self.request.DATA)
         return Response(serialized.data)
     else:
         return Response(check[0])