def send_print_items_to_universal_print()

in backend-printing/helper/backend_print.py [0:0]


    def send_print_items_to_universal_print(self):
        """Get the print items from storage account queue.
        Temporary work around:
        Since the authorization using SPN is not available for the universal print,
        """
        messages = []

        try:
            messages = StorageQueueClient().receive_messages()
            self.logger.info(
                f"[{self.log_tag}] Fetched items {len(messages)} from the storage account"
            )
            self._update_print_messages_status(
                print_messages=messages, status=PrintItemStatus.IN_PROGRESS.value
            )

            for message in messages:
                queue_message, message_content = message
                self.logger.info(f"[{self.log_tag}] Logic app init for printing")
                response = UniversalPrintUsingLogicApp().call_logic_app(
                    print_items=message_content["print_item"]
                )
                sap_config = self._get_sap_config(
                    sap_sid=message_content["sap_sid"],
                    sap_environment=message_content["sap_environment"],
                )
                sap_client = SAPPrintClient(sap_system_config=sap_config)

                if response.status_code == 202 or response.status_code == 201:
                    StorageQueueClient().delete_message(message=queue_message)
                    self.logger.info(
                        f"[{self.log_tag}] Deleted the message from the storage account after success"
                    )
                    self._update_print_messages_status(
                        print_messages=[message_content],
                        status=PrintItemStatus.COMPLETED.value,
                    )
                    sap_client.fetch_csrf_token_and_update_print_item_status(
                        print_item_id=message_content["print_item"]["queue_item_id"],
                        queue_name=message_content["sap_print_queue_name"],
                        status="S",
                    )
                else:
                    sap_client.fetch_csrf_token_and_update_print_item_status(
                        print_item_id=message_content["print_item"]["queue_item_id"],
                        queue_name=message_content["sap_print_queue_name"],
                        status="F",
                    )

        except Exception as e:
            self.logger.error(
                f"[{self.log_tag}] Error occurred while sending items to logic app: {e}"
            )
            self._update_print_messages_status(
                print_messages=[message], status=PrintItemStatus.ERROR.value
            )

            return {
                "status": "error",
                "message": "Error occurred while sending items to logic app.",
            }