Rev 12903 | Blame | Compare with Previous | Last modification | View Log | RSS feed
'''Created on 14-Jul-2010@author: ashish'''from shop2020.config.client.ConfigClient import ConfigClientfrom shop2020.helpers.impl import DataAccessorfrom shop2020.helpers.impl.Converters import to_t_luser, to_t_useremail, \to_t_suser, to_t_ruser, to_t_report, to_t_catalog_user, to_t_quicklink, \to_t_user_sms, to_t_user_sms_infofrom shop2020.helpers.impl.DataAccessor import getSubstitutedMessage, getMessage, \updateMessage, addMessage, add_user, delete_user, update_password, \share_entities, save_user_email_for_sending, get_emails_to_be_sent, \mark_email_as_sent, initialize, close_session, get_reports, \authenticate_dashboard_user, is_alive, save_quick_link, get_quick_links, \update_quicklink, get_emails_for_notifications_sent, update_password_for_agent, \get_order_confirmation_mail, get_order_delivery_mail, get_warehouseIds_for_agent, \save_user_sms_for_sending, get_sms_to_be_sent, add_user_sms_info, \update_user_sms_info, get_all_users_sms_info, list_sms_to_get_delivery_info, \mark_messages_as_sent_to_operator, mark_messages_as_submitted_to_smsc, \mark_messages_as_sent, mark_messages_as_retry, get_user_sms_info, \authorise_dealer, addCampaignNotificationfrom shop2020.helpers.impl.DataService import LogisticsUser, StatisticsUser, \ReportUser, CatalogDashboardUserfrom shop2020.helpers.impl.model.Agent import Agent, User_Roles, \Roles_Permissionsfrom shop2020.thriftpy.utils.ttypes import HelperServiceExceptionfrom shop2020.utils.Utils import to_py_dateclass HelperServiceHandler():def __init__(self, dbname='helper', db_hostname='localhost'):initialize(dbname, db_hostname)'''try:config_client = ConfigClient()self.customer_care_mail = config_client.get_property('saholic_customer_care_mail')except:self.customer_care_mail = "help@saholic.com"'''def saveUserEmailForSending(self, emailTo, emailFrom, subject, body, source, emailType, cc, bcc, sourceId):try:return save_user_email_for_sending(emailTo, emailFrom, subject, body, source, emailType, cc, bcc, sourceId)finally:close_session()def getEmailsToBeSent(self):try:return [to_t_useremail(user_email) for user_email in get_emails_to_be_sent()]finally:close_session()def markEmailAsSent(self, emailId):try:mark_email_as_sent(emailId)finally:close_session()def sendMail(self, mail):try:DataAccessor.sendMail(mail)finally:close_session()def sendText(self, message):"""Parameters:- message"""try:DataAccessor.sendText(message)finally:close_session()def addMessage(self, message):"""Parameters:- message"""try:addMessage(message)finally:close_session()def updateMessage(self, id, message):"""Parameters:- id- message"""try:return updateMessage(id, message)finally:close_session()def getMessage(self, id):"""Parameters:- id"""try:return getMessage(id)finally:close_session()def getSubstitutedMessage(self, id, params):"""Parameters:- id- params"""try:return getSubstitutedMessage(id, params)finally:close_session()def addUser(self, username, password, warehouseId):"""Parameters:- username- password- warehouseId"""try:return add_user(username, password, warehouseId)finally:close_session()def deleteUser(self, username):"""Parameters:- username"""try:return delete_user(username)finally:close_session()def authenticateDashboardUser(self, username, password):"""Returns the dashboard user if the supplied username and password match. Raises an exception otherwise.The loggedOn timestamp for the dashboard user is updated .Parameters:- username- password"""try:return authenticate_dashboard_user(username, password)finally:close_session()def updatePassword(self, username, oldPassword, newPassword):"""Parameters:- username- oldPassword- newPassword"""try:update_password(username, oldPassword, newPassword)finally:close_session()def authenticateLogisticsUser(self, username, password):"""Returns the LogisticsUser struct associated with the given username and password if they match.Throws an exception otherwise.Parameters:- username- password"""try:luser = LogisticsUser.get_by(username=username, password=password)return to_t_luser(luser)except:raise HelperServiceException(101, "No such user")finally:close_session()def authenticateStatisticsUser(self, username, password):"""Returns the StatisticsUser struct associated with the given username and password if they match.Throws an exception otherwise.Parameters:- username- password"""try:suser = StatisticsUser.get_by(username=username, password=password)return to_t_suser(suser)except:raise HelperServiceException(101, "No such user")finally:close_session()def authenticateReportUser(self, username, password):"""Returns the ReportUser struct associated with the given username and password if they match.Throws an exception otherwise.Parameters:- username- password"""try:ruser = ReportUser.get_by(username=username, password=password)return to_t_ruser(ruser)except:raise HelperServiceException(101, "No such user")finally:close_session()def getReports(self, role):"""Returns list of reports which are configured for the given role.Parameters:- role"""try:reports = get_reports(role)return [to_t_report(report) for report in reports]finally:close_session()def authenticateCatalogUser(self, username, password):"""Returns the CatalogDashboardUser struct associated with the given username and password if they match.Throws an exception otherwise.Parameters:- username- password"""try:catalog_user = CatalogDashboardUser.get_by(username=username, password=password)return to_t_catalog_user(catalog_user)except:raise HelperServiceException(101, "No such catalog user")finally:close_session()def shareEntities(self, entityIds, email):'''Shares the entities with en emailParameters:- entityIds'''try:share_entities(entityIds, email)finally:close_session()def getAgents(self, ):return [Agent.to_thrift_object(t) for t in Agent.query.all()]def validateLogIn(self, emailId, password):"""Parameters:- emailId- password"""passdef updatePasswordForAgent(self, agentEmailId, password):"""Parameters:- agentEmailId- password"""try:update_password_for_agent(agentEmailId, password)finally:close_session()def getRoleNamesForAgent(self, agentEmailId):"""Parameters:- agentEmailId"""try:agent = Agent.get_by(emailId = agentEmailId)return [a.role_name for a in User_Roles.query.filter_by(agentId = agent.id).all()]finally:close_session()def getPermissionsForRoleName(self, roleName):"""Parameters:- roleName"""try:return [a.permission for a in Roles_Permissions.query.filter_by(role_name = roleName).all()]finally:close_session()def saveQuickLink(self, url, text):try:save_quick_link(url, text)finally:close_session()def getQuickLinks(self):try:return [to_t_quicklink(quicklink) for quicklink in get_quick_links()]finally:close_session()def updateQuickLink(self, id, url, text):try:update_quicklink(id, url, text)finally:close_session()def getEmailsForNotificationsSent(self, startDatetime, endDatetime):''''''try:return [notification.emailTo for notification in get_emails_for_notifications_sent(to_py_date(startDatetime), to_py_date(endDatetime))]finally:close_session()def getOrderConfirmationMail(self, orderId):try:return get_order_confirmation_mail(orderId)finally:close_session()def getOrderDeliveryMail(self,order_id):try:return get_order_delivery_mail(order_id)finally:close_session()def getWarehouseIdsForAgent(self, agentEmailId):try:return get_warehouseIds_for_agent(agentEmailId)finally:close_session()def saveUserSmsForSending(self, userId, mobileNo, text, type):try:return save_user_sms_for_sending(userId, mobileNo, text, type)finally:close_session()def getSmsToBeSent(self):ret_Sms = []try:sms_list = get_sms_to_be_sent()for sms in sms_list:ret_Sms.append(to_t_user_sms(sms))return ret_Smsfinally:close_session()def addUserSmsInfo(self, userSmsInfo):try:add_user_sms_info(userSmsInfo)finally:close_session()def updateUserSmsInfo(self, userSmsInfo):try:return update_user_sms_info(userSmsInfo)finally:close_session()def getUserSmsInfo(self, userId):try:return to_t_user_sms_info(get_user_sms_info(userId))finally:close_session()def authoriseDealer(self, dealerAuth):try:return authorise_dealer(dealerAuth)finally:close_session()def getAllUsersSmsInfo(self):try:ret_all_user_smsInfo = []users_smsInfo = get_all_users_sms_info()for smsInfo in users_smsInfo:ret_all_user_smsInfo.append(to_t_user_sms_info(smsInfo))return ret_all_user_smsInfofinally:close_session()def listSmsToGetDeliveryInfo(self):ret_Sms = []try:sms_list = list_sms_to_get_delivery_info()for sms in sms_list:ret_Sms.append(to_t_user_sms(sms))return ret_Smsfinally:close_session()def markMessagesAsSentToOperator(self, userSmsList):try:return mark_messages_as_sent_to_operator(userSmsList)finally:close_session()def markMessagesAsSubmittedToSmsc(self, userSmsList):try:return mark_messages_as_submitted_to_smsc(userSmsList)finally:close_session()def markMessagesAsSent(self, userSmsList):try:return mark_messages_as_sent(userSmsList)finally:close_session()def markMessagesAsRetry(self, userSmsList):try:return mark_messages_as_retry(userSmsList)finally:close_session()def addCampaignNotification(self,userEmail,campaignType):try:return addCampaignNotification(userEmail,campaignType)finally:close_session()def closeSession(self, ):close_session()def isAlive(self, ):"""For checking weather service is active alive or not. It also checks connectivity with database"""try:return is_alive()finally:close_session()