Support public flag for StateEntry
This commit is contained in:
@@ -19,6 +19,8 @@ import logging
|
||||
from google.appengine.api import channel
|
||||
from google.appengine.ext import db
|
||||
|
||||
import utils
|
||||
|
||||
|
||||
# Profile
|
||||
# ↳ Client
|
||||
@@ -94,7 +96,7 @@ class Client(db.Model):
|
||||
return cls.FromProfile(profile)
|
||||
|
||||
def SendMessage(self, msg):
|
||||
channel.send_message(str(self.key()), json.dumps(msg))
|
||||
channel.send_message(str(self.key()), json.dumps(msg, default=utils.EncodeJSON))
|
||||
|
||||
|
||||
class StateEntry(db.Model):
|
||||
@@ -103,12 +105,15 @@ class StateEntry(db.Model):
|
||||
last_set = db.DateTimeProperty(required=True, auto_now=True)
|
||||
entry_key = db.StringProperty(required=True)
|
||||
entry_value = db.StringProperty()
|
||||
public = db.BooleanProperty(required=True, default=False)
|
||||
|
||||
def ToMessage(self):
|
||||
return {
|
||||
'message_type': 'state',
|
||||
'key': self.entry_key,
|
||||
'value': self.entry_value,
|
||||
'key': self.entry_key,
|
||||
'value': self.entry_value,
|
||||
'last_set': self.last_set,
|
||||
'public': self.public,
|
||||
}
|
||||
|
||||
|
||||
|
||||
10
lib/utils.py
10
lib/utils.py
@@ -12,9 +12,11 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
import datetime
|
||||
import functools
|
||||
import json
|
||||
import random
|
||||
import time
|
||||
|
||||
from google.appengine.api import namespace_manager
|
||||
|
||||
@@ -27,7 +29,7 @@ def returns_json(handler):
|
||||
|
||||
@functools.wraps(handler)
|
||||
def SerializeResult(self):
|
||||
json.dump(handler(self), self.response.out)
|
||||
json.dump(handler(self), self.response.out, default=EncodeJSON)
|
||||
|
||||
return SerializeResult
|
||||
|
||||
@@ -54,3 +56,9 @@ def local_namespace(handler):
|
||||
return handler(self)
|
||||
|
||||
return SetNamespace
|
||||
|
||||
|
||||
def EncodeJSON(o):
|
||||
if isinstance(o, datetime.datetime):
|
||||
return time.mktime(o.timetuple())
|
||||
return json.JSONEncoder.default(o)
|
||||
|
||||
Reference in New Issue
Block a user