Esempio n. 1
0
 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)])
Esempio n. 2
0
 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)
Esempio n. 3
0
 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)])
Esempio n. 4
0
    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())
Esempio n. 5
0
 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)
Esempio n. 6
0
 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..']
         )
Esempio n. 7
0
 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..']
         )
Esempio n. 8
0
 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'])
Esempio n. 9
0
    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)