示例#1
0
    def put(cls):
        """
        This endpoint is used to upload user avatars.
        Uploading a new avatar overwrites the existing one.
        """
        data = image_schema.load(request.files)
        filename = f"user_{get_jwt_identity()}"
        folder = AVATAR_FOLDER
        avatar_path = image_helper.find_image_any_format(filename, folder)
        if avatar_path:
            try:
                os.remove(avatar_path)
            except:
                return {"message": gettext("avatar_delete_failed")}, 500

        try:
            image = data["image"]
            ext = image_helper.get_extension(image.filename)
            avatar_name = filename + ext
            avatar_path = image_helper.save_image(image, folder, avatar_name)
            basename = image_helper.get_basename(avatar_path)
            return {"message": gettext("avatar_uploaded")}, 200
        except UploadNotAllowed:
            extension = image_helper.get_extension(image)
            return {
                "message":
                gettext("image_extension_not_allowed").format(extension)
            }, 400
 def put(cls):
     """
     This endpoint is used to upload user avatars. All ovatars are named
     after user's ID. Something like thisL user_{id}.ext
     Uploading a new avatar overwrites the existing one.
     """
     data = image_schema.load(request.files)
     filename = f"user_{get_jwt_identity()}"
     folder = "avatars"
     avatar_path = image_helper.find_image_any_format(filename, folder)
     if avatar_path:
         try:
             os.remove(avatar_path)
         except:
             return {"message": gettext("avatar_delete_failed")}, 500
     try:
         ext = image_helper.get_extension(data['image'].filename)
         avatar = filename + ext
         avatar_path = image_helper.save_image(
             data['image'], folder=folder, name=avatar
         )
         basename = image_helper.get_basename(avatar_path)
         return {"message": gettext("avatar_uploaded").format(basename)}, 200
     except UploadNotAllowed:
         extension = image_helper.get_extension(data['image'])
         return {"message": gettext("image_illegal_extension").format(extension)}, 400
示例#3
0
    def put(cls):
        """
        Upload user avatar.
        Users have unique avatar.
        """
        data = request.files
        filename = f"user_{get_jwt_identity()}"
        folder = "avatars"
        avatar_path = image_helper.find_image_any_format(filename, folder)
        if avatar_path:
            try:
                os.remove(avatar_path)
            except:
                return {"message": "Failed to delete avatar"}, 500

        try:
            ext = image_helper.get_extension(["image"].filename)
            avatar = filename + ext
            avatar_path = image_helper.save_image(data["image"],
                                                  folder=folder,
                                                  name=avatar)

            basename = image_helper.get_image_basename(avatar_path)
            return {"message": f"Uploaded {basename}"}, 200
        except UploadNotAllowed:
            extension = image_helper.get_extension(data["image"])
            return {"message": f"Extension {extension} not allowed"}, 400
示例#4
0
 def get(cls, user_id: int):
     folder = 'avatars'
     filename = f"user_{user_id}"
     avatar = image_helper.find_image_any_format(filename)
     if avatar:
         return send_file(avatar)
     return {"message": "Avatar not found"}, 404
示例#5
0
 def put(cls):
     """Endpoint used to upload user avatar, named after user ID. Uploding new avatar overwrites existing"""
     data = image_schema.load(request.files)
     filename = f"user_{get_jwt_identity()}"
     folder = "avatars"
     avatar_path = image_helper.find_image_any_format(filename, folder)
     if avatar_path:
         try:
             os.remove(avatar_path)
         except:
             return {'message': gettext("avatar_delete_failed")}, 500
     try:
         ext = image_helper.get_extension(data["image"].filename)
         avatar = filename + ext
         avatar_path = image_helper.save_image(data["image"],
                                               folder=folder,
                                               name=avatar)
         basename = image_helper.get_basename(avatar_path)
         return {
             'message': gettext("avatar_uploaded").format(basename)
         }, 200
     except UploadNotAllowed:
         extension = image_helper.get_extension(data["image"])
         return {
             'message': gettext("image_illegal_extension").format(extension)
         }
 def put(self):
     """This endpoint is used to upload user avatars all avatars are called after the user id
     uploading a new avatar overwrite the last one
     """
     data = image_schema.load(request.files)
     filename = f"user_{get_jwt_identity()}"
     folder = "avatars"
     avatar_path = image_helper.find_image_any_format(filename, folder)
     if avatar_path:
         try:
             os.remove(avatar_path)
         except:
             return {"message": gettext("avatar_delete_failed")}, 500
     try:
         ext = image_helper.get_extension(data["image"].filename)
         avatar = filename + ext
         avatar_path = image_helper.save_image(data["image"],
                                               folder=folder,
                                               name=avatar)
         basename = image_helper.get_basename(avatar)
         return {"message": gettext("avatar_uploaded").format(basename)}
     except UploadNotAllowed:
         extenstion = image_helper.get_extension(avatar_path)
         return {
             "message":
             gettext("image_illegal_extension").format(extenstion)
         }
