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)
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)
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)
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)
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)
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)
def get(self, request, format=None): user = request.user serializer = USDS(instance=user) return sz_api_response(serializer.data)
def post(self, request): user = request.user params = self.validate_and_get_params( forms.GameMapPathPostRequestForm, request.DATA) return sz_api_response({})
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)
def get(self, request, pk, format=None): place = self.get_object(pk) data = serializers.PlaceNoGameSerializer(instance=place).data return sz_api_response(data)
def get(self, request, pk, format=None): return sz_api_response({})