def get(self, project_id): """ Retrieve all playlists related to given project. --- tags: - Playlists description: Result is paginated and can be sorted. parameters: - in: path name: project_id required: True schema: type: UUID example: a24a6ea4-ce75-4665-a070-57453082c25 responses: 200: description: All playlists related to given project """ user_service.block_access_to_vendor() user_service.check_project_access(project_id) page = self.get_page() sort_by = self.get_sort_by() task_type_id = self.get_text_parameter("task_type_id") return playlists_service.all_playlists_for_project( project_id, for_client=permissions.has_client_permissions(), page=page, sort_by=sort_by, task_type_id=task_type_id, )
def get(self, project_id): (only_preview, task_type_id, task_status_id, person_id, page, page_size, after, before) = self.get_arguments() projects_service.get_project(project_id) user_service.check_project_access(project_id) user_service.block_access_to_vendor() after = self.parse_date_parameter(after) before = self.parse_date_parameter(before) result = news_service.get_last_news_for_project( project_id, only_preview=only_preview, task_type_id=task_type_id, task_status_id=task_status_id, author_id=person_id, page=page, page_size=page_size, after=after, before=before, ) stats = news_service.get_news_stats_for_project( project_id, task_type_id=task_type_id, task_status_id=task_status_id, author_id=person_id, after=after, before=before, ) result["stats"] = stats return result
def get(self, project_id, episode_id): user_service.block_access_to_vendor() user_service.check_project_access(project_id) if episode_id not in ["main", "all"]: shots_service.get_episode(episode_id) return playlists_service.all_playlists_for_episode( project_id, episode_id, permissions.has_client_permissions())
def check_read_permissions(self): """ Overriding so that people without admin credentials can still access this resource. """ user_service.block_access_to_vendor() return True
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
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, )
def get(self, project_id, task_type_id): """ Retrieve sequences schedule items for given task type --- tags: - Projects parameters: - in: path name: project_id required: true schema: type: UUID example: 5dc235ec-125e-4ba5-b1db-604d4babc315 - in: path name: task_type_id required: true schema: type: UUID example: 5dc235ec-125e-4ba5-b1db-604d4babc315 responses: 200: description: All sequences schedule items for given task type """ user_service.check_project_access(project_id) user_service.block_access_to_vendor() return schedule_service.get_sequences_schedule_items( project_id, task_type_id)
def get(self, project_id, playlist_id): """ Retrieve all playlists related to given project. --- tags: - Playlists parameters: - in: path name: project_id required: True schema: type: UUID example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: playlist_id required: True schema: type: UUID example: a24a6ea4-ce75-4665-a070-57453082c25 responses: 200: description: All playlists related to given project """ user_service.block_access_to_vendor() user_service.check_project_access(project_id) return playlists_service.get_playlist_with_preview_file_revisions( playlist_id )
def get(self, project_id, news_id): projects_service.get_project(project_id) user_service.check_project_access(project_id) user_service.block_access_to_vendor() news = news_service.get_news(project_id, news_id) if len(news["data"]) > 0: return news["data"][0] else: raise NewsNotFoundException
def get(self, project_id): user_service.block_access_to_vendor() user_service.check_project_access(project_id) page = self.get_page() sort_by = self.get_sort_by() return playlists_service.all_playlists_for_project( project_id, for_client=permissions.has_client_permissions(), page=page, sort_by=sort_by, )
def get(self, project_id, episode_id): user_service.block_access_to_vendor() user_service.check_project_access(project_id) sort_by = self.get_sort_by() task_type_id = self.get_text_parameter("task_type_id") if episode_id not in ["main", "all"]: shots_service.get_episode(episode_id) return playlists_service.all_playlists_for_episode( project_id, episode_id, permissions.has_client_permissions(), sort_by=sort_by, task_type_id=task_type_id, )
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, )
def get(self, project_id): ( only_preview, task_type_id, task_status_id, page, page_size, ) = self.get_arguments() projects_service.get_project(project_id) user_service.check_project_access(project_id) user_service.block_access_to_vendor() return news_service.get_last_news_for_project( project_id, only_preview=only_preview, task_type_id=task_type_id, task_status_id=task_status_id, page=page, page_size=page_size, )
def get(self, project_id, episode_id): """ Retrieve all playlists related to given episode. --- tags: - Playlists description: The full list is returned because the number of playlists in an episode is not that big. parameters: - in: path name: project_id required: True schema: type: UUID example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: episode_id required: True schema: type: UUID example: a24a6ea4-ce75-4665-a070-57453082c25 responses: 200: description: All playlists related to given episode """ user_service.block_access_to_vendor() user_service.check_project_access(project_id) sort_by = self.get_sort_by() task_type_id = self.get_text_parameter("task_type_id") if episode_id not in ["main", "all"]: shots_service.get_episode(episode_id) return playlists_service.all_playlists_for_episode( project_id, episode_id, permissions.has_client_permissions(), sort_by=sort_by, task_type_id=task_type_id, )
def get(self, project_id, playlist_id): user_service.block_access_to_vendor() user_service.check_project_access(project_id) return playlists_service.get_playlist_with_preview_file_revisions( playlist_id )
def get(self, project_id): user_service.block_access_to_vendor() user_service.check_project_access(project_id) return playlists_service.all_playlists_for_project( project_id, permissions.has_client_permissions() )
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
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)
def check_read_permissions(self, milestone): user_service.check_project_access(milestone["project_id"]) user_service.block_access_to_vendor()
def check_permissions(self, project_id): user_service.check_project_access(project_id) user_service.block_access_to_vendor()
def check_update_permissions(self, playlist, data): user_service.check_project_access(playlist["project_id"]) user_service.block_access_to_vendor()
def get(self, project_id, task_type_id): user_service.check_project_access(project_id) user_service.block_access_to_vendor() return schedule_service.get_sequences_schedule_items( project_id, task_type_id )
def get(self, project_id, news_id): projects_service.get_project(project_id) user_service.check_project_access(project_id) user_service.block_access_to_vendor() return news_service.get_news(project_id, news_id)
def check_read_permissions(self): user_service.block_access_to_vendor() return True
def check_read_permissions(self, instance): if instance["project_id"]: user_service.check_project_access(instance["project_id"]) user_service.block_access_to_vendor() return True