Skip to content

Commit

Permalink
Экономия минут и возврат обработчика запросов к правильному виду
Browse files Browse the repository at this point in the history
  • Loading branch information
K1rL3s committed Jan 23, 2024
1 parent 84076e9 commit 211b9b0
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 21 deletions.
8 changes: 4 additions & 4 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
matrix:
os:
- ubuntu-latest
- macos-latest
# - macos-latest # Открыть после окончания активной разработки, жрёт много минут
- windows-latest
python-version:
- '3.8'
Expand Down Expand Up @@ -74,7 +74,7 @@ jobs:
if: ${{ env.IS_WINDOWS == 'false' }}
uses: shogo82148/actions-setup-redis@v1
with:
redis-version: 6
redis-version: 7

- name: Run tests
run: |
Expand All @@ -97,7 +97,7 @@ jobs:
matrix:
os:
- ubuntu-latest
- macos-latest
# - macos-latest # Открыть после окончания активной разработки, жрёт много минут
# - windows-latest
python-version:
- 'pypy3.8'
Expand Down Expand Up @@ -128,7 +128,7 @@ jobs:
- name: Setup redis
uses: shogo82148/actions-setup-redis@v1
with:
redis-version: 6
redis-version: 7

- name: Run tests
run: |
Expand Down
46 changes: 29 additions & 17 deletions aliceio/webhook/aiohttp_server.py
Original file line number Diff line number Diff line change
Expand Up @@ -145,13 +145,28 @@ async def resolve_skill(self, request: web.Request) -> Skill:
pass

@abstractmethod
async def _handle_request(self, skill: Skill, request: web.Request) -> web.Response:
"""
Этот метод должен быть реализован в наследниках этого класса.
async def _handle_request(
self,
skill: Skill,
request: web.Request,
update: Optional[Update] = None,
) -> web.Response:
if update is None:
update = cast(Update, self._update_validate(skill, request))

Обрабатывает запрос и возвращает конечный ответ.
"""
pass
result = await self.dispatcher.feed_webhook_update(
skill,
update,
**self.data,
)
return self._build_web_response(result)

# Сделать здесь обработку, если прилетает некорректный update?
async def _update_validate(self, skill: Skill, request: web.Request) -> Update:
json_data = self._convert_show_pull_to_normal_request(
await request.json(loads=self.json_loads)
)
return Update.model_validate(json_data, context={"skill": skill})

async def handle(self, request: web.Request) -> web.Response:
skill = await self.resolve_skill(request)
Expand Down Expand Up @@ -215,11 +230,13 @@ async def close(self) -> None:
async def resolve_skill(self, request: web.Request) -> Skill:
return self.skill

async def _handle_request(self, skill: Skill, request: web.Request) -> web.Response:
json_data = self._convert_show_pull_to_normal_request(
await request.json(loads=self.json_loads)
)
update = Update.model_validate(json_data, context={"skill": skill})
async def _handle_request(
self,
skill: Skill,
request: web.Request,
update: Optional[Update] = None,
) -> web.Response:
update = await self._update_validate(skill, request)

# Проверка айди навыка в поступившем событии
if update.session.skill_id != skill.skill_id:
Expand All @@ -230,9 +247,4 @@ async def _handle_request(self, skill: Skill, request: web.Request) -> web.Respo
)
return web.Response(body="Not Acceptable", status=406)

result = await self.dispatcher.feed_webhook_update(
skill,
update,
**self.data,
)
return self._build_web_response(result)
return await super()._handle_request(skill, request, update)

0 comments on commit 211b9b0

Please sign in to comment.