Subversion Repositories SmartDukaan

Rev

Rev 4691 | Rev 4806 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
353 ashish 1
'''
2
Created on 14-Jul-2010
3
 
4
@author: ashish
5
'''
4691 mandeep.dh 6
from shop2020.config.client.ConfigClient import ConfigClient
353 ashish 7
from shop2020.helpers.impl import DataAccessor
4691 mandeep.dh 8
from shop2020.helpers.impl.Converters import to_t_luser, to_t_useremail, \
9
    to_t_suser, to_t_ruser, to_t_report, to_t_catalog_user
10
from shop2020.helpers.impl.DataAccessor import getSubstitutedMessage, getMessage, \
11
    updateMessage, addMessage, add_user, delete_user, update_password, \
12
    save_user_email_for_sending, get_emails_to_be_sent, mark_email_as_sent, \
13
    initialize, close_session, get_reports, authenticate_dashboard_user, is_alive
14
from shop2020.helpers.impl.DataService import LogisticsUser, StatisticsUser, \
2025 ankur.sing 15
    ReportUser, CatalogDashboardUser
4754 mandeep.dh 16
from shop2020.helpers.impl.model.Agent import Agent, User_Roles, Roles_Permissions
759 chandransh 17
from shop2020.thriftpy.utils.ttypes import HelperServiceException
353 ashish 18
 
900 rajveer 19
 
353 ashish 20
class HelperServiceHandler():
21
 
22
 
3187 rajveer 23
    def __init__(self, dbname='helper', db_hostname='localhost'):
24
        initialize(dbname, db_hostname)
900 rajveer 25
 
26
        '''
27
        try:
28
            config_client = ConfigClient()
29
            self.customer_care_mail = config_client.get_property('saholic_customer_care_mail')
30
        except:    
31
            self.customer_care_mail = "help@saholic.com"
32
        ''' 
353 ashish 33
 
1395 varun.gupt 34
    def saveUserEmailForSending(self, emailTo, emailFrom, subject, body, source, emailType):
35
        try:
3206 mandeep.dh 36
            return save_user_email_for_sending(emailTo, emailFrom, subject, body, source, emailType)
1395 varun.gupt 37
        finally:
38
            close_session()
39
 
3086 rajveer 40
    def getEmailsToBeSent(self):
1422 varun.gupt 41
        try:
3086 rajveer 42
            return [to_t_useremail(user_email) for user_email in get_emails_to_be_sent()]
1422 varun.gupt 43
        finally:
44
            close_session()
45
 
46
    def markEmailAsSent(self, emailId):
47
        try:
48
            mark_email_as_sent(emailId)
49
        finally:
50
            close_session()
51
 
353 ashish 52
    def sendMail(self, mail):
766 rajveer 53
        try:
54
            DataAccessor.sendMail(mail)
55
        finally:
56
            close_session()
57
 
353 ashish 58
    def sendText(self, message):
59
        """
60
        Parameters:
61
         - message
62
        """
766 rajveer 63
        try:
64
            DataAccessor.sendText(message)
65
        finally:
66
            close_session()
67
 
353 ashish 68
    def addMessage(self, message):
69
        """
70
        Parameters:
71
         - message
72
        """
766 rajveer 73
        try:
74
            addMessage(message)
75
        finally:
76
            close_session()
77
 
353 ashish 78
    def updateMessage(self, id, message):
79
        """
80
        Parameters:
81
         - id
82
         - message
83
        """
766 rajveer 84
        try:
85
            return updateMessage(id, message)
86
        finally:
87
            close_session()
88
 
353 ashish 89
    def getMessage(self, id):
90
        """
91
        Parameters:
92
         - id
93
        """
766 rajveer 94
        try:
95
            return getMessage(id)
96
        finally:
97
            close_session()
98
 
353 ashish 99
    def getSubstitutedMessage(self, id, params):
100
        """
101
        Parameters:
102
         - id
103
         - params
104
        """
766 rajveer 105
        try:
106
            return getSubstitutedMessage(id, params)
107
        finally:
108
            close_session()
109
 
494 rajveer 110
    def addUser(self, username, password, warehouseId):
111
        """
112
        Parameters:
113
         - username
114
         - password
115
         - warehouseId
116
        """
766 rajveer 117
        try:
118
            return add_user(username, password, warehouseId)
119
        finally:
120
            close_session()
494 rajveer 121
 
122
    def deleteUser(self, username):
123
        """
124
        Parameters:
125
         - username
126
        """
766 rajveer 127
        try:
128
            return delete_user(username)
129
        finally:
130
            close_session()
131
 
2445 chandransh 132
    def authenticateDashboardUser(self, username, password):
