def delete(self): response = self._response.copy() try: banner = Banner.get(self.session, int(self.request.matchdict['id'])) banner.delete() except (KeyError, ValueError, NoResultFound) as e: self.log.exception('Cannot get the banner to delete.') self.session.rollback() self.request.response.status = 400 response['success'] = False response['msg'] = str(e) except Exception as e: self.log.exception('Unknown error.') self.session.rollback() self.request.response.status = 500 response['msg'] = str(e) else: self.session.commit() response['success'] = True response['dataset'] = [banner.to_dict()] response['dataset_length'] = len(response['dataset']) response['msg'] = self.request.translate("Banner was deleted.") self.proxy.invalidate(url=banner.url) finally: return response
def update(self): response = self._response.copy() try: id_ = int(self.request.matchdict['id']) banner = Banner.get(self.session, id_) # FIXME: add code to update banner info. except KeyError as e: self.log.exception('Bad request.') self.session.rollback() self.request.response.status = 400 response['success'] = False response['msg'] = str(e) except NoResultFound as e: self.log.exception('Cannot found banner.') self.session.rollback() self.request.response.status = 400 response['success'] = False response['msg'] = str(e) except TypeError as e: self.log.exception('Invalid name') self.request.response.status = 400 response['success'] = False response['msg'] = str(e) except Exception as e: self.log.exception('Unknown error.') self.session.rollback() self.request.response.status = 500 response['msg'] = str(e) else: self.session.commit() response['success'] = True response['dataset'] = [banner.to_dict()] response['dataset_length'] = len(response['dataset']) response['msg'] = self.request.translate("Banner was updated.") self.proxy.invalidate(url=banner.url) finally: return response