from mstrio.connection import get_connection
from mstrio.distribution_services import (
EmailTransmitterProperties,
list_transmitters,
RecipientFieldType,
Transmitter,
TransmitterDeliveryType
)
PROJECT_NAME = '<project_name>' # Project to connect to
SENDER_DISPLAY_NAME = '<sender_display_name>' # name of a sender
SENDER_EMAIL_ADDRESS = '<sender_email_address>' # address of a sender
REPLY_TO_DISPLAY_NAME = '<reply_to_display_name>' # name for destination for replies
REPLY_TO_EMAIL_ADDRESS = '<reply_to_email_address>' # address for destination for replies
TRANSMITTER_ID = '<transmitter_id>'
TRANSMITTER_NAME = '<transmitter_name>'
TRANSMITTER_DESCRIPTION = '<transmitter_description>'
NOTIFICATION_EMAIL_ADDRESS = '<notification_email_address>'
conn = get_connection(workstationData, project_name=PROJECT_NAME)
# create email transmitter properties object
# which is used when creating transmitter
etp = EmailTransmitterProperties(
sender_display_name=SENDER_DISPLAY_NAME,
sender_email_address=SENDER_EMAIL_ADDRESS,
reply_to_display_name=REPLY_TO_DISPLAY_NAME,
reply_to_email_address=REPLY_TO_EMAIL_ADDRESS,
# see distribution_services/transmitter/transmitter.py - RecipientFieldType
# for available values
recipient_field_type=RecipientFieldType.TO,
save_message_to_file=False,
send_message_to_file=False,
send_message_via_smtp=False,
save_file_path=None,
notify_on_success=False,
notify_on_failure=False,
notification_email_address=None,
)
# create a transmitter with delivery type as `email` (when type is `email` then
# it is mandatory to provide `email_transmitter_properties`). Delivery type
# can be also passed as a string and `email_transmitter_properties` can be
# passed as a dictionary
new_t = Transmitter.create(
connection=conn,
name=TRANSMITTER_NAME,
delivery_type=TransmitterDeliveryType.EMAIL,
description=TRANSMITTER_DESCRIPTION,
email_transmitter_properties=etp,
)
# alter email transmitter and its properties
etp.notify_on_success = True
etp.notify_on_failure = True
etp.notification_email_address = NOTIFICATION_EMAIL_ADDRESS
etp.save_message_to_file = True
new_t.alter(
name=TRANSMITTER_NAME,
description=TRANSMITTER_DESCRIPTION,
email_transmitter_properties=etp,
)
# create file transmitter
new_file_t = Transmitter.create(
connection=conn,
name=TRANSMITTER_NAME,
delivery_type=TransmitterDeliveryType.FILE,
description=TRANSMITTER_DESCRIPTION,
)
# alter file transmitter
new_file_t.alter(name=TRANSMITTER_NAME, description=TRANSMITTER_DESCRIPTION)
# create ipad transmitter
new_ipad_t = Transmitter.create(
connection=conn,
name=TRANSMITTER_NAME,
delivery_type=TransmitterDeliveryType.IPAD,
description=TRANSMITTER_DESCRIPTION,
)
# alter ipad transmitter
new_ipad_t.alter(name=TRANSMITTER_NAME, description=TRANSMITTER_DESCRIPTION)
# create iphone transmitter
new_iphone_t = Transmitter.create(
connection=conn,
name=TRANSMITTER_NAME,
delivery_type=TransmitterDeliveryType.IPHONE,
description=TRANSMITTER_DESCRIPTION,
)
# alter iphone transmitter
new_iphone_t.alter(name=TRANSMITTER_NAME, description=TRANSMITTER_DESCRIPTION)
# create print transmitter
new_print_t = Transmitter.create(
connection=conn,
name=TRANSMITTER_NAME,
delivery_type=TransmitterDeliveryType.PRINT,
description=TRANSMITTER_DESCRIPTION,
)
# alter print transmitter
new_print_t.alter(name=TRANSMITTER_NAME, description=TRANSMITTER_DESCRIPTION)
# get list of transmitters
transmitters = list_transmitters(conn)
# get transmitter by ID. Transmitter can be also found by its name.
t = Transmitter(conn, id=TRANSMITTER_ID)
t_by_name = Transmitter(conn, name=TRANSMITTER_NAME)
# list properties for transmitter
t.list_properties()
# Delete transmitter. When argument `force` is set to `False` (default value),
# then deletion must be confirmed by selecting appropriate prompt value.
t.delete(force=True)