def update(self): try: self.res['errors'] = dict() try: id_ = int(self.request.params['id']) except KeyError: raise NoResultFound('Missing id') image = Image.get(self.session, id_) valid = False if 'name' in self.request.params: valid = True name = self.request.params['name'] if name != image.name: self.log.debug("Updating name of image %d to %s", id_, name) if len(name) < 1: raise TypeError("Il nome non può essere vuoto") image.name = name if 'file' in self.request.POST: self.log.debug("Updating file for image %s", image) valid = True image.source = self.request.POST['file'].file if not valid: raise KeyError('required') except KeyError as e: self.log.debug('Missing required params in request') self.res['success'] = False self.res['errors']['name'] = "Missing value" self.res['errors']['file'] = "Missing value" except NoResultFound as e: self.log.debug('Cannot found image or ID missing in params') self.res['success'] = False self.res['errors']['id'] = 'Image not found' except TypeError as e: self.log.exception('Invalid name %s' % (self.request.params['name'])) self.res['success'] = False self.res['errors']['name'] = str(e) except Exception as e: self.res['errors']['file'] = str(e) self.handle_exception(e, "update") else: self.log.debug("Updating ok, committing") self.session.commit() del self.res["errors"] self.res['success'] = True self.proxy.invalidate(url=image.url) finally: return self.res
def remove(self): try: id_ = int(self.request.params['id']) image = Image.get(self.session, id_) image.delete() except Exception as e: self.handle_exception(e) else: self.session.commit() self.res['success'] = True self.proxy.invalidate(url=image.url) finally: return self.res