示例#1
0
    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
示例#2
0
    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()
示例#3
0
 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)
示例#4
0
 def create(category_name):
     Category(
         id=Category.make_category_id_hash(),
         category_name=category_name
     ).put()
示例#5
0
 def list(cls):
     categories = [category.to_hash() for category in
                   Category.query(Category.valid == True).order(Category.category_name)]
     return dict(items=categories)