Subversion Repositories SmartDukaan

Rev

Rev 766 | Rev 884 | 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
'''
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()