FUCKING BIG SYNC UPDATE: caching, events, albums, documents, awards, news, schedules, teachers, other

This commit is contained in:
tmshv committed 2016-03-03 01:36:50 +03:00
1 parent 359cc430f5
commit f07c39c317
20 files changed
+1190 -166

No files matched your search

+4
View File
@@ -0,0 +1,4 @@
class Document:
def __init__(self):
super().__init__()
+19
View File
@@ -0,0 +1,19 @@
class Model:
def __init__(self, create_fn, read_fn, update_fn, delete_fn):
super().__init__()
self.update_fn = update_fn
self.create_fn = create_fn
self.read_fn = read_fn
self.delete_fn = delete_fn
def create(self, document):
return self.create_fn(document)
def read(self, query):
return self.read_fn(query)
def update(self, query, record):
return self.update_fn(query)
def delete(self, query):
return self.delete_fn(query)
+24
View File
@@ -1,14 +1,38 @@
from sync.teacher import read_teacher_by_id
from sync.image import sync_image
from utils.fn import key_mapper
from utils.text.transform import interpolate_swift
def resolve_value(param, store):
"""
:param param: \(nv-andreeva)
:param store: function should return value by key nv-andreeva
:return:
"""
i = interpolate_swift(param)
return store(i)
unpop_image = key_mapper('image', lambda i: sync_image(i)['_id'])
def resolve_teacher(i):
return resolve_value(i, read_teacher_by_id)
def create_product(doc):
# author, image, title, awards, teacher, date
unpop_teacher = key_mapper('teacher', lambda i: i['_id'])
product = {**doc}
unpop_image(product)
product['teacher'] = resolve_teacher(doc['teacher'])
if(product['teacher']):
unpop_teacher(product)
return product