This commit is contained in:
parent
59a1f8c902
commit
15fd6ec765
|
@ -14,8 +14,7 @@ repos:
|
||||||
- id: check-merge-conflict
|
- id: check-merge-conflict
|
||||||
|
|
||||||
- repo: https://github.com/astral-sh/ruff-pre-commit
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
||||||
rev: v0.1.13
|
rev: v0.1.15
|
||||||
hooks:
|
hooks:
|
||||||
- id: ruff
|
- id: ruff
|
||||||
args: [--fix]
|
args: [--fix]
|
||||||
- id: ruff-format
|
|
||||||
|
|
|
@ -5,7 +5,7 @@ FROM python:slim
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
# Add metadata to the image to describe that the container is listening on port 80
|
# Add metadata to the image to describe that the container is listening on port 80
|
||||||
EXPOSE 80
|
EXPOSE 8000
|
||||||
|
|
||||||
# Copy the current directory contents into the container at /app
|
# Copy the current directory contents into the container at /app
|
||||||
COPY . /app
|
COPY . /app
|
||||||
|
@ -19,4 +19,4 @@ RUN apt-get update && apt-get install -y gcc curl && \
|
||||||
poetry install --no-dev
|
poetry install --no-dev
|
||||||
|
|
||||||
# Run server.py when the container launches
|
# Run server.py when the container launches
|
||||||
CMD granian --no-ws --host 0.0.0.0 --port 80 --interface asgi main:app
|
CMD python server.py
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
|
|
||||||
[tool.poetry]
|
[tool.poetry]
|
||||||
name = "discoursio-notifier"
|
name = "discoursio-notifier"
|
||||||
version = "0.2.22"
|
version = "0.3.0"
|
||||||
description = "notifier server for discours.io"
|
description = "notifier server for discours.io"
|
||||||
authors = ["discours.io devteam"]
|
authors = ["discours.io devteam"]
|
||||||
|
|
||||||
|
@ -15,19 +16,24 @@ sentry-sdk = "^1.39.2"
|
||||||
aiohttp = "^3.9.1"
|
aiohttp = "^3.9.1"
|
||||||
pre-commit = "^3.6.0"
|
pre-commit = "^3.6.0"
|
||||||
granian = "^1.0.1"
|
granian = "^1.0.1"
|
||||||
|
discoursio-core = { git = "https://dev.discours.io/discours.io/core.git", branch = "feature/core" }
|
||||||
|
|
||||||
[tool.poetry.group.dev.dependencies]
|
[tool.poetry.group.dev.dependencies]
|
||||||
setuptools = "^69.0.2"
|
setuptools = "^69.0.2"
|
||||||
pyright = "^1.1.341"
|
pyright = "^1.1.341"
|
||||||
pytest = "^7.4.2"
|
pytest = "^7.4.2"
|
||||||
black = { version = "^23.12.0", python = ">=3.12" }
|
black = { version = "^23.12.0", python = ">=3.12" }
|
||||||
ruff = { version = "^0.1.8", python = ">=3.12" }
|
ruff = { version = "^0.1.15", python = ">=3.12" }
|
||||||
isort = "^5.13.2"
|
isort = "^5.13.2"
|
||||||
|
|
||||||
[build-system]
|
[build-system]
|
||||||
requires = ["poetry-core"]
|
requires = ["poetry-core"]
|
||||||
build-backend = "poetry.core.masonry.api"
|
build-backend = "poetry.core.masonry.api"
|
||||||
|
|
||||||
|
[tool.setuptools.dynamic]
|
||||||
|
version = {attr = "notifier.__version__"}
|
||||||
|
readme = {file = "README.md"}
|
||||||
|
|
||||||
[tool.ruff]
|
[tool.ruff]
|
||||||
line-length = 120
|
line-length = 120
|
||||||
extend-select = [
|
extend-select = [
|
||||||
|
|
17
server.py
Normal file
17
server.py
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
from granian.constants import Interfaces
|
||||||
|
from granian.server import Granian
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
print('[server] started')
|
||||||
|
|
||||||
|
granian_instance = Granian(
|
||||||
|
'main:app',
|
||||||
|
address='0.0.0.0', # noqa S104
|
||||||
|
port=8000,
|
||||||
|
workers=2,
|
||||||
|
threads=2,
|
||||||
|
websockets=False,
|
||||||
|
interface=Interfaces.ASGI,
|
||||||
|
)
|
||||||
|
granian_instance.serve()
|
|
@ -37,15 +37,24 @@ async def check_auth(req) -> str | None:
|
||||||
try:
|
try:
|
||||||
# Asynchronous HTTP request to the authentication server
|
# Asynchronous HTTP request to the authentication server
|
||||||
async with ClientSession() as session:
|
async with ClientSession() as session:
|
||||||
async with session.post(AUTH_URL, json=gql, headers=headers) as response:
|
async with session.post(
|
||||||
print(f'[services.auth] HTTP Response {response.status} {await response.text()}')
|
AUTH_URL, json=gql, headers=headers
|
||||||
|
) as response:
|
||||||
|
print(
|
||||||
|
f'[services.auth] HTTP Response {response.status} {await response.text()}'
|
||||||
|
)
|
||||||
if response.status == 200:
|
if response.status == 200:
|
||||||
data = await response.json()
|
data = await response.json()
|
||||||
errors = data.get('errors')
|
errors = data.get('errors')
|
||||||
if errors:
|
if errors:
|
||||||
print(f'[services.auth] errors: {errors}')
|
print(f'errors: {errors}')
|
||||||
else:
|
else:
|
||||||
user_id = data.get('data', {}).get(query_name, {}).get('claims', {}).get('sub')
|
user_id = (
|
||||||
|
data.get('data', {})
|
||||||
|
.get(query_name, {})
|
||||||
|
.get('claims', {})
|
||||||
|
.get('sub')
|
||||||
|
)
|
||||||
if user_id:
|
if user_id:
|
||||||
print(f'[services.auth] got user_id: {user_id}')
|
print(f'[services.auth] got user_id: {user_id}')
|
||||||
return user_id
|
return user_id
|
||||||
|
|
Loading…
Reference in New Issue
Block a user