def post(self, version, status_slug): if not self.valid_version(version): self.error(404, "API Version %s not supported" % version) return status = Status.get_by_slug(status_slug) if not status: self.error(404, "No status with the slug %s found" % status_slug) return name = self.request.get('name', default_value=None) image_slug = self.request.get('image', default_value=None) image = None default = self.request.get('default', default_value=None) description = self.request.get('description', default_value=None) if image_slug is not None: image = Image.get_by_slug(image_slug) if image is None: self.error( 400, "An Image with the " "slug %s doesn't exist" % image_slug) return status.image = image.path if description is not None: status.description = description if default is not None and default in ["false", "true"]: # Reset default status if default == "true": for stat in Status.all().filter("default", True): stat.default = False stat.put() status.default = default == "true" if name is not None: status.name = name if description or name or image or default: status.put() invalidate_cache() self.json(status.rest(self.base_url(version)))
def post(self, version, status_slug): if not self.valid_version(version): self.error(404, "API Version %s not supported" % version) return status = Status.get_by_slug(status_slug) if not status: self.error(404, "No status with the slug %s found" % status_slug) return name = self.request.get('name', default_value=None) image_slug = self.request.get('image', default_value=None) image = None default = self.request.get('default', default_value=None) description = self.request.get('description', default_value=None) if image_slug is not None: image = Image.get_by_slug(image_slug) if image is None: self.error(400, "An Image with the " "slug %s doesn't exist" % image_slug) return status.image = image.path if description is not None: status.description = description if default is not None and default in ["false", "true"]: # Reset default status if default == "true": for stat in Status.all().filter("default", True): stat.default = False stat.put() status.default = default == "true" if name is not None: status.name = name if description or name or image or default: status.put() invalidate_cache() self.json(status.rest(self.base_url(version)))
def post(self, version): if not self.valid_version(version): self.error(404, "API Version %s not supported" % version) return name = self.request.get('name', default_value=None) description = self.request.get('description', default_value=None) image_slug = self.request.get('image', default_value=None) default = self.request.get('default', default_value="false") if default not in ["true", "false"]: self.error(400, "Default must be true or false") return if not name or not description or not image_slug: self.error(400, "Bad Data") return slug = slugify.slugify(name) status = Status.get_by_slug(slug) image = Image.get_by_slug(image_slug) if status is not None: self.error(400, "A Status with the slug %s already exists" % slug) return if image is None: msg = "An Image with the slug %s doesn't exist" % image_slug self.error(400, msg) return # Reset default status if default == "true": for stat in Status.all().filter("default", True): stat.default = False stat.put() default = default == "true" status = Status(name=name, slug=slug, description=description, image=image.path, default=default) status.put() invalidate_cache() self.response.set_status(201) self.json(status.rest(self.base_url(version)))