From bc43678ab49ab3b86b3e2363ecfad2e29a595133 Mon Sep 17 00:00:00 2001 From: WellsPowell Date: Fri, 6 Nov 2020 12:24:16 +0000 Subject: [PATCH 1/5] Added ability to get embed token --- pbiapi/pbiapi.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/pbiapi/pbiapi.py b/pbiapi/pbiapi.py index 3a076b6..6b6adcd 100644 --- a/pbiapi/pbiapi.py +++ b/pbiapi/pbiapi.py @@ -5,6 +5,7 @@ from urllib import parse import requests +import json from pbiapi.utils import partition @@ -409,3 +410,19 @@ def get_workspace_and_dataset_id(self, workspace_name: str, dataset_name: str) - dataset_id = self.find_entity_id_by_name(datasets, dataset_name, "dataset", raise_if_missing=True) return workspace_id, dataset_id + + @check_token + def get_embed_token(self, workspace_id: str, report_id: str, access_level: str) -> None: + payload = { + 'accessLevel' : access_level + } + + url = self.base_url + f"groups/{workspace_id}/reports/{report_id}/GenerateToken" + response = requests.post(url, headers=self.headers, data=json.dumps(payload)) + + if response.status_code == HTTP_OK_CODE: + logging.info(f"Report named '{report_id}' in workspace '{workspace_id}' embed'{response.json()['token']}") + return response.json()['token'] + else: + logging.error("Report deletion failed!") + self.force_raise_http_error(response) \ No newline at end of file From 6d4ed6dcd1190f5fe1435b1964e7944e256d5c93 Mon Sep 17 00:00:00 2001 From: WellsPowell Date: Fri, 6 Nov 2020 12:24:59 +0000 Subject: [PATCH 2/5] Added ability to get embed token --- pbiapi/pbiapi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pbiapi/pbiapi.py b/pbiapi/pbiapi.py index 6b6adcd..7443b80 100644 --- a/pbiapi/pbiapi.py +++ b/pbiapi/pbiapi.py @@ -424,5 +424,5 @@ def get_embed_token(self, workspace_id: str, report_id: str, access_level: str) logging.info(f"Report named '{report_id}' in workspace '{workspace_id}' embed'{response.json()['token']}") return response.json()['token'] else: - logging.error("Report deletion failed!") + logging.error("Report failed to get embed token") self.force_raise_http_error(response) \ No newline at end of file From ff970ff8e640f1c94e5d51835dd24ea60c08f98f Mon Sep 17 00:00:00 2001 From: WellsPowell Date: Fri, 6 Nov 2020 12:33:08 +0000 Subject: [PATCH 3/5] Added ability to get embed token --- pbiapi/pbiapi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pbiapi/pbiapi.py b/pbiapi/pbiapi.py index 7443b80..a872eec 100644 --- a/pbiapi/pbiapi.py +++ b/pbiapi/pbiapi.py @@ -425,4 +425,4 @@ def get_embed_token(self, workspace_id: str, report_id: str, access_level: str) return response.json()['token'] else: logging.error("Report failed to get embed token") - self.force_raise_http_error(response) \ No newline at end of file + self.force_raise_http_error(response) From e39079a1b30970ab9b869b15778d6c53e5b045cc Mon Sep 17 00:00:00 2001 From: WellsPowell Date: Fri, 6 Nov 2020 12:39:28 +0000 Subject: [PATCH 4/5] used black to format --- pbiapi/pbiapi.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/pbiapi/pbiapi.py b/pbiapi/pbiapi.py index a872eec..4492b20 100644 --- a/pbiapi/pbiapi.py +++ b/pbiapi/pbiapi.py @@ -413,16 +413,14 @@ def get_workspace_and_dataset_id(self, workspace_name: str, dataset_name: str) - @check_token def get_embed_token(self, workspace_id: str, report_id: str, access_level: str) -> None: - payload = { - 'accessLevel' : access_level - } + payload = {"accessLevel": access_level} url = self.base_url + f"groups/{workspace_id}/reports/{report_id}/GenerateToken" response = requests.post(url, headers=self.headers, data=json.dumps(payload)) if response.status_code == HTTP_OK_CODE: logging.info(f"Report named '{report_id}' in workspace '{workspace_id}' embed'{response.json()['token']}") - return response.json()['token'] + return response.json()["token"] else: logging.error("Report failed to get embed token") self.force_raise_http_error(response) From 4823291c99fde2c52a02968634ebe6a50184fca7 Mon Sep 17 00:00:00 2001 From: WellsPowell Date: Fri, 6 Nov 2020 12:42:38 +0000 Subject: [PATCH 5/5] used isort --- pbiapi/pbiapi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pbiapi/pbiapi.py b/pbiapi/pbiapi.py index 4492b20..9afe6b1 100644 --- a/pbiapi/pbiapi.py +++ b/pbiapi/pbiapi.py @@ -1,11 +1,11 @@ import datetime +import json import logging import os from typing import Callable, Dict, List, NoReturn, Union from urllib import parse import requests -import json from pbiapi.utils import partition