Для корректного взаимодействия репозиториев и запросов, обернутых в отдельные файлы, необходимо придерживаться определенного свода правил наименования.
-
Для взаимодействия с файлами существует отдельная функция, которая находит нужный файл и вытаскивает из него сам запрос;
-
В методе, который выполняет SQL-запрос необходимо указывать префикс по названию файла и в соответствии с этим файлом называть директорию, в которой будут храниться запросы. Пример[10:20].
PS: Далее возможен перенос функции выполнения запроса в helper.py; -
Первая часть названия sql запроса необходимо называть по названию функции, из которой он будет вызываться. Например:
async def get_user_list(*) -> list:
""" Получение абстрактных пользователей """
result = await complete_query()
...Исходя из этой абстрактной функции файл в директории необходимо начинать с "get_user_list_*.sql"
- Если в функции, которая описана выше, выполняется несколько SQL запросов в соответствии с назначаемыми переменными в первую часть наименоваия файла добавляется название переменной. Например:
async def get_user_list(*) -> list:
""" Получение абстрактных пользователей """
result_1 = await complete_query(data_1)
result_2 = await complete_query(data_2)
...Исходя из этого к файлу после названия функции добавляется название переменной. Для ранее сформированного названия: get_user_list_result_1.sql. Это и будет финальным названием файла.
- Исходя из сформированного имени файла в методе, который вызывается для запроса к базе данных (если данный функционал не был переписан в более оптимальный вариант), необходимо передавать наименования файла без расширения, который далее будет парсить вспомогательная функция из
repositories/helper.py. Для наименования файла, сформированного ранее:
async def get_user_list(*) -> list:
""" Получение абстрактных пользователей """
result_1 = await complete_query(
filename="get_user_list_result_1"
)
result_2 = await complete_query(
filename="get_user_list_result_2"
)
...