def get_users()

in ees_microsoft_outlook/office365_user.py [0:0]


    def get_users(self):
        """Fetch users from Azure Active Directory
        Returns:
            user_request: Status of user endpoint
            users_mails: Fetched response from Azure Active Directory
        """
        warnings.filterwarnings("ignore")
        try:
            scope = API_SCOPE

            # Logic to generate access token
            try:
                token_request = requests.post(
                    f"{MICROSOFTONLINE_URL}/{self.tenant_id}/oauth2/v2.0/token",
                    data={
                        "grant_type": "client_credentials",
                        "client_id": self.client_id,
                        "client_secret": self.secret_value,
                        "scope": scope,
                    },
                    verify=False,
                )

                token_response = json.loads(token_request.text)
                access_token = token_response["access_token"]
            except requests.exceptions.HTTPError as http_error:
                raise requests.exceptions.HTTPError(f"Http Error. Error: {http_error}")
            except requests.exceptions.ConnectionError as connection_error:
                raise requests.exceptions.ConnectionError(
                    f"Error Connecting. Error: {connection_error}"
                )
            except requests.exceptions.Timeout as timeout_error:
                raise requests.exceptions.Timeout(
                    f"Timeout Error. Error: {timeout_error}"
                )
            except requests.exceptions.RequestException as request_error:
                raise requests.exceptions.RequestException(f"Error: {request_error}")

            # Logic to fetch users
            try:
                user_request = requests.get(
                    GRAPH_BASE_URL + "/users",
                    headers={"Authorization": f"Bearer {access_token}"},
                    verify=False,
                )

                user_res = json.loads(user_request.text)
                user_res_value = user_res["value"]
            except requests.exceptions.HTTPError as http_error:
                raise requests.exceptions.HTTPError(f"Http Error. Error: {http_error}")
            except requests.exceptions.ConnectionError as connection_error:
                raise requests.exceptions.ConnectionError(
                    f"Error Connecting. Error: {connection_error}"
                )
            except requests.exceptions.Timeout as timeout_error:
                raise requests.exceptions.Timeout(
                    f"Timeout Error. Error: {timeout_error}"
                )
            except requests.exceptions.RequestException as request_error:
                raise requests.exceptions.RequestException(f"Error: {request_error}")

            users_mails = []

            for user_mail in user_res_value:
                users_mails.append(user_mail["mail"])
            return users_mails
        except Exception as exception:
            raise Exception(
                f"Error while fetching users from Azure Active Directory. Error: {exception}"
            )