| 353 |
ashish |
1 |
'''
|
|
|
2 |
Created on 14-Jul-2010
|
|
|
3 |
|
|
|
4 |
@author: ashish
|
|
|
5 |
'''
|
|
|
6 |
from email.mime.multipart import MIMEMultipart
|
|
|
7 |
from shop2020.thriftpy.utils.ttypes import HelperServiceException, Mail
|
|
|
8 |
from email.mime.base import MIMEBase
|
|
|
9 |
from email import encoders
|
|
|
10 |
import os
|
|
|
11 |
import smtplib
|
| 494 |
rajveer |
12 |
from shop2020.utils.Utils import log_entry, to_py_date
|
|
|
13 |
from shop2020.helpers.impl.DataService import Message, DashboardUser
|
|
|
14 |
|
| 353 |
ashish |
15 |
from elixir import *
|
|
|
16 |
|
|
|
17 |
from shop2020.thriftpy.utils.ttypes import Message as Msg
|
|
|
18 |
from string import Template
|
| 494 |
rajveer |
19 |
import datetime
|
|
|
20 |
from shop2020.helpers.impl import DataService
|
| 581 |
rajveer |
21 |
from email.mime.text import MIMEText
|
| 353 |
ashish |
22 |
|
| 494 |
rajveer |
23 |
def initialize():
|
|
|
24 |
log_entry("initialize@DataAccessor", "Initializing data service")
|
|
|
25 |
DataService.initialize()
|
|
|
26 |
|
| 353 |
ashish |
27 |
def sendMail(mail):
|
|
|
28 |
if not mail:
|
|
|
29 |
raise HelperServiceException(101, "mail not present")
|
| 581 |
rajveer |
30 |
#msg = MIMEMultipart()
|
|
|
31 |
#mail = Mail()
|
|
|
32 |
msg = MIMEText(mail.data)
|
| 873 |
rajveer |
33 |
msg['To'] = "help@saholic.com"
|
|
|
34 |
msg['From'] = "help@saholic.com"
|
| 353 |
ashish |
35 |
msg['Subject'] = mail.subject
|
| 581 |
rajveer |
36 |
#msg.attach(mail.data)
|
| 353 |
ashish |
37 |
|
|
|
38 |
#handle attachments in mail
|
|
|
39 |
if mail.attachments:
|
|
|
40 |
for attach in mail.attachments:
|
|
|
41 |
|
|
|
42 |
part = MIMEBase('application', 'octet-stream')
|
|
|
43 |
part.set_payload(open(attach, 'rb').read())
|
|
|
44 |
encoders.encode_base64(part)
|
|
|
45 |
part.add_header('Content-Disposition',
|
|
|
46 |
'attachment; filename="%s"' % os.path.basename(attach))
|
|
|
47 |
msg.attach(part)
|
|
|
48 |
|
|
|
49 |
for to in mail.to:
|
| 873 |
rajveer |
50 |
#to
|
|
|
51 |
msg['To'] = "help@saholic.com"
|
|
|
52 |
mail.sender = "help@shop2020.in"
|
|
|
53 |
mail.password = "5h0p2o2o"
|
| 353 |
ashish |
54 |
mailServer = smtplib.SMTP("smtp.gmail.com", 587)
|
|
|
55 |
mailServer.ehlo()
|
|
|
56 |
mailServer.starttls()
|
|
|
57 |
mailServer.ehlo()
|
|
|
58 |
mailServer.login(mail.sender, mail.password)
|
|
|
59 |
mailServer.sendmail(mail.password, to, msg.as_string())
|
|
|
60 |
# Should be mailServer.quit(), but that crashes...
|
|
|
61 |
mailServer.close()
|
|
|
62 |
|
|
|
63 |
def sendText(text):
|
|
|
64 |
pass
|
|
|
65 |
|
|
|
66 |
def addMessage(message):
|
|
|
67 |
msg = Message.get_by(message_id=message.id)
|
|
|
68 |
if msg:
|
|
|
69 |
raise HelperServiceException(101, "Message is already present. Please try updation api instead")
|
|
|
70 |
msg = Message();
|
|
|
71 |
msg.message_id = message.id
|
|
|
72 |
msg.message = message.message
|
|
|
73 |
session.commit()
|
|
|
74 |
|
|
|
75 |
def getMessage(message_id):
|
|
|
76 |
msg = Message.get_by(id=message_id)
|
|
|
77 |
message = Msg()
|
|
|
78 |
message.id = msg.message_id
|
|
|
79 |
message.message = msg.message
|
|
|
80 |
return message
|
|
|
81 |
|
|
|
82 |
def updateMessage(id, message):
|
|
|
83 |
msg = Message.get_by(message_id=id)
|
|
|
84 |
if msg:
|
|
|
85 |
msg.message = message
|
|
|
86 |
session.commit()
|
|
|
87 |
else:
|
|
|
88 |
raise HelperServiceException(101, "message could not be found with id %d" %(id))
|
|
|
89 |
|
|
|
90 |
def getSubstitutedMessage(id, params):
|
|
|
91 |
#get the message first
|
|
|
92 |
msg = Message.get_by(message_id=id)
|
|
|
93 |
if not msg:
|
|
|
94 |
raise HelperServiceException(101, "message could not be found with id %d" %(id))
|
|
|
95 |
if params:
|
|
|
96 |
s = Template(msg.message)
|
|
|
97 |
s = s.safe_substitute(params)
|
|
|
98 |
return s
|
|
|
99 |
else:
|
|
|
100 |
return msg.message
|
| 494 |
rajveer |
101 |
|
|
|
102 |
def add_user(username, password, warehouseId):
|
|
|
103 |
user = DashboardUser()
|
|
|
104 |
user.username = username
|
|
|
105 |
user.password = password
|
|
|
106 |
user.warehouseId = warehouseId
|
|
|
107 |
user.addedOn = datetime.datetime.now()
|
|
|
108 |
user.status = 0
|
|
|
109 |
try:
|
|
|
110 |
session.commit()
|
|
|
111 |
return True
|
|
|
112 |
except:
|
|
|
113 |
raise HelperServiceException(101, "Some error while adding user")
|
|
|
114 |
return False
|
|
|
115 |
|
|
|
116 |
def delete_user(username):
|
|
|
117 |
user = DashboardUser.get_by(username=username)
|
|
|
118 |
if user is None:
|
|
|
119 |
return False
|
|
|
120 |
user.delete()
|
| 766 |
rajveer |
121 |
session.commit()
|
| 494 |
rajveer |
122 |
return True
|
|
|
123 |
|
|
|
124 |
def authenticate_user(username, password):
|
|
|
125 |
user = DashboardUser.get_by(username=username)
|
|
|
126 |
if user is None:
|
|
|
127 |
return -1
|
|
|
128 |
if user.password == password:
|
|
|
129 |
user.loggedOn = datetime.datetime.now()
|
|
|
130 |
session.commit()
|
|
|
131 |
return user.warehouseId
|
|
|
132 |
return -1
|
|
|
133 |
|
|
|
134 |
def update_password(username, oldPassword, newPassword):
|
|
|
135 |
user = DashboardUser.get_by(username=username)
|
|
|
136 |
if user is None:
|
|
|
137 |
return False
|
|
|
138 |
if user.password == oldPassword:
|
|
|
139 |
user.password = newPassword
|
| 766 |
rajveer |
140 |
session.commit()
|
| 494 |
rajveer |
141 |
return True
|
| 766 |
rajveer |
142 |
return False
|
|
|
143 |
|
|
|
144 |
def close_session():
|
|
|
145 |
if session.is_active:
|
|
|
146 |
print "session is active. closing it."
|
|
|
147 |
session.close()
|