feat: slug change + streaming fix + specs
Some checks failed
Deploy Tracker / deploy (push) Failing after 3s
Some checks failed
Deploy Tracker / deploy (push) Failing after 3s
This commit is contained in:
parent
f7622e13d5
commit
e5ce44e438
2
.env.dev
2
.env.dev
@ -1,5 +1,5 @@
|
|||||||
# Dev environment
|
# Dev environment
|
||||||
TRACKER_DATABASE_URL=postgresql+asyncpg://team_board:team_board@postgres:5432/team_board_dev
|
TRACKER_DATABASE_URL=postgresql+asyncpg://team_board:team_board@172.17.0.1:5432/team_board
|
||||||
TRACKER_REDIS_URL=redis://redis:6379/0
|
TRACKER_REDIS_URL=redis://redis:6379/0
|
||||||
TRACKER_ENV=dev
|
TRACKER_ENV=dev
|
||||||
TRACKER_JWT_SECRET=dev-secret-not-for-production
|
TRACKER_JWT_SECRET=dev-secret-not-for-production
|
||||||
|
|||||||
@ -5,29 +5,11 @@ services:
|
|||||||
- "8100:8100"
|
- "8100:8100"
|
||||||
env_file:
|
env_file:
|
||||||
- .env.dev
|
- .env.dev
|
||||||
depends_on:
|
extra_hosts:
|
||||||
postgres:
|
- "host.docker.internal:host-gateway"
|
||||||
condition: service_healthy
|
|
||||||
volumes:
|
volumes:
|
||||||
- ./src:/app/src
|
- ./src:/app/src
|
||||||
- ./data/uploads:/data/uploads
|
- ./data/uploads:/data/uploads
|
||||||
- ./data/projects:/data/projects
|
- ./data/projects:/data/projects
|
||||||
command: uvicorn tracker.app:app --host 0.0.0.0 --port 8100 --reload --reload-dir /app/src
|
command: uvicorn tracker.app:app --host 0.0.0.0 --port 8100 --reload --reload-dir /app/src
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|
||||||
postgres:
|
|
||||||
image: postgres:16-alpine
|
|
||||||
environment:
|
|
||||||
POSTGRES_USER: team_board
|
|
||||||
POSTGRES_PASSWORD: team_board
|
|
||||||
POSTGRES_DB: team_board_dev
|
|
||||||
ports:
|
|
||||||
- "5433:5432"
|
|
||||||
volumes:
|
|
||||||
- ./data/postgres:/var/lib/postgresql/data
|
|
||||||
healthcheck:
|
|
||||||
test: ["CMD-SHELL", "pg_isready -U team_board -d team_board_dev"]
|
|
||||||
interval: 5s
|
|
||||||
timeout: 3s
|
|
||||||
retries: 5
|
|
||||||
restart: unless-stopped
|
|
||||||
|
|||||||
33
docker-compose.yml.bak
Normal file
33
docker-compose.yml.bak
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
services:
|
||||||
|
tracker:
|
||||||
|
build: .
|
||||||
|
ports:
|
||||||
|
- "8100:8100"
|
||||||
|
env_file:
|
||||||
|
- .env.dev
|
||||||
|
depends_on:
|
||||||
|
postgres:
|
||||||
|
condition: service_healthy
|
||||||
|
volumes:
|
||||||
|
- ./src:/app/src
|
||||||
|
- ./data/uploads:/data/uploads
|
||||||
|
- ./data/projects:/data/projects
|
||||||
|
command: uvicorn tracker.app:app --host 0.0.0.0 --port 8100 --reload --reload-dir /app/src
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
postgres:
|
||||||
|
image: postgres:16-alpine
|
||||||
|
environment:
|
||||||
|
POSTGRES_USER: team_board
|
||||||
|
POSTGRES_PASSWORD: team_board
|
||||||
|
POSTGRES_DB: team_board_dev
|
||||||
|
ports:
|
||||||
|
- "5433:5432"
|
||||||
|
volumes:
|
||||||
|
- ./data/postgres:/var/lib/postgresql/data
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD-SHELL", "pg_isready -U team_board -d team_board_dev"]
|
||||||
|
interval: 5s
|
||||||
|
timeout: 3s
|
||||||
|
retries: 5
|
||||||
|
restart: unless-stopped
|
||||||
@ -51,6 +51,7 @@ class MemberCreateResponse(BaseModel):
|
|||||||
|
|
||||||
class MemberUpdate(BaseModel):
|
class MemberUpdate(BaseModel):
|
||||||
name: str | None = None
|
name: str | None = None
|
||||||
|
slug: str | None = None
|
||||||
role: str | None = None
|
role: str | None = None
|
||||||
status: str | None = None
|
status: str | None = None
|
||||||
avatar_url: str | None = None
|
avatar_url: str | None = None
|
||||||
@ -155,6 +156,12 @@ async def update_member(member_id: str, req: MemberUpdate, db: AsyncSession = De
|
|||||||
|
|
||||||
if req.name is not None:
|
if req.name is not None:
|
||||||
member.name = req.name
|
member.name = req.name
|
||||||
|
if req.slug is not None:
|
||||||
|
# Check uniqueness
|
||||||
|
existing = await db.execute(select(Member).where(Member.slug == req.slug, Member.id != member.id))
|
||||||
|
if existing.scalar_one_or_none():
|
||||||
|
raise HTTPException(409, f"Slug '{req.slug}' already taken")
|
||||||
|
member.slug = req.slug
|
||||||
if req.role is not None:
|
if req.role is not None:
|
||||||
member.role = req.role
|
member.role = req.role
|
||||||
if req.status is not None:
|
if req.status is not None:
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user