Team Ai
Apppublic

Underground-Digital/Workflow-Engine

sourceHugging Faceupdated 2y agoView on Hugging Face
0likes
setup.py60 linesDownload Raw Back to console
1from flask import request2from flask_restful import Resource, reqparse3 4from configs import dify_config5from libs.helper import StrLen, email, extract_remote_ip6from libs.password import valid_password7from models.model import DifySetup8from services.account_service import RegisterService, TenantService9 10from . import api11from .error import AlreadySetupError, NotInitValidateError12from .init_validate import get_init_validate_status13from .wraps import only_edition_self_hosted14 15 16class SetupApi(Resource):17    def get(self):18        if dify_config.EDITION == "SELF_HOSTED":19            setup_status = get_setup_status()20            if setup_status:21                return {"step": "finished", "setup_at": setup_status.setup_at.isoformat()}22            return {"step": "not_started"}23        return {"step": "finished"}24 25    @only_edition_self_hosted26    def post(self):27        # is set up28        if get_setup_status():29            raise AlreadySetupError()30 31        # is tenant created32        tenant_count = TenantService.get_tenant_count()33        if tenant_count > 0:34            raise AlreadySetupError()35 36        if not get_init_validate_status():37            raise NotInitValidateError()38 39        parser = reqparse.RequestParser()40        parser.add_argument("email", type=email, required=True, location="json")41        parser.add_argument("name", type=StrLen(30), required=True, location="json")42        parser.add_argument("password", type=valid_password, required=True, location="json")43        args = parser.parse_args()44 45        # setup46        RegisterService.setup(47            email=args["email"], name=args["name"], password=args["password"], ip_address=extract_remote_ip(request)48        )49 50        return {"result": "success"}, 20151 52 53def get_setup_status():54    if dify_config.EDITION == "SELF_HOSTED":55        return DifySetup.query.first()56    return True57 58 59api.add_resource(SetupApi, "/setup")60