from utils.db_connectors.base_connector import BaseConnector from utils.db_objects.art_relations import CustomerMasterMasterContact, \ SendEmailEnum, ContactTypeEnum class CustomerMasterConnector(BaseConnector): def insert_customer_master_contact(self, dms_id): self.log.info('Insert contact details for current dms') contacts = self.get_customer_master_contact_by_dms(dms_id) if contacts: self.log.info('No need to insert contact details') return contact = CustomerMasterMasterContact( dms_id, SendEmailEnum.yes, ContactTypeEnum.delivery_notification) session = self.Session() session.add(contact) session.commit() session.close() return contact def delete_customer_master_contact(self, dms_id): self.log.info('Delete contact details for current dms') contacts = self.get_customer_master_contact_by_dms(dms_id) if not contacts: self.log.info('No contact details to delete for current dms') return session = self.Session() for contact in contacts: session.delete(contact) session.commit() session.close() def get_customer_master_contact_by_dms(self, dms_id): session = self.Session() query = session.query(CustomerMasterMasterContact).filter( CustomerMasterMasterContact.customer_master_master_id == dms_id, CustomerMasterMasterContact.contact_type == ContactTypeEnum.delivery_notification, CustomerMasterMasterContact.sendemail == SendEmailEnum.yes, CustomerMasterMasterContact.contact_email.isnot(None), CustomerMasterMasterContact.contact_email != '' ) results = query.all() session.close() return results