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))
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))