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
|
||||
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_ENV=dev
|
||||
TRACKER_JWT_SECRET=dev-secret-not-for-production
|
||||
|
||||
@ -5,29 +5,11 @@ services:
|
||||
- "8100:8100"
|
||||
env_file:
|
||||
- .env.dev
|
||||
depends_on:
|
||||
postgres:
|
||||
condition: service_healthy
|
||||
extra_hosts:
|
||||
- "host.docker.internal:host-gateway"
|
||||
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
|
||||
|
||||
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):
|
||||
name: str | None = None
|
||||
slug: str | None = None
|
||||
role: str | None = None
|
||||
status: 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:
|
||||
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:
|
||||
member.role = req.role
|
||||
if req.status is not None:
|
||||
|
||||
Loading…
Reference in New Issue
Block a user