예제 #1
0
파일: users.py 프로젝트: sz-2013/sz
    def post(self, request):
        """Create an user

        request.DATA:
            - email
            - password1
            - password2
            - race_id
            - gender_id

        If data is valid - create user, sends a (USER_SNATDART_DATA)
        [https://github.com/sz-2013/sz/wiki/BL:-STANDART_USER_DATA]
        to BL and calls user.create_in_engine()
        """
        serializer = serializers.RegistrationSerializer(data=request.DATA)
        if serializer.is_valid():
            user = serializer.object
            user_data = USDS(instance=user).data
            engine_data = posts.UserPost().create(user_data)
            if engine_data['status'] == status.HTTP_201_CREATED:
                user = user.create_in_engine()
                data = serializers.AuthUserSerializer(instance=user).data
                return sz_api_response(
                    data=data, status=status.HTTP_201_CREATED)
            return engine_data
        return sz_api_response(
            data=serializer.errors, status=status.HTTP_400_BAD_REQUEST)
예제 #2
0
파일: places.py 프로젝트: sz-2013/sz
 def get(self, request, format=None):
     params = self.validate_req_params(request.QUERY_PARAMS)
     params['limit'] = 10
     places_list = place_service.search_in_venue(**params)
     place_response = map(
         lambda item: self._serialize_item(item, request.user), places_list)
     data = dict(places=place_response)
     return sz_api_response(data)
예제 #3
0
파일: places.py 프로젝트: sz-2013/sz
 def get(self, request, format=None):
     params = self.validate_and_get_params(
         forms.NewsRequestForm, request.QUERY_PARAMS)
     news_feed = news_feed_service.get_news(**params)
     photo_host = reverse('client-index', request=request)
     response_builder = sz_api_response.NewsFeedResponseBuilder(
         photo_host, request)
     serialized_news_feed = response_builder.build(news_feed)
     return sz_api_response(serialized_news_feed)
예제 #4
0
파일: places.py 프로젝트: sz-2013/sz
 def get(self, request, format=None):
     params = self.validate_req_params(request.QUERY_PARAMS)
     user = request.user
     gamemap = gamemap_service.get_gamemap_path(user, **params)
     data = dict(
         prev_box=self._serialize_item(gamemap.get('prev_box'), user),
         current_box=self._serialize_item(gamemap.get('current_box'), user),
         path=gamemap.get('path')
     )
     return sz_api_response(data)
예제 #5
0
파일: places.py 프로젝트: sz-2013/sz
 def get(self, request, format=None):
     params = self.validate_req_params(request.QUERY_PARAMS)
     creator = request.user
     params['user'] = creator
     places_list = place_service.explore_in_venues(**params)
     user_data = serializers.UserStandartDataShortSerializer(
         instance=creator).data
     places_len = len(places_list)
     code = status.HTTP_200_OK
     if places_len:
         places_len = 0
         bl_data = user_data
         bl_data['user_longitude'] = params.get('latitude')
         bl_data['user_latitude'] = params.get('longitude')
         places_list = map(
             lambda p: serializers.PlaceStandartDataSerializer(
                 instance=p).data,
             places_list)
         places_tuples = map(
             lambda data: (str(data.get('place_id')), data), places_list)
         bl_data['places'] = dict(places_tuples)
         engine_answer = posts.Place.create(bl_data)
         code = engine_answer.get("status")
         engine_data = engine_answer.get("data", {})
         if code != status.HTTP_201_CREATED:
             return sz_api_response(status=code, data=engine_data)
         user_data = engine_data.get("user")
         for p_id, p_data in engine_data.get('places', {}).iteritems():
             s = serializers.PlaceStandartDataSerializer(data=p_data)
             if s.is_valid():
                 s.object.create_in_engine(p_data)
                 places_len += 1
         gamemap_service.update_gamemap(params)
         # code = status.HTTP_201_CREATED
         # gamemap_service.update_gamemap(params)
     return sz_api_response(
         data=dict(user=user_data, places_explored=places_len), status=code)
예제 #6
0
파일: places.py 프로젝트: sz-2013/sz
 def get(self, request, format=None):
     """
     In request:
         latitude, longitude - user current position
         x, y - needed tile gamemap position
     """
     params = self.validate_req_params(request.QUERY_PARAMS)
     user = request.user
     # return {<place>, distance}
     tile = gamemap_service.get_gamemap_tile(user, **params)
     data = self._get_detail(request, tile, user)
     # Если у объекта нет gamemap_position значит это шаблон,
     # но без gamemap_position я не смогу найти его на карте
     data['place_gamemap_position'] = data['place_gamemap_position'] or \
         [params['x'], params['y']]
     return sz_api_response(data)
예제 #7
0
파일: users.py 프로젝트: sz-2013/sz
 def get(self, request, format=None):
     user = request.user
     serializer = USDS(instance=user)
     return sz_api_response(serializer.data)
예제 #8
0
파일: places.py 프로젝트: sz-2013/sz
 def post(self, request):
     user = request.user
     params = self.validate_and_get_params(
         forms.GameMapPathPostRequestForm, request.DATA)
     return sz_api_response({})
예제 #9
0
파일: places.py 프로젝트: sz-2013/sz
 def get(self, request, pk, format=None,):
     place = get_object_or_404(models.Place, pk=pk)
     data = self._get_detail(request, place)
     return sz_api_response(data)
예제 #10
0
파일: places.py 프로젝트: sz-2013/sz
 def get(self, request, pk, format=None):
     place = self.get_object(pk)
     data = serializers.PlaceNoGameSerializer(instance=place).data
     return sz_api_response(data)
예제 #11
0
파일: places.py 프로젝트: sz-2013/sz
 def get(self, request, pk, format=None):
     return sz_api_response({})