fixing-straw
Some checks failed
deploy / deploy (push) Failing after 41s

This commit is contained in:
Untone 2023-11-26 13:51:06 +03:00
parent 62c8d51c5d
commit 993f064633
5 changed files with 30 additions and 9 deletions

8
CHANGELOG.txt Normal file
View File

@ -0,0 +1,8 @@
[0.0.2]
- dx: migrated to strawberry
- dx: added sentry integration
- dx: added mypy plugins
- dx: pyright settings
[0.0.1]
- dummy ariadne version

View File

@ -22,7 +22,7 @@
Затем
```shell
poetry install
poetry env use 3.12
poetry run python server.py
poetry install
poetry run strawberry server main
```

13
main.py
View File

@ -2,6 +2,7 @@ import os
import asyncio
from os.path import exists
from sentry_sdk.integrations.strawberry import StrawberryIntegration
from strawberry.asgi import GraphQL
from starlette.applications import Starlette
@ -27,7 +28,17 @@ async def start_up():
try:
import sentry_sdk
sentry_sdk.init(SENTRY_DSN)
sentry_sdk.init(
SENTRY_DSN,
enable_tracing=True,
integrations=[
StrawberryIntegration(
# Set async_execution to True if you have
# at least one async resolver
async_execution=True
),
],
)
except Exception as e:
print("[sentry] init error")
print(e)

View File

@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api"
[tool.poetry]
name = "discoursio-notifier"
version = "0.0.1"
version = "0.0.2"
description = "notifier server for discours.io"
authors = ["discours.io devteam"]
@ -15,7 +15,7 @@ httpx = "^0.25.0"
psycopg2-binary = "^2.9.9"
redis = {extras = ["hiredis"], version = "^5.0.1"}
uvicorn = "^0.24.0.post1"
strawberry-graphql = { extras = ["asgi"], version = "^0.215.1" }
strawberry = {package = "strawberry-graphql", extras = ["asgi", "debug-server"], version = "^0.215.1" }
sentry-sdk = "^1.37.1"
[tool.poetry.dev-dependencies]
@ -69,4 +69,4 @@ executionEnvironments = []
[tool.mypy]
python_version = "3.12"
warn_unused_configs = true
plugins = ["mypy_sqlalchemy.plugin"]
plugins = ["mypy_sqlalchemy.plugin", "strawberry.ext.mypy_plugin"]

View File

@ -1,3 +1,5 @@
from typing import List
import strawberry
from sqlalchemy import and_
from orm.author import Author
@ -45,10 +47,10 @@ def notification_seen_by_viewer(viewer_id, notification_id, session):
@strawberry.type
class Query:
@login_required
@strawberry.field
async def load_notifications(self, info, limit: int = 50, offset: int = 0) -> dict:
"""непрочитанные уведомления"""
@login_required
async def load_notifications(self, info, limit: int = 50, offset: int = 0) -> dict[str, List[Notification] | int]:
"""загружаем уведомления"""
user_id = info.context["user_id"]
with local_session() as session: