Ejemplo n.º 1
0
    def get(self, playlist_id):
        playlist = playlists_service.get_playlist(playlist_id)
        project = projects_service.get_project(playlist["project_id"])
        user_service.block_access_to_vendor()
        user_service.check_playlist_access(playlist)
        zip_file_path = playlists_service.build_playlist_zip_file(playlist)

        context_name = slugify.slugify(project["name"], separator="_")
        if project["production_type"] == "tvshow":
            episode_id = playlist["episode_id"]
            if episode_id is not None:
                episode = shots_service.get_episode(playlist["episode_id"])
                episode_name = episode["name"]
            elif playlist["is_for_all"]:
                episode_name = "all assets"
            else:
                episode_name = "main pack"
            context_name += "_%s" % slugify.slugify(
                episode_name, separator="_"
            )
        attachment_filename = "%s_%s.zip" % (
            context_name,
            slugify.slugify(playlist["name"], separator="_"),
        )

        return flask_send_file(
            zip_file_path,
            conditional=True,
            mimetype="application/zip",
            as_attachment=True,
            attachment_filename=attachment_filename,
        )
Ejemplo n.º 2
0
 def delete(self, playlist_id, build_job_id):
     """
     Remove given build job related to given playlist. 
     ---
     tags:
     - Playlists
     parameters:
       - in: path
         name: playlist_id
         required: True
         schema:
             type: UUID
             example: a24a6ea4-ce75-4665-a070-57453082c25
       - in: path
         name: build_job_id
         required: True
         schema:
             type: UUID
             example: a24a6ea4-ce75-4665-a070-57453082c25
     responses:
         204:
             description: Given build job removed
     """
     user_service.block_access_to_vendor()
     playlist = playlists_service.get_playlist(playlist_id)
     user_service.check_playlist_access(playlist)
     playlists_service.remove_build_job(playlist, build_job_id)
     return "", 204
Ejemplo n.º 3
0
    def get(self, playlist_id):
        """
        Download given playlist as zip.
        ---
        tags:
        - Playlists
        parameters:
          - in: path
            name: playlist_id
            required: True
            schema:
                type: UUID
                example: a24a6ea4-ce75-4665-a070-57453082c25
        responses:
            200:
                description: Given playlist downloaded as zip
        """
        playlist = playlists_service.get_playlist(playlist_id)
        project = projects_service.get_project(playlist["project_id"])
        user_service.block_access_to_vendor()
        user_service.check_playlist_access(playlist)
        zip_file_path = playlists_service.build_playlist_zip_file(playlist)

        context_name = slugify.slugify(project["name"], separator="_")
        if project["production_type"] == "tvshow":
            episode_id = playlist["episode_id"]
            if episode_id is not None:
                episode = shots_service.get_episode(playlist["episode_id"])
                episode_name = episode["name"]
            elif playlist["is_for_all"]:
                episode_name = "all assets"
            else:
                episode_name = "main pack"
            context_name += "_%s" % slugify.slugify(
                episode_name, separator="_"
            )
        attachment_filename = "%s_%s.zip" % (
            context_name,
            slugify.slugify(playlist["name"], separator="_"),
        )

        return flask_send_file(
            zip_file_path,
            conditional=True,
            mimetype="application/zip",
            as_attachment=True,
            attachment_filename=attachment_filename,
        )
Ejemplo n.º 4
0
    def get(self, playlist_id):
        playlist = playlists_service.get_playlist(playlist_id)
        project = projects_service.get_project(playlist["project_id"])
        user_service.check_playlist_access(playlist)
        zip_file_path = playlists_service.build_playlist_zip_file(playlist)

        context_name = slugify.slugify(project["name"], separator="_")
        if project["production_type"] == "tvshow":
            episode = shots_service.get_episode(playlist["episode_id"])
            context_name += "_%s" % slugify.slugify(episode["name"],
                                                    separator="_")
        attachment_filename = "%s_%s.zip" % (
            context_name,
            slugify.slugify(playlist["name"], separator="_"),
        )

        return flask_send_file(
            zip_file_path,
            conditional=True,
            mimetype="application/zip",
            as_attachment=True,
            attachment_filename=attachment_filename,
        )
Ejemplo n.º 5
0
 def delete(self, playlist_id, build_job_id):
     user_service.block_access_to_vendor()
     playlist = playlists_service.get_playlist(playlist_id)
     user_service.check_playlist_access(playlist)
     playlists_service.remove_build_job(playlist, build_job_id)
     return "", 204
Ejemplo n.º 6
0
 def get(self, playlist_id, build_job_id):
     user_service.block_access_to_vendor()
     playlist = playlists_service.get_playlist(playlist_id)
     user_service.check_playlist_access(playlist)
     return playlists_service.get_build_job(build_job_id)
Ejemplo n.º 7
0
 def get(self, playlist_id, build_job_id):
     playlist = playlists_service.get_playlist(playlist_id)
     user_service.check_playlist_access(playlist)
     return playlists_service.get_build_job(build_job_id)