Subversion Repositories SmartDukaan

Rev

Rev 12903 | 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, \
13214 kshitij.so 22
    authorise_dealer, addCampaignNotification
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:
12878 manish.sha 381
            return to_t_user_sms_info(get_user_sms_info(userId))
12691 manish.sha 382
        finally:
383
            close_session()
384
 
12696 amit.gupta 385
    def authoriseDealer(self, dealerAuth):
386
        try:
387
            return authorise_dealer(dealerAuth)
388
        finally:
389
            close_session() 
390
 
12691 manish.sha 391
    def getAllUsersSmsInfo(self):
392
        try:
393
            ret_all_user_smsInfo = []
394
            users_smsInfo = get_all_users_sms_info()
395
            for smsInfo in users_smsInfo:
396
                ret_all_user_smsInfo.append(to_t_user_sms_info(smsInfo))
397
            return ret_all_user_smsInfo
398
        finally:
399
            close_session()
400
 
401
    def listSmsToGetDeliveryInfo(self):
402
        ret_Sms = []
403
        try:
404
            sms_list = list_sms_to_get_delivery_info()
405
            for sms in sms_list:
406
                ret_Sms.append(to_t_user_sms(sms))
407
            return ret_Sms
408
        finally:
409
            close_session()
410
 
411
    def markMessagesAsSentToOperator(self, userSmsList):
412
        try:
413
            return mark_messages_as_sent_to_operator(userSmsList)
414
        finally:
415
            close_session()
416
 
417
    def markMessagesAsSubmittedToSmsc(self, userSmsList):
418
        try:
419
            return mark_messages_as_submitted_to_smsc(userSmsList)
420
        finally:
421
            close_session()
422
 
423
    def markMessagesAsSent(self, userSmsList):
424
        try:
425
            return mark_messages_as_sent(userSmsList)
426
        finally:
427
            close_session()
12903 manish.sha 428
 
12691 manish.sha 429
    def markMessagesAsRetry(self, userSmsList):
430
        try:
431
            return mark_messages_as_retry(userSmsList)
432
        finally:
433
            close_session()
13214 kshitij.so 434
 
435
    def addCampaignNotification(self,userEmail,campaignType):
436
        try:
437
            return addCampaignNotification(userEmail,campaignType)
438
        finally:
439
            close_session()
12903 manish.sha 440
 
766 rajveer 441
    def closeSession(self, ):
3376 rajveer 442
        close_session()
443
 
444
    def isAlive(self, ):
445
        """
446
        For checking weather service is active alive or not. It also checks connectivity with database
447
        """
448
        try:
449
            return is_alive()
450
        finally:
451
            close_session()