Esempio n. 1
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()
Esempio n. 2
0
    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()
Esempio n. 3
0
    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)