def get(self, *args, **kwargs): super().get(*args, **kwargs) try: return self.render_json(context=self.get_context_data()) except DatabaseObjectNotFound as e: log.debug(str(e)) return self.render_json_error(errors=[str(e)])
def get(self, *args, **kwargs): try: super().get(*args, **kwargs) return self.render(**self.get_context_data()) except DatabaseObjectNotFound as e: log.debug(str(e)) raise HTTPError(404)
def get(self, *args, **kwargs): super().get(*args, **kwargs) try: context = self.get_context_data() form_class = self.get_form_class() form = self.get_form(form_class) context['form'] = form return self.render_json(context) except DatabaseObjectNotFound as e: log.debug(str(e)) return self.render_json_error(errors=[str(e)])
def post(self, *args, **kwargs): super().post(*args, **kwargs) try: self.delete_obj() self.db.remove() except (DatabaseObjectNotFound) as e: log.debug(str(e)) raise HTTPError(404) except Exception as e: log.error(str(e)) raise HTTPError(500) return self.redirect(self.get_success_url())
def form_valid(self, form): try: object = self.get_object() for key, val in form.data.items(): if hasattr(object, key): setattr(object, key, val) self.db.commit() self.db.flush() return super().form_valid(form=form) except Exception as e: self.db.rollback() log.debug(str(e)) # TODO: maybe create ErrorObj and return it with response with http 500 code? raise HTTPError(500)
def post(self, *args, **kwargs): super().post(*args, **kwargs) try: self.delete_obj() self.db.remove() return self.render_json(context={'success': True, 'errors': None}) except (RuntimeError, DatabaseObjectNotFound) as e: log.debug(str(e)) return self.render_json_error(errors=[str(e)]) except Exception as e: log.error(str(e)) return self.render_json_error( errors=['Something really bad happens..'] )
def get(self, *args, **kwargs): super().get(*args, **kwargs) try: context = self.get_context_data(**kwargs) obj_name = self.get_context_object_name() context[obj_name] = sqlalchemy_orm_to_dict(context[obj_name]) return self.render_json(context) except (RuntimeError, DatabaseObjectNotFound) as e: log.debug(str(e)) return self.render_json_error(errors=[str(e)]) except Exception as e: log.error(str(e)) return self.render_json_error( errors=['Something really bad happens..'] )
def form_valid(self, form): try: object = self.get_object() for key, val in form.data.items(): if hasattr(object, key): setattr(object, key, val) self.db.commit() self.db.flush() return self.render_json(context={'success': True, 'errors': None, 'form': None, 'object': object }) except DatabaseObjectNotFound as e: log.debug(str(e)) self.render_json_error(errors=[str(e)]) except Exception as e: self.db.rollback() log.error("Error while querying database in %s: %r" % (self.__class__.__name__, e)) return self.render_json_error(errors=['Database query error'])
def post(self, *args, **kwargs): super().post(*args, **kwargs) try: context = self.get_context_data() except DatabaseObjectNotFound as e: log.debug(str(e)) raise HTTPError(404) if 'form' in context: if context['form'].validate(): return self.form_valid(context['form']) else: return self.form_invalid(context['form']) else: raise HTTPError(403)