def update(cls, substance): def _validate(substance): if not substance: return False if not substance.get("kit_name"): return False return True kit_id = substance.get("kit_id") if not _validate(substance): raise IllegalRequestError(None) kit = Kit.get_by_id(kit_id) if not kit: raise NoDataError(None) kit_name = substance.get("kit_name") category_id = substance.get("category_id") category_key = Category.get_key_by_id(category_id) kit.kit_name = kit_name kit.description = substance.get("description") kit.category = category_key kit.tags = Kit.sanitize_tags(substance.get("tags")) kit.valid = substance.get("valid") if substance.get("kit_file"): if kit.kit_file_id: KitLogic._delete_from_blobstore(str(kit.kit_file_id)) kit.kit_file_id = KitLogic._store_to_blobstore(substance.get("kit_file")) kit.put()
def read(cls, substance): kit_id = substance.get("kit_id") if not kit_id: raise IllegalRequestError(None) kit = Kit.get_by_id(kit_id) if not kit: raise NoDataError(None) kit.inc_view_count() return kit.to_hash()
def download(cls, substance): kit_id = substance.get("kit_id") if not kit_id: raise IllegalRequestError(None) kit = Kit.get_by_id(kit_id) if not kit or not kit.kit_file_id: raise NoDataError(None) kit_file = blobstore.BlobReader(str(kit.kit_file_id)) kit.inc_download_count() return dict(kit_file=kit_file)