39 lines
884 B
Python
39 lines
884 B
Python
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
|