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)
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
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
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
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
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
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)