示例#7
0
    def put(cls):
        """
        Used to upload a user's Avatar.
        All Avatars are named after the user's ID, example: user_{id}.{ext}.
        Uploading a new Avatar overwrites the existing one.
        """
        data = imageSchema.load(request.files)
        filename = f"user_{get_jwt_identity()}"
        folder = "avatars"
        avatar_path = image_helper.find_image_any_format(filename, folder)
        if avatar_path:
            try:
                os.remove(avatar_path)
            except:
                return {"message": "Avatar Delete Failed."}, 500

        try:
            ext = image_helper.get_extension(data["image"].filename)
            avatar = filename + ext
            avatar_path = image_helper.save_image(data["image"],
                                                  folder=folder,
                                                  name=avatar)
            basename = image_helper.get_basename(avatar_path)
            return {"message": f"Avatar '{basename}' uploaded."}, 200
        except UploadNotAllowed:
            extension = image_helper.get_extension(data['image'])
            return {"message": f"Extension '{extension}' is not allowed."}, 400
示例#8
0
 def get(cls, user_id: int):
     folder = "avatars"
     filename = f"user_{user_id}"
     avatar = image_helper.find_image_any_format(filename, folder)
     if avatar:
         return send_file(avatar)
     return {"message": f"Avatar '{avatar}' Not Found."}, 404
示例#9
0
    def put(cls):
        """
        this endpoint is for uploading avatars. all avatars relate to user id
        overwrites existing avatars
        :return:
        """
        data = image_schema.load(request.files)  # {" image:fileStorage}
        filename = f"user_{get_jwt_identity()}"
        folder = "avatars"
        avatar_path = image_helper.find_image_any_format(filename, folder)
        if avatar_path:
            try:
                os.remove(avatar_path)
            except:
                traceback.print_exc()
                return {"message": gettext("avatar_delete_failed")}, 500

        try:
            extension = image_helper.get_extension(data["image"].filename)
            avatar = filename + extension
            avatar_path = image_helper.save_image(data["image"],
                                                  folder=folder,
                                                  name=avatar)
            basename = image_helper.get_basename(avatar_path)
            return {
                "message": gettext("avatar_uploaded").format(basename)
            }, 200
        except UploadNotAllowed:
            extension = image_helper.get_extension(data["image"])
            return {
                "message": gettext("image_illegal_extension").format(extension)
            }, 400
示例#10
0
 def get(cls, user_id: int):
     folder = 'avatars'
     filename = f"user_{user_id}"
     avatar = image_helper.find_image_any_format(filename, folder)
     if avatar:
         return send_file(avatar)
     return {"message": AVATAR_NOT_FOUND}, 404
示例#11
0
    def put(cls):
        """All Avatars are named after user's ID.
           Something like this: user_{id}.{ext}
            """

        data = image_schema.load(request.files)
        filename = f"user_{get_jwt_identity()}"
        folder = 'avatars'
        avatar_path = image_helper.find_image_any_format(filename, folder)

        if avatar_path:
            try:
                os.remove(avatar_path)
            except:
                return {'message': getext('avatar_delete_failed')}, 500

        try:
            ext = image_helper.get_extension(data['image'].filename)
            avatar = filename + ext
            avatar_path = image_helper.save_image(data['image'],
                                                  folder=folder,
                                                  name=avatar)
            basename = image_helper.get_basename(avatar_path)

            return {'message': getext('avatar_uploaded').format(basename)}, 200

        except UploadNotAllowed:
            extension = image_helper.get_extension(data['image'])
            return {
                'message': getext('image_illegal_extension').format(extension)
            }, 400
示例#12
0
 def put(cls):
     data = image_schema.load(request.files)
     filename = f"user_{get_jwt_identity()}"
     folder = "avatars"
     avatar_path = image_helper.find_image_any_format(filename, folder)
     if avatar_path:
         try:
             os.remove(avatar_path)
         except:
             return {"message": gettext("avatar_delete_failed")}, 500
     try:
         ext = image_helper.get_extension(data["image"].filename)
         avatar = filename + ext
         avatar_path = image_helper.save_image(data["image"],
                                               folder=folder,
                                               name=avatar)
         basename = image_helper.get_basename(avatar_path)
         return {
             "message": gettext("avatar_uploaded").format(basename)
         }, 200
     except UploadNotAllowed:
         extension = image_helper.get_extension(data["image"])
         return {
             "message": gettext("image_illegal_extension").format(extension)
         }, 400
