Beispiel #1
0
 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
Beispiel #2
0
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)
Beispiel #3
0
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)
Beispiel #4
0
 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)
Beispiel #5
0
 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)
Beispiel #6
0
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)
Beispiel #7
0
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)
Beispiel #8
0
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)
Beispiel #9
0
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)
Beispiel #10
0
    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)
Beispiel #11
0
    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)
Beispiel #12
0
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)
Beispiel #13
0
    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)
Beispiel #14
0
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)
Beispiel #15
0
from django.test import TestCase
from django.contrib.auth.models import User

users = User.objects().all()
print users
Beispiel #16
0
	def posted_by_username(self):
		try:
			return User.objects(user__username=self.posted_by)
		except User.DoesNotExist:
			return None
Beispiel #17
0
 def filter_by_user(cls,owner):
     the_user = User.objects(username=owner)
     return cls.objects.filter(owner__id = the_user.id)