This commit is contained in:
55
scripts/patch_profiles_repo_service.sh
Executable file
55
scripts/patch_profiles_repo_service.sh
Executable file
@@ -0,0 +1,55 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
REPO="services/profiles/src/app/repositories/profile_repository.py"
|
||||
SRV="services/profiles/src/app/services/profile_service.py"
|
||||
mkdir -p "$(dirname "$REPO")" "$(dirname "$SRV")"
|
||||
|
||||
cat > "$REPO" <<'PY'
|
||||
from typing import Optional
|
||||
from uuid import UUID
|
||||
from sqlalchemy.orm import Session
|
||||
from sqlalchemy import select
|
||||
from app.models.profile import Profile
|
||||
from app.schemas.profile import ProfileCreate
|
||||
|
||||
class ProfileRepository:
|
||||
def __init__(self, db: Session):
|
||||
self.db = db
|
||||
|
||||
def get_by_user(self, user_id: UUID) -> Optional[Profile]:
|
||||
return self.db.execute(select(Profile).where(Profile.user_id == user_id)).scalar_one_or_none()
|
||||
|
||||
def create(self, user_id: UUID, data: ProfileCreate) -> Profile:
|
||||
p = Profile(
|
||||
user_id=user_id,
|
||||
gender=data.gender,
|
||||
city=data.city,
|
||||
languages=list(data.languages or []),
|
||||
interests=list(data.interests or []),
|
||||
)
|
||||
self.db.add(p)
|
||||
self.db.commit()
|
||||
self.db.refresh(p)
|
||||
return p
|
||||
PY
|
||||
|
||||
cat > "$SRV" <<'PY'
|
||||
from uuid import UUID
|
||||
from app.schemas.profile import ProfileCreate
|
||||
from app.repositories.profile_repository import ProfileRepository
|
||||
|
||||
class ProfileService:
|
||||
def __init__(self, repo: ProfileRepository):
|
||||
self.repo = repo
|
||||
|
||||
def get_by_user(self, user_id: UUID):
|
||||
return self.repo.get_by_user(user_id)
|
||||
|
||||
def create(self, user_id: UUID, data: ProfileCreate):
|
||||
return self.repo.create(user_id, data)
|
||||
PY
|
||||
|
||||
echo "[profiles] rebuilding..."
|
||||
docker compose build profiles
|
||||
docker compose restart profiles
|
||||
Reference in New Issue
Block a user