-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdelete.py
113 lines (101 loc) · 4.26 KB
/
delete.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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
import os
from google.appengine.dist import use_library
use_library('django', '1.2')
import logging
import cgi
import datetime
import sys
import wsgiref.handlers
import urlparse
import sticklet_users
import string
import stickynote
import notes
from django.utils import simplejson as json
from google.appengine.api import users
from google.appengine.api import memcache
from google.appengine.api import channel
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app
class Note(webapp.RequestHandler):
def put(self):
user = users.get_current_user()
if user:
dict = json.loads ( self.request.body )
cur = ""
for note in dict:
db_n = stickynote.db.get( note['id'] )
if db_n:
cur = note['from']
db_n.trash = 1
db_n.delete_date = datetime.datetime.now()
db_n.put();
if user.user_id() == db_n.author.user_id():
susers = [user.user_id()]
else:
susers = [user.user_id(), db_n.author.user_id()]
for u in db_n.shared_with:
v = json.loads( u )
i = v['id']
if i not in susers:
susers.append( i )
notes.sentTo( db_n, susers, cur )
else:
self.error(400)
self.response.out.write ("Note for the given id does not exist.")
memcache.delete( user.user_id() + "_notes")
memcache.delete( user.user_id() + "_trash")
else:
self.error(401)
self.response.out.write("Not logged in.")
class Trash(webapp.RequestHandler):
def put(self):
user = users.get_current_user()
if user:
dict = json.loads ( self.request.body )
cur = ""
for note in dict:
db_n = stickynote.db.get( note['id'] )
if db_n:
if db_n.is_saved():
cur = note['from']
if user.user_id() == db_n.author.user_id():
susers = []
for u in db_n.shared_with:
v = json.loads( u )
s = sticklet_users.stickletUser.get_by_key_name( v['id'] )
if s and note['id'] in s.has_shared:
s.has_shared.remove( note['id'] )
susers.append( v['id'] )
if user.user_id() not in susers:
susers.append( user.user_id() )
db_n.delete()
else:
susers = [user.user_id()]
if user.email().lower() in db_n.shared_with_emails:
db_n.shared_with_emails.remove( user.email().lower() )
for u in db_n.shared_with:
v = json.loads( u )
if v['id'] == user.user_id():
db_n.shared_with.remove( u )
db_n.put()
break
c_u = memcache.get( user.user_id() + "_user" )
if c_u is None:
c_u = notes.sticklet_users.stickletUser.get( user.user_id() )
if note['id'] in c_u.has_shared:
c_u.has_shared.remove( note['id'] )
c_u.put()
memcache.set( user.user_id() + "_user", c_u )
notes.sentTo( {"to_delete":note['id']}, susers, cur )
memcache.delete( user.user_id() + "_trash")
else:
self.error(401)
self.response.out.write("Not logged in.")
application = webapp.WSGIApplication([
('/notes/delete', Note),
('/notes/trash/delete', Trash) ], debug=True)
def main():
run_wsgi_app(application)
if __name__ == "__main__":
main()