| return {"job_id": job_id, "job_status": job_status, "error_msg": error_msg}, 200 | return {"job_id": job_id, "job_status": job_status, "error_msg": error_msg}, 200 | ||||
| class AnnotationListApi(Resource): | |||||
| class AnnotationApi(Resource): | |||||
| @setup_required | @setup_required | ||||
| @login_required | @login_required | ||||
| @account_initialization_required | @account_initialization_required | ||||
| } | } | ||||
| return response, 200 | return response, 200 | ||||
| @setup_required | |||||
| @login_required | |||||
| @account_initialization_required | |||||
| @cloud_edition_billing_resource_check("annotation") | |||||
| @marshal_with(annotation_fields) | |||||
| def post(self, app_id): | |||||
| if not current_user.is_editor: | |||||
| raise Forbidden() | |||||
| app_id = str(app_id) | |||||
| parser = reqparse.RequestParser() | |||||
| parser.add_argument("question", required=True, type=str, location="json") | |||||
| parser.add_argument("answer", required=True, type=str, location="json") | |||||
| args = parser.parse_args() | |||||
| annotation = AppAnnotationService.insert_app_annotation_directly(args, app_id) | |||||
| return annotation | |||||
| @setup_required | @setup_required | ||||
| @login_required | @login_required | ||||
| @account_initialization_required | @account_initialization_required | ||||
| return response, 200 | return response, 200 | ||||
| class AnnotationCreateApi(Resource): | |||||
| @setup_required | |||||
| @login_required | |||||
| @account_initialization_required | |||||
| @cloud_edition_billing_resource_check("annotation") | |||||
| @marshal_with(annotation_fields) | |||||
| def post(self, app_id): | |||||
| if not current_user.is_editor: | |||||
| raise Forbidden() | |||||
| app_id = str(app_id) | |||||
| parser = reqparse.RequestParser() | |||||
| parser.add_argument("question", required=True, type=str, location="json") | |||||
| parser.add_argument("answer", required=True, type=str, location="json") | |||||
| args = parser.parse_args() | |||||
| annotation = AppAnnotationService.insert_app_annotation_directly(args, app_id) | |||||
| return annotation | |||||
| class AnnotationUpdateDeleteApi(Resource): | class AnnotationUpdateDeleteApi(Resource): | ||||
| @setup_required | @setup_required | ||||
| @login_required | @login_required | ||||
| api.add_resource( | api.add_resource( | ||||
| AnnotationReplyActionStatusApi, "/apps/<uuid:app_id>/annotation-reply/<string:action>/status/<uuid:job_id>" | AnnotationReplyActionStatusApi, "/apps/<uuid:app_id>/annotation-reply/<string:action>/status/<uuid:job_id>" | ||||
| ) | ) | ||||
| api.add_resource(AnnotationListApi, "/apps/<uuid:app_id>/annotations") | |||||
| api.add_resource(AnnotationApi, "/apps/<uuid:app_id>/annotations") | |||||
| api.add_resource(AnnotationExportApi, "/apps/<uuid:app_id>/annotations/export") | api.add_resource(AnnotationExportApi, "/apps/<uuid:app_id>/annotations/export") | ||||
| api.add_resource(AnnotationCreateApi, "/apps/<uuid:app_id>/annotations") | |||||
| api.add_resource(AnnotationUpdateDeleteApi, "/apps/<uuid:app_id>/annotations/<uuid:annotation_id>") | api.add_resource(AnnotationUpdateDeleteApi, "/apps/<uuid:app_id>/annotations/<uuid:annotation_id>") | ||||
| api.add_resource(AnnotationBatchImportApi, "/apps/<uuid:app_id>/annotations/batch-import") | api.add_resource(AnnotationBatchImportApi, "/apps/<uuid:app_id>/annotations/batch-import") | ||||
| api.add_resource(AnnotationBatchImportStatusApi, "/apps/<uuid:app_id>/annotations/batch-import-status/<uuid:job_id>") | api.add_resource(AnnotationBatchImportStatusApi, "/apps/<uuid:app_id>/annotations/batch-import-status/<uuid:job_id>") |