494 rajveer 133
        """
2445 chandransh 134
        Returns the dashboard user if the supplied username and password match. Raises an exception otherwise.
135
        The loggedOn timestamp for the dashboard user is updated .
136
 
494 rajveer 137
        Parameters:
138
         - username
139
         - password
140
        """
766 rajveer 141
        try:
2445 chandransh 142
            return authenticate_dashboard_user(username, password)
766 rajveer 143
        finally:
144
            close_session()
145
 
494 rajveer 146
 
147
    def updatePassword(self, username, oldPassword, newPassword):
148
        """
149
        Parameters:
150
         - username
151
         - oldPassword
152
         - newPassword
153
        """
766 rajveer 154
        try:
155
            update_password(username, oldPassword, newPassword)
156
        finally:
157
            close_session()
759 chandransh 158
 
159
    def authenticateLogisticsUser(self, username, password):
160
        """
161
        Returns the LogisticsUser struct associated with the given username and password if they match.
162
        Throws an exception otherwise.
163
 
164
        Parameters:
165
         - username
166
         - password
167
        """
168
        try:
169
            luser = LogisticsUser.get_by(username=username, password=password)
170
            return to_t_luser(luser)
171
        except:
766 rajveer 172
            raise HelperServiceException(101, "No such user")
173
        finally:
174
            close_session()
175
 
1610 ankur.sing 176
    def authenticateStatisticsUser(self, username, password):
177
        """
178
        Returns the StatisticsUser struct associated with the given username and password if they match.
179
        Throws an exception otherwise.
180
 
181
        Parameters:
182
         - username
183
         - password
184
        """
185
        try:
186
            suser = StatisticsUser.get_by(username=username, password=password)
187
            return to_t_suser(suser)
188
        except:
189
            raise HelperServiceException(101, "No such user")
190
        finally:
191
            close_session()
192
 
1891 ankur.sing 193
    def authenticateReportUser(self, username, password):
194
        """
195
        Returns the ReportUser struct associated with the given username and password if they match.
196
        Throws an exception otherwise.
197
 
198
        Parameters:
199
         - username
200
         - password
201
        """
202
        try:
203
            ruser = ReportUser.get_by(username=username, password=password)
204
            return to_t_ruser(ruser)
205
        except:
206
            raise HelperServiceException(101, "No such user")
207
        finally:
208
            close_session()
209
 
210
    def getReports(self, role):
211
        """
212
        Returns list of reports which are configured for the given role.
213
 
214
        Parameters:
215
         - role
216
        """
217
        try:
218
            reports = get_reports(role) 
219
            return [to_t_report(report) for report in reports]
220
        finally:
221
            close_session()
2025 ankur.sing 222
 
2358 ankur.sing 223
    def authenticateCatalogUser(self, username, password, role):
2025 ankur.sing 224
        """
225
        Returns the CatalogDashboardUser struct associated with the given username and password if they match.
226
        Throws an exception otherwise.
227
 
228
        Parameters:
229
         - username
230
         - password
231
        """
232
        try:
2358 ankur.sing 233
            catalog_user = CatalogDashboardUser.get_by(username=username, password=password, role=role)
2025 ankur.sing 234
            return to_t_catalog_user(catalog_user)
235
        except:
236
            raise HelperServiceException(101, "No such catalog user")
237
        finally:
238
            close_session()         
4691 mandeep.dh 239
 
240
    def getAgents(self, ):
241
        return [Agent.to_thrift_object(t) for t in Agent.query.all()]
242
 
243
    def validateLogIn(self, emailId, password):
244
        """
245
        Parameters:
246
         - emailId
247
         - password
248
        """
249
        pass
250
 
251
    def updatePasswordForAgent(self, agentEmailId, password):
252
        """
253
        Parameters:
254
         - agentEmailId
255
         - password
256
        """
257
        pass
258
 
259
    def getRoleNamesForAgent(self, agentEmailId):
260
        """
261
        Parameters:
262
         - agentEmailId
263
        """
4754 mandeep.dh 264
        try:
265
            agent = Agent.get_by(emailId = agentEmailId)
266
            return [a.role_name for a in User_Roles.query.filter_by(agentId = agent.id).all()]
267
        finally:
268
            close_session()
4691 mandeep.dh 269
 
270
    def getPermissionsForRoleName(self, roleName):
271
        """
272
        Parameters:
273
         - roleName
274
        """
4754 mandeep.dh 275
        try:
276
            return [a.permission for a in Roles_Permissions.query.filter_by(role_name = roleName).all()]
277
        finally:
278
            close_session()
1610 ankur.sing 279
 
766 rajveer 280
    def closeSession(self, ):
3376 rajveer 281
        close_session()
282
 
283
    def isAlive(self, ):
284
        """
285
        For checking weather service is active alive or not. It also checks connectivity with database
286
        """
287
        try:
288
            return is_alive()
289
        finally:
290
            close_session()