Subversion Repositories SmartDukaan

Rev

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