zrb 0.23.4__py3-none-any.whl → 0.26.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- zrb/__init__.py +2 -0
- zrb/action/runner.py +8 -5
- zrb/advertisement.py +1 -2
- zrb/builtin/__init__.py +4 -0
- zrb/builtin/base64/decode.py +1 -1
- zrb/builtin/base64/encode.py +1 -1
- zrb/builtin/devtool/install/_helper.py +2 -1
- zrb/builtin/devtool/install/_input.py +2 -2
- zrb/builtin/docker/prune.py +11 -3
- zrb/builtin/env/get.py +3 -2
- zrb/builtin/eval.py +2 -1
- zrb/builtin/git/get_file_changes.py +2 -1
- zrb/builtin/md5/hash.py +1 -1
- zrb/builtin/md5/sum.py +1 -1
- zrb/builtin/monorepo/__init__.py +7 -0
- zrb/builtin/monorepo/_config.py +11 -0
- zrb/builtin/monorepo/_group.py +3 -0
- zrb/builtin/monorepo/_task.py +99 -0
- zrb/builtin/monorepo/add.py +40 -0
- zrb/builtin/monorepo/pull.py +23 -0
- zrb/builtin/monorepo/push.py +35 -0
- zrb/builtin/project/_helper.py +3 -3
- zrb/builtin/project/_input.py +2 -2
- zrb/builtin/project/add/app/generator/generator.py +1 -1
- zrb/builtin/project/add/app/generator/template/src/kebab-zrb-package-name/src/snake_zrb_package_name/snake_zrb_generator_name/snake_zrb_generator_name.py +1 -1
- zrb/builtin/project/add/app/generator/template/src/kebab-zrb-package-name/src/snake_zrb_package_name/snake_zrb_generator_name/template/_automate/snake_zrb_app_name/container/remove.py +1 -1
- zrb/builtin/project/add/app/generator/template/src/kebab-zrb-package-name/src/snake_zrb_package_name/snake_zrb_generator_name/template/_automate/snake_zrb_app_name/container/start.py +6 -7
- zrb/builtin/project/add/app/generator/template/src/kebab-zrb-package-name/src/snake_zrb_package_name/snake_zrb_generator_name/template/_automate/snake_zrb_app_name/container/stop.py +1 -1
- zrb/builtin/project/add/app/generator/template/src/kebab-zrb-package-name/src/snake_zrb_package_name/snake_zrb_generator_name/template/src/kebab-zrb-app-name/docker-compose.yml +0 -2
- zrb/builtin/project/add/app/python/python.py +1 -1
- zrb/builtin/project/add/app/python/template/_automate/snake_zrb_app_name/container/remove.py +1 -1
- zrb/builtin/project/add/app/python/template/_automate/snake_zrb_app_name/container/start.py +6 -7
- zrb/builtin/project/add/app/python/template/_automate/snake_zrb_app_name/container/stop.py +1 -1
- zrb/builtin/project/add/app/python/template/src/kebab-zrb-app-name/docker-compose.yml +0 -2
- zrb/builtin/project/add/fastapp/app/app.py +3 -1
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/_helper.py +2 -53
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/_service_config.py +1 -1
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/microservices/_helper.py +2 -2
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/microservices/start.py +5 -6
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/monolith/_helper.py +2 -2
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/monolith/start.py +5 -6
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/stop.py +2 -0
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/support/_helper.py +5 -3
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/support/start.py +4 -6
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/frontend/build-once.sh +1 -1
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/frontend/build.sh +1 -1
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/microservices/_helper.py +3 -5
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/microservices/start.py +3 -3
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/microservices/{start_microservices.py → start_services.py} +2 -3
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/.generator-version +1 -0
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/deployment/_common.py +5 -5
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/deployment/app_helper.py +5 -5
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/docker-compose.yml +2 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/loadtest/locustfile.py +1 -3
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/loadtest/template.env +1 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/error.py +2 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/messagebus/kafka/admin.py +4 -3
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/messagebus/kafka/consumer.py +2 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/messagebus/messagebus.py +4 -3
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/messagebus/mock.py +4 -3
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/messagebus/rabbitmq/admin.py +4 -3
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/messagebus/rabbitmq/consumer.py +3 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/model/repo_model.py +3 -3
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/repo/db_repo.py +7 -6
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/repo/repo.py +2 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/repo/search_filter.py +2 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/rpc/messagebus/caller.py +2 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/rpc/messagebus/server.py +2 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/rpc/rpc.py +3 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/component/serializer/serializer.py +2 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/config.py +59 -62
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/frontend/package-lock.json +4443 -0
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/helper/async_task.py +1 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/integration/app/app.py +28 -28
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/integration/app/app_lifespan.py +15 -15
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/integration/app/app_state.py +2 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/integration/db_connection.py +14 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/integration/frontend_index.py +2 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/integration/log.py +6 -6
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/integration/messagebus.py +33 -33
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/integration/rpc.py +9 -9
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/component/access_token/scheme.py +2 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/component/access_token/util.py +2 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/entity/group/repo.py +2 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/entity/group/rpc.py +2 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/entity/permission/rpc.py +2 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/entity/user/api.py +2 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/entity/user/model.py +3 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/entity/user/repo.py +3 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/entity/user/rpc.py +3 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/integration/access_token_scheme.py +2 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/integration/access_token_util.py +7 -7
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/integration/model/user_model.py +6 -6
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/integration/refresh_token_util.py +7 -7
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/integration/user.py +18 -18
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/migrate.py +2 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/register_module.py +8 -8
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/register_permission.py +2 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/schema/group.py +3 -5
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/schema/permission.py +1 -3
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/schema/request.py +1 -3
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/schema/user.py +5 -7
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/log/entity/activity/event.py +2 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/log/entity/activity/rpc.py +2 -1
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/log/migrate.py +2 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/log/register_module.py +8 -8
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/log/schema/activity.py +1 -3
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/template.env +5 -2
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/test/auth/test_group_crud.py +8 -8
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/test/auth/test_permission_crud.py +8 -8
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/test/auth/test_user_crud.py +8 -8
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/test/auth/test_user_login.py +15 -15
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/test/test_liveness_and_readiness.py +4 -4
- zrb/builtin/project/add/fastapp/crud/_helper/__init__.py +7 -0
- zrb/builtin/project/add/fastapp/crud/_helper/_common.py +8 -0
- zrb/builtin/project/add/fastapp/crud/_helper/register_api.py +45 -0
- zrb/builtin/project/add/fastapp/crud/_helper/register_permission.py +40 -0
- zrb/builtin/project/add/fastapp/crud/_helper/register_rpc.py +45 -0
- zrb/builtin/project/add/fastapp/crud/_task_factory.py +1 -2
- zrb/builtin/project/add/fastapp/crud/crud.py +4 -25
- zrb/builtin/project/add/fastapp/crud/nodejs/codemod/package-lock.json +3 -3
- zrb/builtin/project/add/fastapp/crud/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/entity/snake_zrb_entity_name/repo.py +12 -1
- zrb/builtin/project/add/fastapp/crud/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/entity/snake_zrb_entity_name/rpc.py +2 -1
- zrb/builtin/project/add/fastapp/crud/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/schema/snake_zrb_entity_name.py +3 -2
- zrb/builtin/project/add/fastapp/crud/template/src/kebab-zrb-app-name/test/snake_zrb_module_name/test_snake_zrb_entity_name.py +9 -8
- zrb/builtin/project/add/fastapp/field/_helper/__init__.py +17 -0
- zrb/builtin/project/add/fastapp/field/_helper/_common.py +102 -0
- zrb/builtin/project/add/fastapp/field/_helper/inject_delete_page.py +49 -0
- zrb/builtin/project/add/fastapp/field/_helper/inject_detail_page.py +49 -0
- zrb/builtin/project/add/fastapp/field/_helper/inject_insert_page.py +62 -0
- zrb/builtin/project/add/fastapp/field/_helper/inject_list_page.py +47 -0
- zrb/builtin/project/add/fastapp/field/_helper/inject_repo.py +47 -0
- zrb/builtin/project/add/fastapp/field/_helper/inject_schema.py +45 -0
- zrb/builtin/project/add/fastapp/field/_helper/inject_test.py +49 -0
- zrb/builtin/project/add/fastapp/field/_helper/inject_update_page.py +50 -0
- zrb/builtin/project/add/fastapp/field/_input.py +14 -2
- zrb/builtin/project/add/fastapp/field/field.py +52 -70
- zrb/builtin/project/add/fastapp/module/_helper/__init__.py +17 -0
- zrb/builtin/project/add/fastapp/module/_helper/append_all_disabled_env.py +22 -0
- zrb/builtin/project/add/fastapp/module/_helper/append_all_enabled_env.py +22 -0
- zrb/builtin/project/add/fastapp/module/_helper/append_deployment_template_env.py +25 -0
- zrb/builtin/project/add/fastapp/module/_helper/append_src_template_env.py +25 -0
- zrb/builtin/project/add/fastapp/module/_helper/create_app_config.py +29 -0
- zrb/builtin/project/add/fastapp/module/_helper/create_microservice_config.py +157 -0
- zrb/builtin/project/add/fastapp/module/_helper/register_migration.py +35 -0
- zrb/builtin/project/add/fastapp/module/_helper/register_module.py +33 -0
- zrb/builtin/project/add/fastapp/module/module.py +9 -38
- zrb/builtin/project/add/fastapp/module/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/migrate.py +2 -2
- zrb/builtin/project/add/fastapp/module/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/register_module.py +8 -8
- zrb/builtin/project/add/plugin/plugin.py +3 -3
- zrb/builtin/project/add/project_task/add.py +1 -1
- zrb/builtin/project/add/project_task/template/_automate/_project/build.py +2 -1
- zrb/builtin/project/add/project_task/template/_automate/_project/container/remove.py +2 -1
- zrb/builtin/project/add/project_task/template/_automate/_project/container/start.py +2 -1
- zrb/builtin/project/add/project_task/template/_automate/_project/container/stop.py +2 -1
- zrb/builtin/project/add/project_task/template/_automate/_project/deploy.py +2 -1
- zrb/builtin/project/add/project_task/template/_automate/_project/destroy.py +2 -1
- zrb/builtin/project/add/project_task/template/_automate/_project/get_env.py +2 -1
- zrb/builtin/project/add/project_task/template/_automate/_project/image/build.py +2 -1
- zrb/builtin/project/add/project_task/template/_automate/_project/image/push.py +2 -1
- zrb/builtin/project/add/project_task/template/_automate/_project/publish.py +2 -1
- zrb/builtin/project/add/project_task/template/_automate/_project/start.py +2 -1
- zrb/builtin/project/add/task/cmd/add.py +1 -1
- zrb/builtin/project/add/task/docker_compose/add.py +1 -1
- zrb/builtin/project/add/task/docker_compose/template/src/kebab-zrb-task-name/docker-compose.yml +0 -2
- zrb/builtin/project/add/task/python/add.py +1 -1
- zrb/builtin/project/add/task/python/template/_automate/snake_zrb_task_name.py +1 -1
- zrb/builtin/project/create/_helper.py +1 -1
- zrb/builtin/project/create/create.py +3 -3
- zrb/builtin/say.py +3 -3
- zrb/builtin/version.py +5 -4
- zrb/config/config.py +24 -14
- zrb/helper/accessories/color.py +2 -1
- zrb/helper/advertisement.py +2 -1
- zrb/helper/asyncio_task.py +23 -0
- zrb/helper/callable.py +4 -1
- zrb/helper/cli.py +20 -6
- zrb/helper/codemod/add_import_module.py +3 -2
- zrb/helper/codemod/add_property_to_class.py +2 -1
- zrb/helper/default_env.py +2 -1
- zrb/helper/docker_compose/fetch_external_env.py +4 -2
- zrb/helper/docker_compose/file.py +3 -1
- zrb/helper/env_map/fetch.py +3 -2
- zrb/helper/file/copy_tree.py +2 -1
- zrb/helper/file/match.py +2 -2
- zrb/helper/git/detect_changes.py +1 -1
- zrb/helper/loader/load_module.py +7 -46
- zrb/helper/loader/load_script.py +57 -0
- zrb/helper/log.py +3 -3
- zrb/helper/map/conversion.py +3 -1
- zrb/helper/string/jinja.py +2 -1
- zrb/helper/string/parse_replacement.py +1 -1
- zrb/helper/typecheck.py +2 -2
- zrb/helper/typing.py +5 -27
- zrb/helper/util.py +13 -1
- zrb/runner.py +2 -2
- zrb/task/any_task.py +9 -17
- zrb/task/any_task_event_handler.py +3 -1
- zrb/task/base_remote_cmd_task.py +3 -10
- zrb/task/base_task/base_task.py +15 -11
- zrb/task/base_task/component/base_task_model.py +15 -22
- zrb/task/base_task/component/common_task_model.py +15 -22
- zrb/task/base_task/component/renderer.py +3 -1
- zrb/task/base_task/component/trackers.py +1 -1
- zrb/task/checker.py +2 -1
- zrb/task/cmd_task.py +10 -22
- zrb/task/decorator.py +3 -1
- zrb/task/docker_compose_start_task.py +146 -0
- zrb/task/docker_compose_task.py +43 -34
- zrb/task/flow_task.py +19 -17
- zrb/task/http_checker.py +3 -9
- zrb/task/looper.py +4 -2
- zrb/task/notifier.py +3 -1
- zrb/task/parallel.py +4 -4
- zrb/task/path_checker.py +6 -12
- zrb/task/path_watcher.py +5 -13
- zrb/task/port_checker.py +3 -9
- zrb/task/recurring_task.py +5 -4
- zrb/task/remote_cmd_task.py +2 -1
- zrb/task/resource_maker.py +6 -13
- zrb/task/rsync_task.py +3 -1
- zrb/task/server.py +13 -12
- zrb/task/time_watcher.py +3 -10
- zrb/task/watcher.py +2 -1
- zrb/task/wiki_task.py +4 -3
- zrb/task_env/env.py +2 -1
- zrb/task_env/env_file.py +7 -6
- zrb/task_group/group.py +8 -7
- zrb/task_input/any_input.py +4 -3
- zrb/task_input/base_input.py +7 -5
- zrb/task_input/bool_input.py +2 -1
- zrb/task_input/choice_input.py +3 -1
- zrb/task_input/float_input.py +2 -1
- zrb/task_input/int_input.py +2 -1
- zrb/task_input/multiline_input.py +5 -3
- zrb/task_input/password_input.py +2 -1
- zrb/task_input/str_input.py +2 -1
- {zrb-0.23.4.dist-info → zrb-0.26.0.dist-info}/METADATA +2 -2
- {zrb-0.23.4.dist-info → zrb-0.26.0.dist-info}/RECORD +242 -214
- zrb/builtin/project/add/app/generator/template/src/kebab-zrb-package-name/src/snake_zrb_package_name/snake_zrb_generator_name/template/_automate/snake_zrb_app_name/container/init.py +0 -34
- zrb/builtin/project/add/app/python/template/_automate/snake_zrb_app_name/container/init.py +0 -34
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/microservices/init.py +0 -36
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/monolith/init.py +0 -36
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/support/init.py +0 -26
- zrb/builtin/project/add/fastapp/crud/_helper.py +0 -118
- zrb/builtin/project/add/fastapp/field/_helper.py +0 -328
- zrb/builtin/project/add/fastapp/module/_helper.py +0 -313
- {zrb-0.23.4.dist-info → zrb-0.26.0.dist-info}/LICENSE +0 -0
- {zrb-0.23.4.dist-info → zrb-0.26.0.dist-info}/WHEEL +0 -0
- {zrb-0.23.4.dist-info → zrb-0.26.0.dist-info}/entry_points.txt +0 -0
@@ -1,33 +1,33 @@
|
|
1
1
|
from config import (
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
2
|
+
APP_AUTH_ADMIN_EMAIL,
|
3
|
+
APP_AUTH_ADMIN_PASSWORD,
|
4
|
+
APP_AUTH_ADMIN_PHONE,
|
5
|
+
APP_AUTH_ADMIN_USER_ID,
|
6
|
+
APP_AUTH_ADMIN_USERNAME,
|
7
|
+
APP_AUTH_GUEST_EMAIL,
|
8
|
+
APP_AUTH_GUEST_PHONE,
|
9
|
+
APP_AUTH_GUEST_USER_ID,
|
10
|
+
APP_AUTH_GUEST_USERNAME,
|
11
11
|
)
|
12
12
|
from module.auth.schema.user import User
|
13
13
|
|
14
|
-
admin_user_password =
|
14
|
+
admin_user_password = APP_AUTH_ADMIN_PASSWORD
|
15
15
|
|
16
16
|
admin_user = User(
|
17
|
-
id=
|
18
|
-
username=
|
19
|
-
email=
|
20
|
-
phone=
|
17
|
+
id=APP_AUTH_ADMIN_USER_ID,
|
18
|
+
username=APP_AUTH_ADMIN_USERNAME,
|
19
|
+
email=APP_AUTH_ADMIN_EMAIL,
|
20
|
+
phone=APP_AUTH_ADMIN_PHONE,
|
21
21
|
groups=[],
|
22
22
|
permissions=[],
|
23
23
|
description="System administrator",
|
24
24
|
)
|
25
25
|
|
26
26
|
guest_user = User(
|
27
|
-
id=
|
28
|
-
username=
|
29
|
-
email=
|
30
|
-
phone=
|
27
|
+
id=APP_AUTH_GUEST_USER_ID,
|
28
|
+
username=APP_AUTH_GUEST_USERNAME,
|
29
|
+
email=APP_AUTH_GUEST_EMAIL,
|
30
|
+
phone=APP_AUTH_GUEST_PHONE,
|
31
31
|
groups=[],
|
32
32
|
permissions=[],
|
33
33
|
description="Visitor",
|
zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/migrate.py
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
from config import
|
1
|
+
from config import APP_ENABLE_AUTH_MODULE
|
2
2
|
from helper.migration import migrate
|
3
3
|
from integration.db_connection import engine
|
4
4
|
from integration.log import logger
|
@@ -7,7 +7,7 @@ from module.auth.register_permission import register_permission
|
|
7
7
|
|
8
8
|
|
9
9
|
async def migrate_auth():
|
10
|
-
if not
|
10
|
+
if not APP_ENABLE_AUTH_MODULE:
|
11
11
|
logger.info('🥪 Skip DB migration for "auth"')
|
12
12
|
return
|
13
13
|
logger.info('🥪 Perform DB migration for "auth"')
|
@@ -1,8 +1,8 @@
|
|
1
1
|
from config import (
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
2
|
+
APP_ENABLE_API,
|
3
|
+
APP_ENABLE_AUTH_MODULE,
|
4
|
+
APP_ENABLE_EVENT_HANDLER,
|
5
|
+
APP_ENABLE_RPC_SERVER,
|
6
6
|
)
|
7
7
|
from integration.app.app import app
|
8
8
|
from integration.log import logger
|
@@ -15,10 +15,10 @@ from module.auth.rpc import register_rpc
|
|
15
15
|
|
16
16
|
|
17
17
|
def register_auth():
|
18
|
-
if not
|
18
|
+
if not APP_ENABLE_AUTH_MODULE:
|
19
19
|
logger.info('🥪 Skip registering "auth"')
|
20
20
|
return
|
21
|
-
if
|
21
|
+
if APP_ENABLE_API:
|
22
22
|
register_api(
|
23
23
|
logger=logger,
|
24
24
|
app=app,
|
@@ -26,11 +26,11 @@ def register_auth():
|
|
26
26
|
rpc_caller=rpc_caller,
|
27
27
|
publisher=publisher,
|
28
28
|
)
|
29
|
-
if
|
29
|
+
if APP_ENABLE_EVENT_HANDLER:
|
30
30
|
register_event(
|
31
31
|
logger=logger, consumer=consumer, rpc_caller=rpc_caller, publisher=publisher
|
32
32
|
)
|
33
|
-
if
|
33
|
+
if APP_ENABLE_RPC_SERVER:
|
34
34
|
register_rpc(
|
35
35
|
logger=logger,
|
36
36
|
rpc_server=rpc_server,
|
@@ -1,4 +1,4 @@
|
|
1
|
-
from typing import
|
1
|
+
from typing import Optional
|
2
2
|
|
3
3
|
from module.auth.integration.model.permission_model import permission_model
|
4
4
|
from module.auth.schema.permission import PermissionData
|
@@ -14,7 +14,7 @@ ACTION_DESCRIPTION = {
|
|
14
14
|
|
15
15
|
|
16
16
|
async def ensure_entity_permission(
|
17
|
-
module_name: str, entity_name: str, action_names: Optional[
|
17
|
+
module_name: str, entity_name: str, action_names: Optional[list[str]] = None
|
18
18
|
):
|
19
19
|
if action_names is None:
|
20
20
|
action_names = DEFAULT_ACTION_NAMES
|
zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/schema/group.py
CHANGED
@@ -1,5 +1,3 @@
|
|
1
|
-
from typing import List
|
2
|
-
|
3
1
|
from component.schema import BaseCountSchema, BaseDateTimeSchema
|
4
2
|
from module.auth.schema.permission import Permission
|
5
3
|
|
@@ -10,7 +8,7 @@ class GroupBase(BaseDateTimeSchema):
|
|
10
8
|
|
11
9
|
|
12
10
|
class GroupData(GroupBase):
|
13
|
-
permissions:
|
11
|
+
permissions: list[str]
|
14
12
|
|
15
13
|
|
16
14
|
class Group(GroupBase):
|
@@ -18,8 +16,8 @@ class Group(GroupBase):
|
|
18
16
|
from_attributes = True
|
19
17
|
|
20
18
|
id: str
|
21
|
-
permissions:
|
19
|
+
permissions: list[Permission] = []
|
22
20
|
|
23
21
|
|
24
22
|
class GroupResult(BaseCountSchema):
|
25
|
-
data:
|
23
|
+
data: list[Group]
|
zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/auth/schema/user.py
CHANGED
@@ -1,5 +1,3 @@
|
|
1
|
-
from typing import List
|
2
|
-
|
3
1
|
from component.schema import BaseCountSchema, BaseDateTimeSchema
|
4
2
|
from module.auth.schema.group import Group
|
5
3
|
from module.auth.schema.permission import Permission
|
@@ -11,8 +9,8 @@ class UserBase(BaseDateTimeSchema):
|
|
11
9
|
phone: str
|
12
10
|
email: str
|
13
11
|
description: str
|
14
|
-
groups:
|
15
|
-
permissions:
|
12
|
+
groups: list[str]
|
13
|
+
permissions: list[str]
|
16
14
|
|
17
15
|
|
18
16
|
class UserData(UserBase):
|
@@ -21,15 +19,15 @@ class UserData(UserBase):
|
|
21
19
|
|
22
20
|
class User(UserBase):
|
23
21
|
id: str
|
24
|
-
permissions:
|
25
|
-
groups:
|
22
|
+
permissions: list[Permission] = []
|
23
|
+
groups: list[Group] = []
|
26
24
|
|
27
25
|
class Config:
|
28
26
|
from_attributes = True
|
29
27
|
|
30
28
|
|
31
29
|
class UserResult(BaseCountSchema):
|
32
|
-
data:
|
30
|
+
data: list[User]
|
33
31
|
|
34
32
|
|
35
33
|
class UserLogin(BaseModel):
|
zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/src/module/log/migrate.py
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
from config import
|
1
|
+
from config import APP_ENABLE_LOG_MODULE
|
2
2
|
from helper.migration import migrate
|
3
3
|
from integration.db_connection import engine
|
4
4
|
from integration.log import logger
|
@@ -6,7 +6,7 @@ from module.log.integration import Base
|
|
6
6
|
|
7
7
|
|
8
8
|
async def migrate_log():
|
9
|
-
if not
|
9
|
+
if not APP_ENABLE_LOG_MODULE:
|
10
10
|
logger.info('🥪 Skip DB migration for "log"')
|
11
11
|
return
|
12
12
|
logger.info('🥪 Perform DB migration for "log"')
|
@@ -1,8 +1,8 @@
|
|
1
1
|
from config import (
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
2
|
+
APP_ENABLE_API,
|
3
|
+
APP_ENABLE_EVENT_HANDLER,
|
4
|
+
APP_ENABLE_LOG_MODULE,
|
5
|
+
APP_ENABLE_RPC_SERVER,
|
6
6
|
)
|
7
7
|
from integration.app.app import app
|
8
8
|
from integration.log import logger
|
@@ -15,10 +15,10 @@ from module.log.rpc import register_rpc
|
|
15
15
|
|
16
16
|
|
17
17
|
def register_log():
|
18
|
-
if not
|
18
|
+
if not APP_ENABLE_LOG_MODULE:
|
19
19
|
logger.info('🥪 Skip registering "log"')
|
20
20
|
return
|
21
|
-
if
|
21
|
+
if APP_ENABLE_API:
|
22
22
|
register_api(
|
23
23
|
logger=logger,
|
24
24
|
app=app,
|
@@ -26,11 +26,11 @@ def register_log():
|
|
26
26
|
rpc_caller=rpc_caller,
|
27
27
|
publisher=publisher,
|
28
28
|
)
|
29
|
-
if
|
29
|
+
if APP_ENABLE_EVENT_HANDLER:
|
30
30
|
register_event(
|
31
31
|
logger=logger, consumer=consumer, rpc_caller=rpc_caller, publisher=publisher
|
32
32
|
)
|
33
|
-
if
|
33
|
+
if APP_ENABLE_RPC_SERVER:
|
34
34
|
register_rpc(
|
35
35
|
logger=logger,
|
36
36
|
rpc_server=rpc_server,
|
@@ -10,8 +10,8 @@ APP_OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317
|
|
10
10
|
|
11
11
|
PUBLIC_BRAND=PascalZrbAppName
|
12
12
|
PUBLIC_TITLE=PascalZrbAppName
|
13
|
-
|
14
|
-
|
13
|
+
APP_AUTH_ACCESS_TOKEN_COOKIE_KEY=access_token
|
14
|
+
APP_AUTH_REFRESH_TOKEN_COOKIE_KEY=refresh_token
|
15
15
|
|
16
16
|
APP_AUTH_ACCESS_TOKEN_EXPIRE_SECONDS=300
|
17
17
|
APP_AUTH_ACCESS_TOKEN_TYPE=jwt
|
@@ -36,6 +36,9 @@ APP_AUTH_GUEST_PHONE=
|
|
36
36
|
APP_DB_CONNECTION=postgresql+psycopg2://postgres:admin@localhost:5432/snake_zrb_app_name
|
37
37
|
APP_DB_ENGINE_SHOW_LOG=false
|
38
38
|
APP_DB_AUTO_MIGRATE=true
|
39
|
+
APP_DB_POOL_PRE_PING=true
|
40
|
+
APP_DB_POOL_SIZE=20
|
41
|
+
APP_DB_POOL_MAX_OVERFLOW=0
|
39
42
|
|
40
43
|
APP_BROKER_TYPE=rabbitmq
|
41
44
|
|
zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/test/auth/test_group_crud.py
CHANGED
@@ -1,8 +1,8 @@
|
|
1
|
-
from
|
1
|
+
from collections.abc import AsyncIterator
|
2
2
|
|
3
3
|
import pytest
|
4
4
|
from httpx import AsyncClient
|
5
|
-
from src.config import
|
5
|
+
from src.config import APP_AUTH_ADMIN_PASSWORD, APP_AUTH_ADMIN_USERNAME
|
6
6
|
|
7
7
|
inserted_success_data = {
|
8
8
|
"name": "test-create-group-success",
|
@@ -35,8 +35,8 @@ async def test_insert_group_and_get_success(
|
|
35
35
|
login_admin_response = await client.post(
|
36
36
|
"/api/v1/auth/login",
|
37
37
|
json={
|
38
|
-
"identity":
|
39
|
-
"password":
|
38
|
+
"identity": APP_AUTH_ADMIN_USERNAME,
|
39
|
+
"password": APP_AUTH_ADMIN_PASSWORD,
|
40
40
|
},
|
41
41
|
)
|
42
42
|
assert login_admin_response.status_code == 200
|
@@ -88,8 +88,8 @@ async def test_update_group_and_get_success(
|
|
88
88
|
login_admin_response = await client.post(
|
89
89
|
"/api/v1/auth/login",
|
90
90
|
json={
|
91
|
-
"identity":
|
92
|
-
"password":
|
91
|
+
"identity": APP_AUTH_ADMIN_USERNAME,
|
92
|
+
"password": APP_AUTH_ADMIN_PASSWORD,
|
93
93
|
},
|
94
94
|
)
|
95
95
|
assert login_admin_response.status_code == 200
|
@@ -155,8 +155,8 @@ async def test_delete_group_and_get_success(
|
|
155
155
|
login_admin_response = await client.post(
|
156
156
|
"/api/v1/auth/login",
|
157
157
|
json={
|
158
|
-
"identity":
|
159
|
-
"password":
|
158
|
+
"identity": APP_AUTH_ADMIN_USERNAME,
|
159
|
+
"password": APP_AUTH_ADMIN_PASSWORD,
|
160
160
|
},
|
161
161
|
)
|
162
162
|
assert login_admin_response.status_code == 200
|
@@ -1,8 +1,8 @@
|
|
1
|
-
from
|
1
|
+
from collections.abc import AsyncIterator
|
2
2
|
|
3
3
|
import pytest
|
4
4
|
from httpx import AsyncClient
|
5
|
-
from src.config import
|
5
|
+
from src.config import APP_AUTH_ADMIN_PASSWORD, APP_AUTH_ADMIN_USERNAME
|
6
6
|
|
7
7
|
inserted_success_data = {
|
8
8
|
"name": "test-create-permission-success",
|
@@ -31,8 +31,8 @@ async def test_insert_permission_and_get_success(
|
|
31
31
|
login_admin_response = await client.post(
|
32
32
|
"/api/v1/auth/login",
|
33
33
|
json={
|
34
|
-
"identity":
|
35
|
-
"password":
|
34
|
+
"identity": APP_AUTH_ADMIN_USERNAME,
|
35
|
+
"password": APP_AUTH_ADMIN_PASSWORD,
|
36
36
|
},
|
37
37
|
)
|
38
38
|
assert login_admin_response.status_code == 200
|
@@ -84,8 +84,8 @@ async def test_update_permission_and_get_success(
|
|
84
84
|
login_admin_response = await client.post(
|
85
85
|
"/api/v1/auth/login",
|
86
86
|
json={
|
87
|
-
"identity":
|
88
|
-
"password":
|
87
|
+
"identity": APP_AUTH_ADMIN_USERNAME,
|
88
|
+
"password": APP_AUTH_ADMIN_PASSWORD,
|
89
89
|
"permissions": [],
|
90
90
|
},
|
91
91
|
)
|
@@ -152,8 +152,8 @@ async def test_delete_permission_and_get_success(
|
|
152
152
|
login_admin_response = await client.post(
|
153
153
|
"/api/v1/auth/login",
|
154
154
|
json={
|
155
|
-
"identity":
|
156
|
-
"password":
|
155
|
+
"identity": APP_AUTH_ADMIN_USERNAME,
|
156
|
+
"password": APP_AUTH_ADMIN_PASSWORD,
|
157
157
|
},
|
158
158
|
)
|
159
159
|
assert login_admin_response.status_code == 200
|
zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/test/auth/test_user_crud.py
CHANGED
@@ -1,8 +1,8 @@
|
|
1
|
-
from
|
1
|
+
from collections.abc import AsyncIterator
|
2
2
|
|
3
3
|
import pytest
|
4
4
|
from httpx import AsyncClient
|
5
|
-
from src.config import
|
5
|
+
from src.config import APP_AUTH_ADMIN_PASSWORD, APP_AUTH_ADMIN_USERNAME
|
6
6
|
|
7
7
|
inserted_success_data = {
|
8
8
|
"username": "test-create-user-success",
|
@@ -51,8 +51,8 @@ async def test_insert_user_and_get_success(
|
|
51
51
|
login_admin_response = await client.post(
|
52
52
|
"/api/v1/auth/login",
|
53
53
|
json={
|
54
|
-
"identity":
|
55
|
-
"password":
|
54
|
+
"identity": APP_AUTH_ADMIN_USERNAME,
|
55
|
+
"password": APP_AUTH_ADMIN_PASSWORD,
|
56
56
|
},
|
57
57
|
)
|
58
58
|
assert login_admin_response.status_code == 200
|
@@ -104,8 +104,8 @@ async def test_update_user_and_get_success(
|
|
104
104
|
login_admin_response = await client.post(
|
105
105
|
"/api/v1/auth/login",
|
106
106
|
json={
|
107
|
-
"identity":
|
108
|
-
"password":
|
107
|
+
"identity": APP_AUTH_ADMIN_USERNAME,
|
108
|
+
"password": APP_AUTH_ADMIN_PASSWORD,
|
109
109
|
},
|
110
110
|
)
|
111
111
|
assert login_admin_response.status_code == 200
|
@@ -171,8 +171,8 @@ async def test_delete_user_and_get_success(
|
|
171
171
|
login_admin_response = await client.post(
|
172
172
|
"/api/v1/auth/login",
|
173
173
|
json={
|
174
|
-
"identity":
|
175
|
-
"password":
|
174
|
+
"identity": APP_AUTH_ADMIN_USERNAME,
|
175
|
+
"password": APP_AUTH_ADMIN_PASSWORD,
|
176
176
|
},
|
177
177
|
)
|
178
178
|
assert login_admin_response.status_code == 200
|
zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/test/auth/test_user_login.py
CHANGED
@@ -1,8 +1,8 @@
|
|
1
|
-
from
|
1
|
+
from collections.abc import AsyncIterator
|
2
2
|
|
3
3
|
import pytest
|
4
4
|
from httpx import AsyncClient
|
5
|
-
from src.config import
|
5
|
+
from src.config import APP_AUTH_ADMIN_PASSWORD, APP_AUTH_ADMIN_USERNAME
|
6
6
|
|
7
7
|
|
8
8
|
@pytest.mark.asyncio
|
@@ -13,8 +13,8 @@ async def test_admin_user_login_success(
|
|
13
13
|
login_response = await client.post(
|
14
14
|
"/api/v1/auth/login",
|
15
15
|
json={
|
16
|
-
"identity":
|
17
|
-
"password":
|
16
|
+
"identity": APP_AUTH_ADMIN_USERNAME,
|
17
|
+
"password": APP_AUTH_ADMIN_PASSWORD,
|
18
18
|
},
|
19
19
|
)
|
20
20
|
assert login_response.status_code == 200
|
@@ -30,7 +30,7 @@ async def test_admin_user_login_empty_identity_failed(
|
|
30
30
|
async for client in test_client_generator:
|
31
31
|
login_response = await client.post(
|
32
32
|
"/api/v1/auth/login",
|
33
|
-
json={"identity": "", "password":
|
33
|
+
json={"identity": "", "password": APP_AUTH_ADMIN_PASSWORD},
|
34
34
|
)
|
35
35
|
assert login_response.status_code == 422
|
36
36
|
|
@@ -42,7 +42,7 @@ async def test_admin_user_login_invalid_identity_failed(
|
|
42
42
|
async for client in test_client_generator:
|
43
43
|
login_response = await client.post(
|
44
44
|
"/api/v1/auth/login",
|
45
|
-
json={"identity": "invalid-identity", "password":
|
45
|
+
json={"identity": "invalid-identity", "password": APP_AUTH_ADMIN_PASSWORD},
|
46
46
|
)
|
47
47
|
assert login_response.status_code == 404
|
48
48
|
|
@@ -54,7 +54,7 @@ async def test_admin_user_failed_invalid_password(
|
|
54
54
|
async for client in test_client_generator:
|
55
55
|
login_response = await client.post(
|
56
56
|
"/api/v1/auth/login",
|
57
|
-
json={"identity":
|
57
|
+
json={"identity": APP_AUTH_ADMIN_USERNAME, "password": "invalid-password"},
|
58
58
|
)
|
59
59
|
assert login_response.status_code == 404
|
60
60
|
|
@@ -68,8 +68,8 @@ async def test_create_normal_user_and_login_with_username_success(
|
|
68
68
|
login_admin_response = await client.post(
|
69
69
|
"/api/v1/auth/login",
|
70
70
|
json={
|
71
|
-
"identity":
|
72
|
-
"password":
|
71
|
+
"identity": APP_AUTH_ADMIN_USERNAME,
|
72
|
+
"password": APP_AUTH_ADMIN_PASSWORD,
|
73
73
|
},
|
74
74
|
)
|
75
75
|
assert login_admin_response.status_code == 200
|
@@ -113,8 +113,8 @@ async def test_create_normal_user_and_login_with_phone_success(
|
|
113
113
|
login_admin_response = await client.post(
|
114
114
|
"/api/v1/auth/login",
|
115
115
|
json={
|
116
|
-
"identity":
|
117
|
-
"password":
|
116
|
+
"identity": APP_AUTH_ADMIN_USERNAME,
|
117
|
+
"password": APP_AUTH_ADMIN_PASSWORD,
|
118
118
|
},
|
119
119
|
)
|
120
120
|
assert login_admin_response.status_code == 200
|
@@ -155,8 +155,8 @@ async def test_create_normal_user_and_login_with_email_success(
|
|
155
155
|
login_admin_response = await client.post(
|
156
156
|
"/api/v1/auth/login",
|
157
157
|
json={
|
158
|
-
"identity":
|
159
|
-
"password":
|
158
|
+
"identity": APP_AUTH_ADMIN_USERNAME,
|
159
|
+
"password": APP_AUTH_ADMIN_PASSWORD,
|
160
160
|
},
|
161
161
|
)
|
162
162
|
assert login_admin_response.status_code == 200
|
@@ -200,8 +200,8 @@ async def test_create_normal_user_and_login_failed(
|
|
200
200
|
login_admin_response = await client.post(
|
201
201
|
"/api/v1/auth/login",
|
202
202
|
json={
|
203
|
-
"identity":
|
204
|
-
"password":
|
203
|
+
"identity": APP_AUTH_ADMIN_USERNAME,
|
204
|
+
"password": APP_AUTH_ADMIN_PASSWORD,
|
205
205
|
},
|
206
206
|
)
|
207
207
|
assert login_admin_response.status_code == 200
|
@@ -1,8 +1,8 @@
|
|
1
|
-
from
|
1
|
+
from collections.abc import AsyncIterator
|
2
2
|
|
3
3
|
import pytest
|
4
4
|
from httpx import AsyncClient
|
5
|
-
from src.config import
|
5
|
+
from src.config import APP_NAME
|
6
6
|
|
7
7
|
|
8
8
|
@pytest.mark.asyncio
|
@@ -10,7 +10,7 @@ async def test_get_liveness(test_client_generator: AsyncIterator[AsyncClient]):
|
|
10
10
|
async for client in test_client_generator:
|
11
11
|
response = await client.get("/liveness")
|
12
12
|
assert response.status_code == 200
|
13
|
-
assert response.json() == {"app":
|
13
|
+
assert response.json() == {"app": APP_NAME, "alive": True}
|
14
14
|
|
15
15
|
|
16
16
|
@pytest.mark.asyncio
|
@@ -25,7 +25,7 @@ async def test_get_readiness(test_client_generator: AsyncIterator[AsyncClient]):
|
|
25
25
|
async for client in test_client_generator:
|
26
26
|
response = await client.get("/readiness")
|
27
27
|
assert response.status_code == 200
|
28
|
-
assert response.json() == {"app":
|
28
|
+
assert response.json() == {"app": APP_NAME, "ready": True}
|
29
29
|
|
30
30
|
|
31
31
|
@pytest.mark.asyncio
|
@@ -0,0 +1,45 @@
|
|
1
|
+
import os
|
2
|
+
|
3
|
+
from zrb.helper.codemod.add_import_module import add_import_module
|
4
|
+
from zrb.helper.codemod.append_code_to_function import append_code_to_function
|
5
|
+
from zrb.helper.file.text import read_text_file_async, write_text_file_async
|
6
|
+
from zrb.helper.typecheck import typechecked
|
7
|
+
from zrb.helper.util import to_snake_case
|
8
|
+
from zrb.task.task import Task
|
9
|
+
|
10
|
+
from ._common import get_app_module_dir
|
11
|
+
|
12
|
+
|
13
|
+
@typechecked
|
14
|
+
async def register_api(
|
15
|
+
task: Task, project_dir: str, app_name: str, module_name: str, entity_name: str
|
16
|
+
):
|
17
|
+
snake_module_name = to_snake_case(module_name)
|
18
|
+
snake_entity_name = to_snake_case(entity_name)
|
19
|
+
module_api_file_path = os.path.join(
|
20
|
+
get_app_module_dir(project_dir, app_name), snake_module_name, "api.py"
|
21
|
+
)
|
22
|
+
register_function_path = ".".join(
|
23
|
+
["module", snake_module_name, "entity", snake_entity_name, "api"]
|
24
|
+
)
|
25
|
+
register_function = f"register_{snake_entity_name}_api"
|
26
|
+
task.print_out(f"Read code from: {module_api_file_path}")
|
27
|
+
code = await read_text_file_async(module_api_file_path)
|
28
|
+
task.print_out(
|
29
|
+
f'Add import "register_api" as "{register_function}" '
|
30
|
+
+ f'from "{register_function_path}" to the code'
|
31
|
+
)
|
32
|
+
code = add_import_module(
|
33
|
+
code=code,
|
34
|
+
module_path=register_function_path,
|
35
|
+
resource="register_api",
|
36
|
+
alias=register_function,
|
37
|
+
)
|
38
|
+
task.print_out(f'Add "{register_function}" call to the code')
|
39
|
+
code = append_code_to_function(
|
40
|
+
code=code,
|
41
|
+
function_name="register_api",
|
42
|
+
new_code=f"{register_function}(logger, app, authorizer, rpc_caller, publisher)", # noqa
|
43
|
+
)
|
44
|
+
task.print_out(f"Write modified code to: {module_api_file_path}")
|
45
|
+
await write_text_file_async(module_api_file_path, code)
|