def get(self, asset_id): """ Retrieve given asset. """ asset = assets_service.get_full_asset(asset_id) user_service.check_project_access(asset["project_id"]) return asset
def delete(self, asset_id): """ Delete given asset. --- tags: - Assets parameters: - in: path name: asset_id schema: type: UUID example: a24a6ea4-ce75-4665-a070-57453082c25 required: True responses: 204: description: Given asset deleted """ parser = reqparse.RequestParser() parser.add_argument("force", default=False, type=bool) args = parser.parse_args() force = args["force"] asset = assets_service.get_full_asset(asset_id) user_service.check_manager_project_access(asset["project_id"]) assets_service.remove_asset(asset_id, force=force) return "", 204
def get(self, asset_id): """ Retrieve given asset. """ asset = assets_service.get_full_asset(asset_id) if not permissions.has_manager_permissions(): user_service.check_has_task_related(asset["project_id"]) return asset
def delete(self, asset_id): parser = reqparse.RequestParser() parser.add_argument("force", default=False, type=bool) args = parser.parse_args() force = args["force"] asset = assets_service.get_full_asset(asset_id) user_service.check_manager_project_access(asset["project_id"]) deleted_asset = assets_service.remove_asset(asset_id, force=force) return '', 204
def post_processing(self): # We handle the fact that an asset can have multiple parents by using # the entities out field as a children field. for key in self.parent_map.keys(): try: asset = assets_service.get_asset_by_shotgun_id(key) asset = assets_service.get_full_asset(asset['id']) former_children = [ Entity.get(child_id) for child_id in asset.get('entities_out', []) ] children = list(set(self.parent_map[key] + former_children)) data = {"entities_out": children} assets_service.update_asset(asset["id"], data) assets_service.clear_asset_cache(asset["id"]) except AssetNotFoundException: pass return self.parent_map
def get(self, asset_id): """ Retrieve given asset. --- tags: - Assets parameters: - in: path name: asset_id schema: type: UUID example: a24a6ea4-ce75-4665-a070-57453082c25 required: True responses: 200: description: Given asset """ asset = assets_service.get_full_asset(asset_id) user_service.check_project_access(asset["project_id"]) user_service.check_entity_access(asset["id"]) return asset
def test_get_asset_full(self): asset = assets_service.get_full_asset(self.asset.id) self.assertEqual(asset["id"], str(self.asset.id)) self.assertEqual(asset["project_name"], str(self.project.name))