Exemple #1
0
    def post(self, instance_id):
        if not self.is_exist(instance_id):
            abort(404)

        if not self.is_allowed(instance_id):
            abort(403)

        uploaded_file = request.files["file"]

        file_name_parts = uploaded_file.filename.split(".")
        extension = ".%s" % file_name_parts.pop().lower()
        original_file_name = ".".join(file_name_parts)

        if extension in ALLOWED_PICTURE_EXTENSION:
            self.save_picture_preview(instance_id, uploaded_file)
            preview_file = files_service.update_preview_file(
                instance_id,
                {
                    "extension": "png",
                    "original_name": original_file_name
                },
            )
            self.emit_app_preview_event(instance_id)
            return preview_file, 201

        elif extension in ALLOWED_MOVIE_EXTENSION:
            try:
                self.save_movie_preview(instance_id, uploaded_file)
            except Exception as e:
                current_app.logger.error(e, exc_info=1)
                current_app.logger.error("Normalization failed.")
                deletion_service.remove_preview_file_by_id(instance_id)
                abort(400, "Normalization failed.")
            preview_file = files_service.update_preview_file(
                instance_id,
                {
                    "extension": "mp4",
                    "original_name": original_file_name
                },
            )
            self.emit_app_preview_event(instance_id)
            return preview_file, 201

        elif extension in ALLOWED_FILE_EXTENSION:
            self.save_file_preview(instance_id, uploaded_file, extension)
            preview_file = files_service.update_preview_file(
                instance_id,
                {
                    "extension": extension[1:],
                    "original_name": original_file_name,
                },
            )
            self.emit_app_preview_event(instance_id)
            return preview_file, 201

        else:
            current_app.logger.info("Wrong file format, extension: %s",
                                    extension)
            deletion_service.remove_preview_file_by_id(instance_id)
            abort(400, "Wrong file format, extension: %s" % extension)
Exemple #2
0
 def delete(self, task_id, comment_id, preview_file_id):
     """
     Delete preview from given comment.
     ---
     tags:
     - Tasks
     parameters:
       - in: path
         name: task_id
         required: True
         schema:
             type: UUID
             example: a24a6ea4-ce75-4665-a070-57453082c25
       - in: path
         name: comment_id
         required: True
         schema:
             type: UUID
             example: a24a6ea4-ce75-4665-a070-57453082c25
       - in: path
         name: preview_file_id
         required: True
         schema:
             type: UUID
             example: a24a6ea4-ce75-4665-a070-57453082c25
     responses:
         204:
             description: Preview deleted from given comment
     """
     task = tasks_service.get_task(task_id)
     user_service.check_project_access(task["project_id"])
     deletion_service.remove_preview_file_by_id(preview_file_id)
     return "", 204
Exemple #3
0
 def delete(self, task_id, comment_id, preview_file_id):
     task = tasks_service.get_task(task_id)
     user_service.check_project_access(task["project_id"])
     deletion_service.remove_preview_file_by_id(preview_file_id)
     return "", 204