Subversion Repositories SmartDukaan

Rev

Rev 8020 | Rev 12696 | 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, \
12691 manish.sha 9
    to_t_suser, to_t_ruser, to_t_report, to_t_catalog_user, to_t_quicklink, \
10
    to_t_user_sms, to_t_user_sms_info
4691 mandeep.dh 11
from shop2020.helpers.impl.DataAccessor import getSubstitutedMessage, getMessage, \
4806 varun.gupt 12
    updateMessage, addMessage, add_user, delete_user, update_password, share_entities, \
4691 mandeep.dh 13
    save_user_email_for_sending, get_emails_to_be_sent, mark_email_as_sent, \
4806 varun.gupt 14
    initialize, close_session, get_reports, authenticate_dashboard_user, is_alive,\
5110 mandeep.dh 15
    save_quick_link, get_quick_links, update_quicklink, \
6322 amar.kumar 16
    get_emails_for_notifications_sent, update_password_for_agent, \
12691 manish.sha 17
    get_order_confirmation_mail,get_order_delivery_mail, get_warehouseIds_for_agent, \
18
    save_user_sms_for_sending, get_sms_to_be_sent, add_user_sms_info, update_user_sms_info, \
19
    get_all_users_sms_info, list_sms_to_get_delivery_info, mark_messages_as_sent_to_operator, \
20
    mark_messages_as_submitted_to_smsc, mark_messages_as_sent, mark_messages_as_retry, get_user_sms_info
4691 mandeep.dh 21
from shop2020.helpers.impl.DataService import LogisticsUser, StatisticsUser, \
2025 ankur.sing 22
    ReportUser, CatalogDashboardUser
4754 mandeep.dh 23
from shop2020.helpers.impl.model.Agent import Agent, User_Roles, Roles_Permissions
759 chandransh 24
from shop2020.thriftpy.utils.ttypes import HelperServiceException
5055 varun.gupt 25
from shop2020.utils.Utils import to_py_date
353 ashish 26
 
900 rajveer 27
 
353 ashish 28
class HelperServiceHandler():
29
 
30
 
3187 rajveer 31
    def __init__(self, dbname='helper', db_hostname='localhost'):
32
        initialize(dbname, db_hostname)
900 rajveer 33
 
34
        '''
35
        try:
36
            config_client = ConfigClient()
37
            self.customer_care_mail = config_client.get_property('saholic_customer_care_mail')
38
        except:    
39
            self.customer_care_mail = "help@saholic.com"
40
        ''' 
353 ashish 41
 
8020 rajveer 42
    def saveUserEmailForSending(self, emailTo, emailFrom, subject, body, source, emailType, cc, bcc, sourceId):
1395 varun.gupt 43
        try:
8020 rajveer 44
            return save_user_email_for_sending(emailTo, emailFrom, subject, body, source, emailType, cc, bcc, sourceId)
1395 varun.gupt 45
        finally:
46
            close_session()
47
 
3086 rajveer 48
    def getEmailsToBeSent(self):
1422 varun.gupt 49
        try:
3086 rajveer 50
            return [to_t_useremail(user_email) for user_email in get_emails_to_be_sent()]
1422 varun.gupt 51
        finally:
52
            close_session()
53
 
54
    def markEmailAsSent(self, emailId):
55
        try:
56
            mark_email_as_sent(emailId)
57
        finally:
58
            close_session()
59
 
353 ashish 60
    def sendMail(self, mail):
766 rajveer 61
        try:
62
            DataAccessor.sendMail(mail)
63
        finally:
64
            close_session()
65
 
353 ashish 66
    def sendText(self, message):
67
        """
68
        Parameters:
69
         - message
70
        """
766 rajveer 71
        try:
72
            DataAccessor.sendText(message)
73
        finally:
74
            close_session()
75
 
353 ashish 76
    def addMessage(self, message):
77
        """
78
        Parameters:
79
         - message
80
        """
766 rajveer 81
        try:
82
            addMessage(message)
83
        finally:
84
            close_session()
85
 
353 ashish 86
    def updateMessage(self, id, message):
87
        """
88
        Parameters:
89
         - id
90
         - message
91
        """
766 rajveer 92
        try:
93
            return updateMessage(id, message)
94
        finally:
95
            close_session()
96
 
353 ashish 97
    def getMessage(self, id):
98
        """
99
        Parameters:
100
         - id
101
        """
766 rajveer 102
        try:
103
            return getMessage(id)
104
        finally:
105
            close_session()
106
 
353 ashish 107
    def getSubstitutedMessage(self, id, params):
108
        """
109
        Parameters:
110
         - id
111
         - params
112
        """
766 rajveer 113
        try:
114
            return getSubstitutedMessage(id, params)
115
        finally:
116
            close_session()
117
 
494 rajveer 118
    def addUser(self, username, password, warehouseId):
119
        """
120
        Parameters:
121
         - username
122
         - password
123
         - warehouseId
124
        """
766 rajveer 125
        try:
126
            return add_user(username, password, warehouseId)
127
        finally:
128
            close_session()
494 rajveer 129
 
130
    def deleteUser(self, username):
131
        """
132
        Parameters:
133
         - username
134
        """
766 rajveer 135
        try:
136
            return delete_user(username)
137
        finally:
138
            close_session()
139
 
2445 chandransh 140
    def authenticateDashboardUser(self, username, password):
494 rajveer 141
        """
2445 chandransh 142
        Returns the dashboard user if the supplied username and password match. Raises an exception otherwise.
143
        The loggedOn timestamp for the dashboard user is updated .
144
 
494 rajveer 145
        Parameters:
146
         - username
147
         - password
148
        """
766 rajveer 149
        try:
2445 chandransh 150
            return authenticate_dashboard_user(username, password)
766 rajveer 151
        finally:
152
            close_session()
153
 
494 rajveer 154
 
155
    def updatePassword(self, username, oldPassword, newPassword):
156
        """
157
        Parameters:
158
         - username
159
         - oldPassword
160
         - newPassword
161
        """
766 rajveer 162
        try:
163
            update_password(username, oldPassword, newPassword)
164
        finally:
165
            close_session()
759 chandransh 166
 
167
    def authenticateLogisticsUser(self, username, password):
168
        """
169
        Returns the LogisticsUser struct associated with the given username and password if they match.
170
        Throws an exception otherwise.
171
 
172
        Parameters:
173
         - username
174
         - password
175
        """
176
        try:
177
            luser = LogisticsUser.get_by(username=username, password=password)
178
            return to_t_luser(luser)
179
        except:
766 rajveer 180
            raise HelperServiceException(101, "No such user")
181
        finally:
182
            close_session()
183
 
1610 ankur.sing 184
    def authenticateStatisticsUser(self, username, password):
185
        """
186
        Returns the StatisticsUser struct associated with the given username and password if they match.
187
        Throws an exception otherwise.
188
 
189
        Parameters:
190
         - username
191
         - password
192
        """
193
        try:
194
            suser = StatisticsUser.get_by(username=username, password=password)
195
            return to_t_suser(suser)
196
        except:
197
            raise HelperServiceException(101, "No such user")
198
        finally:
199
            close_session()
200
 
1891 ankur.sing 201
    def authenticateReportUser(self, username, password):
202
        """
203
        Returns the ReportUser struct associated with the given username and password if they match.
204
        Throws an exception otherwise.
205
 
206
        Parameters:
207
         - username
208
         - password
209
        """
210
        try:
211
            ruser = ReportUser.get_by(username=username, password=password)
212
            return to_t_ruser(ruser)
213
        except:
214
            raise HelperServiceException(101, "No such user")
215
        finally:
216
            close_session()
217
 
218
    def getReports(self, role):
219
        """
220
        Returns list of reports which are configured for the given role.
221
 
222
        Parameters:
223
         - role
224
        """
225
        try:
226
            reports = get_reports(role) 
227
            return [to_t_report(report) for report in reports]
228
        finally:
229
            close_session()
2025 ankur.sing 230
 
6788 rajveer 231
    def authenticateCatalogUser(self, username, password):
2025 ankur.sing 232
        """
233
        Returns the CatalogDashboardUser struct associated with the given username and password if they match.
234
        Throws an exception otherwise.
235
 
236
        Parameters:
237
         - username
238
         - password
239
        """
240
        try:
6788 rajveer 241
            catalog_user = CatalogDashboardUser.get_by(username=username, password=password)
2025 ankur.sing 242
            return to_t_catalog_user(catalog_user)
243
        except:
244
            raise HelperServiceException(101, "No such catalog user")
245
        finally:
4806 varun.gupt 246
            close_session()
247
 
248
    def shareEntities(self, entityIds, email):
249
        '''
250
        Shares the entities with en email
251
 
252
        Parameters:
253
         - entityIds
254
         - email
255
        '''
256
        try:
257
            share_entities(entityIds, email)
258
        finally:
259
            close_session()
4691 mandeep.dh 260
 
261
    def getAgents(self, ):
262
        return [Agent.to_thrift_object(t) for t in Agent.query.all()]
263
 
264
    def validateLogIn(self, emailId, password):
265
        """
266
        Parameters:
267
         - emailId
268
         - password
269
        """
270
        pass
271
 
272
    def updatePasswordForAgent(self, agentEmailId, password):
273
        """
274
        Parameters:
275
         - agentEmailId
276
         - password
277
        """
5110 mandeep.dh 278
        try:
279
            update_password_for_agent(agentEmailId, password)
280
        finally:
281
            close_session()
4691 mandeep.dh 282
 
283
    def getRoleNamesForAgent(self, agentEmailId):
284
        """
285
        Parameters:
286
         - agentEmailId
287
        """
4754 mandeep.dh 288
        try:
289
            agent = Agent.get_by(emailId = agentEmailId)
290
            return [a.role_name for a in User_Roles.query.filter_by(agentId = agent.id).all()]