示例#13
0
 def get(cls, user_id: int):
     folder = "avatars"
     filename = f"user_{user_id}"
     avatar = image_helper.find_image_any_format(filename, folder)
     if avatar:
         return send_file(avatar)
     return {"message": gettext("avatar_not_found")}, 400
示例#14
0
 def get(cls, user_id: int):
     folder = AVATAR_FOLDER
     filename = f"user_{get_jwt_identity()}"
     avatar_path = image_helper.find_image_any_format(filename, folder)
     if avatar_path:
         return send_file(avatar_path)
     return {"message": gettext("image_not_found")}, 400
示例#15
0
 def get(cls, user_id: int):
     folder = 'avatars'
     filename = f'user_{user_id}'
     avatar = image_helper.find_image_any_format(filename, folder)
     if avatar:
         return send_file(avatar)
     return {'message': gettext('avatar_not_found')}, 404
示例#16
0
    def put(self):
        """
        This endpoint is used to upload user avatar. All avatars are named after the user's id
        in such format: user_{id}.{ext}.
        It will overwrite the existing avatar.
        """
        data = image_schema.load(request.files)
        filename = f"user_{get_jwt_identity()}"
        folder = "avatars"
        avatar_path = image_helper.find_image_any_format(filename, folder)
        if avatar_path:
            try:
                os.remove(avatar_path)
            except:
                return {"message": gettext("avatar_delete_failed")}, 500

        try:
            ext = image_helper.get_extension(data["image"].filename)
            avatar = filename + ext  # use our naming format + true extension
            avatar_path = image_helper.save_image(data["image"],
                                                  folder=folder,
                                                  name=avatar)
            basename = image_helper.get_basename(avatar_path)
            return {
                "message": gettext("avatar_uploaded").format(basename)
            }, 200
        except UploadNotAllowed:  #forbidden file type
            extension = image_helper.get_extension(data["image"])
            return {
                "message": gettext("image_illegal_extension").format(extension)
            }, 400
示例#17
0
    def put(cls):
        """Upload user avatar. New avatar overwrites the existing one"""

        data = image_schema.load(request.files)
        filename = f"user_{get_jwt_identity()}"
        folder = "avatars"
        avatar_path = image_helper.find_image_any_format(
            filename, folder)  #check if exists in any format
        if avatar_path:
            try:
                os.remove(avatar_path)
            except:
                return {"message": gettext("avatar_delete_failed")}, 500

        try:
            ext = image_helper.get_extension(data["image"].filename)
            avatar = filename + ext
            avatar_path = image_helper.save_image(
                data["image"], folder=folder,
                name=avatar)  # overwrite name with avatar variable
            basename = image_helper.get_basename(avatar_path)
            return {"messge": gettext("avatar_uploaded").format(basename)}, 200

        except UploadNotAllowed:
            extension = image_helper.get_extension(data["image"])
            return {
                "message": gettext("image_illegal_extension").format(extension)
            }, 400
示例#18
0
 def get(cls, user_id: int):
     """
     This endpoint returns the avatar of the user specified by user_id.
     """
     folder = "avatars"
     filename = f"user_{user_id}"
     avatar = image_helper.find_image_any_format(filename, folder)
     if avatar:
         return send_file(avatar)
     return {"message": gettext("avatar_not_found")}, 404
示例#19
0
    def put(cls):
        data = image_schema.load(request.files)
        filename = f"user_{get_jwt_identity()}"
        folder = "avatars"
        avatar_path = image_helper.find_image_any_format(filename, folder)
        if avatar_path:
            try:
                os.remove(avatar_path)
            except:
                return {"message": AVATAR_DELETE_FAILED}, 500

        try:
            ext = image_helper.get_extension(data['image'].filename)
            avatar = filename + ext
            avatar_path = image_helper.save_image(data["image"],
                                                  folder=folder,
                                                  name=avatar)
            basename = image_helper.get_basename(avatar_path)
            return {"message": AVATAR_UPLOADED.format(basename)}, 200
        except UploadNotAllowed:
            extension = image_helper.get_extension(data['image'])
            return {"message": IMAGE_ILLEGAL_EXTENSION.format(extension)}, 400