Example #1
0
    def post(self, auth_token=None, bucket_name=None):
        user_id, secret = decode_auth(auth_token)
        jsonp = self.request.get('jsoncallback')

        if not bucket_name:
            # /bucket/<userid>x<api_key>
            # /bucket/123xAB18c
            # create new bucket
            user = User.get_by_id(user_id)
            if not user:
                return
            if user.api_key != secret:
                return
            bucket_name = self.request.get('name')
            description = self.request.get('description', default_value='')
            is_public = self.request.get('is_public', default_value='0')
            b = Bucket.get_by_key_name(bucket_name, parent=user)
            if b:
                b.description = description
                b.is_public = is_public.upper() in ('TRUE', 'YES', '1')
            else:
                b = Bucket(
                    key_name=bucket_name,
                    parent=user,
                    description=description,
                    is_public=is_public.upper() in ('TRUE', 'YES', '1'),
                )
            b.put()
            self.response.out.write(Bucket.get(b.key()).to_json(jsonp))
        else:
            # /bucket/<userid>x<bucket_secret>/<bucket_name>
            # /bucket/123xAB18c/mybucket
            # update bucket properties
            bucket_name = urllib.unquote(
                bucket_name.encode('ascii')).decode('utf-8')
            description = self.request.get('description', default_value='')
            is_public = self.request.get('is_public', default_value='undef')

            b = Bucket.get_by_auth_name(auth_token, bucket_name)
            if not b:
                return
            upd = False
            if description:
                b.description = description
                upd = True
            if is_public != 'undef':
                b.is_public = is_public.upper() in ('TRUE', 'YES', '1')
                upd = True
            if upd:
                b.put()
            self.response.out.write(Bucket.get(b.key()).to_json(jsonp))
Example #2
0
	def post(self, auth_token=None, bucket_name=None):
		user_id, secret = decode_auth(auth_token)
		jsonp = self.request.get('jsoncallback')
		
		if not bucket_name:
			# /bucket/<userid>x<api_key>
			# /bucket/123xAB18c
			# create new bucket
			user = User.get_by_id(user_id)
			if not user:
				return
			if user.api_key != secret:
				return
			bucket_name = self.request.get('name')
			description = self.request.get('description', default_value='')
			is_public = self.request.get('is_public', default_value='0')
			b = Bucket.get_by_key_name(bucket_name, parent=user)
			if b:
				b.description = description
				b.is_public = is_public.upper() in ('TRUE','YES', '1' )
			else:
				b = Bucket(
					key_name = bucket_name, 
					parent=user,
					description = description,
					is_public = is_public.upper() in ('TRUE','YES', '1' ),
					)
			b.put()
			self.response.out.write(Bucket.get(b.key()).to_json(jsonp))
		else:
			# /bucket/<userid>x<bucket_secret>/<bucket_name>
			# /bucket/123xAB18c/mybucket
			# update bucket properties
			bucket_name = urllib.unquote(bucket_name.encode('ascii')).decode('utf-8')
			description = self.request.get('description', default_value='')
			is_public = self.request.get('is_public', default_value='undef')
			
			b = Bucket.get_by_auth_name(auth_token, bucket_name)
			if not b:
				return
			upd = False
			if description:
				b.description = description
				upd = True
			if is_public != 'undef':
				b.is_public = is_public.upper() in ('TRUE','YES', '1' )
				upd = True
			if upd:
				b.put()
			self.response.out.write(Bucket.get(b.key()).to_json(jsonp))