291
        finally:
292
            close_session()
4691 mandeep.dh 293
 
294
    def getPermissionsForRoleName(self, roleName):
295
        """
296
        Parameters:
297
         - roleName
298
        """
4754 mandeep.dh 299
        try:
300
            return [a.permission for a in Roles_Permissions.query.filter_by(role_name = roleName).all()]
301
        finally:
302
            close_session()
1610 ankur.sing 303
 
4806 varun.gupt 304
    def saveQuickLink(self, url, text):
305
        try:
306
            save_quick_link(url, text)
307
        finally:
308
            close_session()
309
 
310
    def getQuickLinks(self):
311
        try:
312
            return [to_t_quicklink(quicklink) for quicklink in get_quick_links()]
313
        finally:
314
            close_session()
315
 
4996 varun.gupt 316
    def updateQuickLink(self, id, url, text):
317
        try:
318
            update_quicklink(id, url, text)
319
        finally:
320
            close_session()
5055 varun.gupt 321
 
322
    def getEmailsForNotificationsSent(self, startDatetime, endDatetime):
323
        '''
324
        '''
325
        try:
326
            return [notification.emailTo for notification in get_emails_for_notifications_sent(to_py_date(startDatetime), to_py_date(endDatetime))]
327
        finally:
328
            close_session()
329
 
6322 amar.kumar 330
    def getOrderConfirmationMail(self, orderId):
331
        try:
332
            return get_order_confirmation_mail(orderId)
333
        finally:
334
            close_session()
335
 
7221 kshitij.so 336
    def getOrderDeliveryMail(self,order_id):
337
        try:
338
            return get_order_delivery_mail(order_id)
339
        finally:
340
            close_session()
341
 
7410 amar.kumar 342
    def getWarehouseIdsForAgent(self, agentEmailId):
343
        try:
344
            return get_warehouseIds_for_agent(agentEmailId)
345
        finally:
346
            close_session()
347
 
12691 manish.sha 348
    def saveUserSmsForSending(self, userId, mobileNo, text, type):
349
        try:
350
            return save_user_sms_for_sending(userId, mobileNo, text, type)
351
        finally:
352
            close_session()
353
 
354
    def getSmsToBeSent(self):
355
        ret_Sms = []
356
        try:
357
            sms_list = get_sms_to_be_sent()
358
            for sms in sms_list:
359
                ret_Sms.append(to_t_user_sms(sms))
360
            return ret_Sms
361
        finally:
362
            close_session()
363
 
364
    def addUserSmsInfo(self, userSmsInfo):
365
        try:
366
            add_user_sms_info(userSmsInfo)
367
        finally:
368
            close_session()
369
 
370
    def updateUserSmsInfo(self, userSmsInfo):
371
        try:
372
            return update_user_sms_info(userSmsInfo)
373
        finally:
374
            close_session()
375
 
376
    def getUserSmsInfo(self, userId):
377
        try:
378
            userSms_Info = get_user_sms_info(userId)
379
            if userSms_Info:
380
                return to_t_user_sms_info(userSms_Info)
381
            else:
382
                return None
383
        finally:
384
            close_session()
385
 
386
    def getAllUsersSmsInfo(self):
387
        try:
388
            ret_all_user_smsInfo = []
389
            users_smsInfo = get_all_users_sms_info()
390
            for smsInfo in users_smsInfo:
391
                ret_all_user_smsInfo.append(to_t_user_sms_info(smsInfo))
392
            return ret_all_user_smsInfo
393
        finally:
394
            close_session()
395
 
396
    def listSmsToGetDeliveryInfo(self):
397
        ret_Sms = []
398
        try:
399
            sms_list = list_sms_to_get_delivery_info()
400
            for sms in sms_list:
401
                ret_Sms.append(to_t_user_sms(sms))
402
            return ret_Sms
403
        finally:
404
            close_session()
405
 
406
    def markMessagesAsSentToOperator(self, userSmsList):
407
        try:
408
            return mark_messages_as_sent_to_operator(userSmsList)
409
        finally:
410
            close_session()
411
            return False
412
 
413
    def markMessagesAsSubmittedToSmsc(self, userSmsList):
414
        try:
415
            return mark_messages_as_submitted_to_smsc(userSmsList)
416
        finally:
417
            close_session()
418
            return False
419
 
420
    def markMessagesAsSent(self, userSmsList):
421
        try:
422
            return mark_messages_as_sent(userSmsList)
423
        finally:
424
            close_session()
425
            return False
426
 
427
    def markMessagesAsRetry(self, userSmsList):
428
        try:
429
            return mark_messages_as_retry(userSmsList)
430
        finally:
431
            close_session()
432
            return False
433
 
766 rajveer 434
    def closeSession(self, ):
3376 rajveer 435
        close_session()
436
 
437
    def isAlive(self, ):
438
        """
439
        For checking weather service is active alive or not. It also checks connectivity with database
440
        """
441
        try:
442
            return is_alive()
443
        finally:
444
            close_session()