-
Notifications
You must be signed in to change notification settings - Fork 0
/
widget.py
89 lines (82 loc) · 2.96 KB
/
widget.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
import os
import webapp2
import levr_classes as levr
import levr_encrypt as enc
import levr_utils
#from google.appengine.ext import db
#from google.appengine.api import images
import logging
import jinja2
#from gaesessions import get_current_session
#dealtype - bundle or
#dealitem -
class RemoteHandler(webapp2.RequestHandler):
def get(self):
'''Creates a list of deal objects to put plugged into an iframe'''
try:
#identify the business who is requesting their deals
businessID = self.request.get('id')
logging.debug(businessID)
businessID = enc.decrypt_key(businessID)
logging.debug(businessID)
#grab the deals for the business
deals = levr.Deal.all().filter('businessID =', businessID).fetch(None)
logging.debug(deals)
if not deals:
#business does not have any deals
self.response.out.write('No deals!')
plugs = []
else:
#grab/format the necessary information for each deal
plugs = [levr.phoneFormat(deal,'widget') for deal in deals]
#check loginstate of user viewing the deal
headerData = levr_utils.loginCheck(self,False)
headerData['loggedIn'] = False
# self.response.out.write(headerData)
template_values = {
'headerData' : headerData,
'businessID' : enc.encrypt_key(businessID),
'deals' : plugs,
}
logging.debug(template_values)
jinja_environment = jinja2.Environment(loader=jinja2.FileSystemLoader(os.path.dirname(__file__)))
template = jinja_environment.get_template('templates/widget.html')
self.response.out.write(template.render(template_values))
except:
levr.log_error()
class LoggedInFavHandler(webapp2.RequestHandler):
def get(self):
try:
# dealID = enc.decrypt_key(self.request.get('deal'))
businessID = self.request.get('id') #do not decrypt
# session = get_current_session()
# customer_key= enc.decrypt_key(session['uid'])
# customer = levr.Customer.get(customer_key)
# fav = levr.Favorite(parent=customer.key())
# fav.dealID = dealID
# fav.put()
self.redirect('/widget/remote?id='+businessID+'action=success')
except:
levr.log_error()
self.redirect('/widget/remote?id='+businessID+'&success=False')
class LocalPageHandler(webapp2.RequestHandler):
def get(self):
dealID = enc.decrypt_key(self.request.get('id'))
deal = levr.Deal.get(dealID)
business= levr.Business.get(deal.businessID)
deal = levr.phoneFormat(deal,'widget')
logging.debug(deal)
headerData = levr_utils.loginCheck(self,False)
headerData['loggedIn'] = False
template_values = {
'headerData': headerData,
'deal' : deal,
'business' : business
}
jinja_environment = jinja2.Environment(loader=jinja2.FileSystemLoader(os.path.dirname(__file__)))
template = jinja_environment.get_template('templates/widget-welcome.html')
self.response.out.write(template.render(template_values))
app = webapp2.WSGIApplication([('/widget', RemoteHandler),
('/widget/add', LoggedInFavHandler),
('/widget/welcome', LocalPageHandler)
], debug=True)