def user_exists(self): username = self.cleaned_data.get('to_user') if User.objects().get(username=username).count() != 1: raise forms.ValidationError(u'This user does not exist!') elif User.objects().get(username=username).is_banned == True: raise forms.ValidationError(u'This user has been banned') return username
def calculate_war(request, user_id, defending_player_name): try: user_1, user_2 = User.objects(id=user_id).first(), User.objects(username=defending_player_name).first() request_data = JSONParser().parse(request) if SystemService.verify_token(user_id,request_data['token']): country_1, country_2 = Country.objects(id=user_1.country.id).first(), Country.objects(id=user_2.country.id).first() view_obj = GameService().calculate_war(country_1.name, country_2.name) if SystemService().get_user_settings(user_id)['attacks']: pass # send email to attacked player return HttpResponse(json.dumps(view_obj, default=lambda x: x.__dict__), status=status.HTTP_200_OK) except Exception as error: return HttpResponse(error, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
def login(request, username, password): try: token = UserService().login(username, password) user_id = User.objects(username=username, password=sha256(password.encode()).hexdigest()).first().id except Exception as error: return HttpResponse(error, status=status.HTTP_500_INTERNAL_SERVER_ERROR) return HttpResponse(json.dumps({'token': token, 'user_id': str(user_id)}), status=status.HTTP_202_ACCEPTED)
def save(self, *args, **kwargs): if not self.uid: try: self.uid = User.objects(Q(machine=self.machine))\ .order_by('-uid')[0].uid + 1 except IndexError: self.uid = settings.USERS_START_UID super(SystemUser, self).save(*args, **kwargs)
def set_settings(request, user_id): try: user = User.objects(id=user_id).first() request_data = JSONParser().parse(request) if SystemService.verify_token(user_id,request_data['token']): SystemService().set_user_settings(user, request_data['setting_list']) except Exception as error: return HttpResponse(error, status=status.HTTP_500_INTERNAL_SERVER_ERROR) return HttpResponse({}, status=status.HTTP_200_OK)
def cancel_law(request, user_id): try: user = User.objects(id=user_id).first() request_data = JSONParser().parse(request) if SystemService.verify_token(user_id,request_data['token']): country = Country.objects(id=user.country.id).first() GameService().cancel_politics_law(country, request_data['name_law']) except Exception as error: return HttpResponse(error, status=status.HTTP_500_INTERNAL_SERVER_ERROR) return HttpResponse({}, status=status.HTTP_200_OK)
def edit_army(request, user_id): try: user = User.objects(id=user_id).first() request_data = JSONParser().parse(request) if SystemService.verify_token(user_id,request_data['token']): country = Country.objects(id=user.country.id).first() GameService().edit_army(country, request_data['name_unit'], int(request_data['new_number'])) except Exception as error: return HttpResponse(error, status=status.HTTP_500_INTERNAL_SERVER_ERROR) return HttpResponse({}, status=status.HTTP_200_OK)
def find_player(request, user_id, player_name): try: request_data = JSONParser().parse(request) if SystemService.verify_token(user_id, request_data['token']): request_users = list(filter(lambda x: player_name in x.username, User.objects())) if request_users: view_list = [PlayerViewService().get_player(user.username) for user in request_users] return HttpResponse(json.dumps(view_list, default=lambda x: x.__dict__), status=status.HTTP_200_OK) return HttpResponse({}, status=status.HTTP_404_NOT_FOUND) except Exception as error: return HttpResponse(error, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
def places(self, request, *args, **kwargs): snippet = self.get_object() lat = request.query_params['lat'] lng = request.query_params['lng'] userId = kwargs.get("id") listPlaces = [] user = User.objects(id=userId).get() userTypes = user.types if not userTypes: userTypes = [ '594c36a033cbb6eed6f364e6', '594c36b233cbb6eed6f364f2', '594c368633cbb6eed6f364da', '594c4a504362de3d8fae464f', '5956fee67d2bf938c292e0bc' ] places = Place.objects(Q(loc__near=[float(lat), float(lng)])) for type in userTypes: typeName = Category.objects(id=type).get().name for place in places: if typeName in place.types: # Rating place according to twitter twitterRating = len( Tweet.objects(text__contains=place.name)) place.twitter_rating = twitterRating #Rating place according to user userRating = RatedPlace.objects( Q(user_id__exact=userId) & Q(place_id__exact=place.id)) if userRating: rating = userRating.order_by('-id').first().rating else: rating = '' place.user_rating = rating #Adding places to list of recommended places listPlaces.append(place) # Sort the list according to twitter rated listPlaces.sort(key=lambda x: x.twitter_rating, reverse=True) # Sort the list according to user rated listPlaces.sort(key=lambda x: x.user_rating, reverse=True) serializer = PlaceSerializer(listPlaces[:20], many=True) return Response(serializer.data)
def credentials(self, request, *args, **kwargs): email = request.query_params['email'] password = request.query_params['password'] user = User.objects(Q(email=email) & Q(password=password)) if (len(user) == 1): serializer = UserSerializer(user, many=True) return Response(serializer.data) else: return Response(False)
def set_law(request, user_id): try: user = User.objects(id=user_id).first() request_data = JSONParser().parse(request) if SystemService.verify_token(user_id,request_data['token']): country = Country.objects(id=user.country.id).first() names_political_laws = ['Isolation', 'Free medicine', 'Free housing', 'Free education'] if request_data['name_law'] in names_political_laws: GameService().set_politics_law(country, request_data['name_law']) else: GameService().set_conscript_law(country, request_data['name_law']) except Exception as error: return HttpResponse(error, status=status.HTTP_500_INTERNAL_SERVER_ERROR) return HttpResponse({}, status=status.HTTP_200_OK)
def categories(self, request, *args, **kwargs): snippet = self.get_object() userId = kwargs.get("id") user = User.objects(id=userId).get() userTypes = user.types listCategories = [] for type in userTypes: type = Category.objects(id=type).get() listCategories.append(type) serializer = CategorySerializer(listCategories, many=True) return Response(serializer.data)
def redirect_feedback(request, user_id): try: user = User.objects(id=user_id).first() request_data = JSONParser().parse(request) global_settings = GlobalSettings.objects().first() if SystemService.verify_token(user_id, request_data['token']): if (datetime.utcnow() - user.date_last_feedback).total_seconds()/60 >= global_settings.feedback_pause: user.date_last_feedback = datetime.utcnow() SystemService().send_notification([ADMIN_EMAIL],EmailEvent.FEEDBACK, user.username, request_data['msg'], request_data['rating'], user.email) user.save() else: return HttpResponse('You can send only 1 feedback in 24 hours', status=status.HTTP_208_ALREADY_REPORTED) except Exception as error: return HttpResponse(error, status=status.HTTP_500_INTERNAL_SERVER_ERROR) return HttpResponse({}, status=status.HTTP_200_OK)
from django.test import TestCase from django.contrib.auth.models import User users = User.objects().all() print users
def posted_by_username(self): try: return User.objects(user__username=self.posted_by) except User.DoesNotExist: return None
def filter_by_user(cls,owner): the_user = User.objects(username=owner) return cls.objects.filter(owner__id = the_user.id)