Advertisement
Guest User

teradata wrapper

a guest
Mar 10th, 2017
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.67 KB | None | 0 0
  1. from suds.client import Client
  2.  
  3.  
  4. class TeradataProxy:
  5.        
  6.     @staticmethod
  7.     def for_model(model):
  8.         return TeradataProxy(model.teradata_url, model.teradata_user, model.teradata_pwd)
  9.    
  10.     def __init__(self, url, username, password):
  11.         self.url = url
  12.         self.username = username
  13.         self.password = password
  14.            
  15.     def connect(self):        
  16.         self.client = Client(self.url, username=self.username, password=self.password)
  17.        
  18.     def create_draft_message(self, name, subject, body_html):        
  19.         draft_message = self.client.factory.create("draftMessage")
  20.         draft_message.name = name
  21.         draft_message.externalId = name
  22.        
  23.         message = self.client.factory.create("messageBase")
  24.         message.subject = subject
  25.         message.encoding = "UTF-8"
  26.         message.emailBodyHtml = body_html
  27.        
  28.        
  29.         draft_message.message = message
  30.        
  31.         response = self.client.service.draftmessageCreate(draft_message)
  32.         return response.id
  33.    
  34.     def update_draft_message(self, message_id, name, subject, body_html):        
  35.         draft_message = self.client.factory.create("draftMessage")
  36.         draft_message.id = message_id
  37.         draft_message.name = name
  38.         draft_message.externalId = name
  39.        
  40.         message = self.client.factory.create("messageBase")
  41.         message.subject = subject
  42.         message.encoding = "UTF-8"
  43.         message.emailBodyHtml = body_html
  44.        
  45.         draft_message.message = message
  46.  
  47.         self.client.service.draftmessageUpdate(draft_message)      
  48.    
  49.     def get_message_statistics(self, external_message_id):
  50.         message_filter = self.client.factory.create("messageFilter")
  51.         message_filter.externalMessageId = external_message_id
  52.         messages = self.client.service.messageFind(message_filter)
  53.        
  54.         for message in messages:
  55.             if message.status == "SENT":
  56.                 response = self.client.service.messageGetStatistics(message.id)
  57.                 statistics = response.statisticValues        
  58.                 return {stat["name"]: stat["value"] for stat in statistics if "value" in stat}
  59.        
  60.     def message_is_scheduled(self, external_message_id):
  61.         message_filter = self.client.factory.create("messageFilter")
  62.         message_filter.externalMessageId = external_message_id
  63.         response = self.client.service.messageFind(message_filter)
  64.         for result in response:
  65.             if result.sendoutDate:
  66.                 return True
  67.    
  68.         return False
  69.     def delete_user_by_email(self, email):
  70.         self.client.service.userDeleteByEmail(email)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement