30 lines
871 B
Python
30 lines
871 B
Python
# A JSON-based API(view) for your app.
|
|
# Most rules would look like:
|
|
#
|
|
# @jsonify.when("isinstance(obj, YourClass)")
|
|
# def jsonify_yourclass(obj):
|
|
# return [obj.val1, obj.val2]
|
|
#
|
|
# @jsonify can convert your objects to following types:
|
|
# lists, dicts, numbers and strings
|
|
import time
|
|
|
|
from turbojson.jsonify import jsonify, jsonify_sqlobject
|
|
|
|
from model import ArchiveFile
|
|
|
|
@jsonify.when('isinstance(obj, ArchiveFile)')
|
|
def jsonify_ArchiveFile(obj):
|
|
result = jsonify_sqlobject( obj )
|
|
#FIXME, possibly do something with the date values
|
|
# date, date_added, modDate, pubDate
|
|
_key_map= {
|
|
'published': 'pubDate',
|
|
'modified': 'modDate',
|
|
}
|
|
for key in ('date_added', 'published', 'modified', 'date'):
|
|
result[_key_map.get(key, key)] = time.mktime(getattr(obj, key).timetuple())
|
|
for key in ('id', 'subtitle_meta_id'):
|
|
result.pop(key)
|
|
return result
|