Subversion Repositories SmartDukaan

Rev

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