Exemple #1
0
    def dispatch_request(self, *args, **kwargs):
        try:
            try:
                serializer = self.REQUEST_SERIALIZER(**self.SERIALIZER_KWARGS)
                instance = serializer.load(request.get_json() or dict())
            except marshmallow.ValidationError as exc:
                return format_bad_request(exc=exc)
            except TypeError:
                ret = super().dispatch_request(*args, **kwargs)
            else:
                ret = super().dispatch_request(instance,
                                               serializer.context["data"],
                                               *args, **kwargs)
        except mongoengine.ValidationError as exc:
            return format_bad_request(exc=exc)

        if isinstance(ret, Response) or (isinstance(ret, tuple)
                                         and isinstance(ret[0], Response)):
            return ret

        try:
            ret = self.RESPONSE_SERIALIZER(**self.SERIALIZER_KWARGS).dump(ret)
        except TypeError:
            pass

        return jsonify(ret)
Exemple #2
0
 def post(instance, data):
     if not instance:
         return format_bad_request(
             message="No account exists with specified username.",
             status=404)
     if not instance.authorize(data["password"]):
         return format_bad_request(
             message=
             "The password you entered isn't correct. Please try again.")
     save_session(instance.username)
     return instance
Exemple #3
0
 def post(instance, data):
     if instance:
         return format_bad_request(
             message="Specified username is already registered.")
     user = models.User(**data)
     try:
         user.save()
     except mongoengine.ValidationError as exc:
         return format_bad_request(exc=exc)
     save_session(user.username)
     return user
Exemple #4
0
 def get(note_id):
     note = models.Note.objects(id=note_id, metadata__shared=True).first()
     if not note:
         return format_bad_request(
             message="No shared notes found for with specified object ID.",
             status=404)
     return note
Exemple #5
0
 def get(note_id):
     note = get_note(note_id)
     if not note:
         return format_bad_request(
             message="No notes found for this user with specified ID.",
             status=404)
     return note
Exemple #6
0
 def post(instance, data):
     if not instance and len(
             g.user.notes) >= current_app.config["USER_NOTES_MAX_LIMIT"]:
         return format_bad_request(
             message="This user can't create anymore notes.", status=403)
     if instance and instance.user != g.user:
         return format_bad_request(
             message="No notes found for this user with specified ID.",
             status=404)
     note = models.Note(**data)
     try:
         note.metadata = data["metadata"]
     except KeyError:
         pass
     note.user = g.user
     note.save()
     return note
Exemple #7
0
 def decorator(*args, **kwargs):
     user = get_current_user()
     if not user:
         return format_bad_request(message="Unauthorized.", status=401)
     g.user = user
     return view(*args, **kwargs)