-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhistory_handler.py
50 lines (40 loc) · 1.8 KB
/
history_handler.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
import webapp2
import json
import calendar
import sys
from google.appengine.api import users
from google.appengine.ext import ndb
from utility import Utility
from models import *
class HistoryHandler(webapp2.RequestHandler):
def get(self):
if self.request.get('action') == 'getList':
self.getList(self.request.get('fileid'))
elif self.request.get('action') == 'getContent':
self.getContent(self.request.get('key'))
def post(self):
requestParams = json.loads(self.request.body)
if self.request.get('action') == 'saveTag':
record = ndb.Key(urlsafe = requestParams.get('key')).get()
record.tag_text = requestParams.get('tag')
record.put()
def getList(self, fileId):
fileHistory = History()
historyRecs = fileHistory.getList(users.get_current_user().user_id(), fileId)
returnObj = []
if historyRecs.count() > 0:
for historyRec in historyRecs:
returnObj.append({
'key': historyRec.key.urlsafe(),
'time':calendar.timegm(historyRec.date_created.utctimetuple()),#.strftime("%Y-%m-%d %H:%M:%S"),
'tag': historyRec.tag_text
})
self.response.out.write(json.dumps({"status":True,"records":returnObj}))
else:
self.response.out.write(json.dumps({"status":False, "message": "No Revision History Found."}))
def getContent(self, revisionKey):
record = ndb.Key(urlsafe=revisionKey).get()
if record.user_id == users.get_current_user().user_id():
self.response.out.write(json.dumps({'status': True, 'content': record.content}))
else:
self.response.out.write(json.dumps({'status':False, 'msg':'Permission Denied'}))