def save(cls, data, user_name): if data.get('id') is None: project = Project.fill_model(Project(), data) project.user_name = user_name project.port = cls.generate_valid_node_port() project.domain = f'{project.name}.{ConfigUtil.get_str_property(config.DOMAIN_EXTERNAL)}' project.service_domain = f'{project.namespace}.{project.name}.' \ f'{ConfigUtil.get_str_property(config.DOMAIN_INTERNAL)}' project.nginx_proxies = json.dumps(project.nginx_proxies, ensure_ascii=False) project.insert() return Project.select().filter( Project.name == data.get('name')).one().id else: project = Project.select().get(data.get('id')) project = Project.fill_model(project, data) project.user_name = user_name project.nginx_proxies = json.dumps(project.nginx_proxies, ensure_ascii=False) project.update() return data.get('id')