def create(cls, substance): def _validate(substance): if not substance: return False return True if not _validate(substance): raise IllegalRequestError(None) author_id = substance.get("author_id") author_key = Author.get_key_by_id(author_id) category_id = substance.get("category_id") category_key = Category.get_key_by_id(category_id) kit = Kit( id=Kit.make_kit_id_hash(), kit_name=substance.get("kit_name"), author=author_key, category=category_key, tags=Kit.sanitize_tags(substance.get("tags")), description=substance.get("description"), ) if substance.get("kit_file"): kit.kit_file_id = KitLogic._store_to_blobstore(substance.get("kit_file")) kit.put() return True
def list(cls, substance): kit_list = [] author_id = substance.get("author_id") category_id = substance.get("category_id") tags = substance.get("tags") if author_id: author_key = Author.get_key_by_id(author_id) if author_key: kit_list = [kit.to_hash_short() for kit in Kit.query(Kit.author == author_key)] elif category_id: category_key = Category.get_key_by_id(category_id) if category_key: kit_list = [kit.to_hash_short() for kit in Kit.query(Kit.category == category_key, True == Kit.valid)] elif tags: kit_list = [ kit.to_hash_short() for kit in Kit.query(Kit.tags.IN(Kit.sanitize_tags(tags)), True == Kit.valid) ] else: kit_list = [kit.to_hash_short() for kit in Kit.query(True == Kit.valid)] return dict(items=kit_list)