.
This commit is contained in:
		@@ -64,28 +64,19 @@ class JobResponse(BaseModel):
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@router.get("/", response_model=List[JobResponse])
 | 
			
		||||
async def get_jobs(skip: int = 0, limit: int = 100, is_active: bool = True, db: Session = Depends(SessionLocal), request: Request = None):
 | 
			
		||||
    """Get all jobs for the current tenant"""
 | 
			
		||||
    tenant_id = getattr(request.state, 'tenant_id', None)
 | 
			
		||||
    if not tenant_id and settings.MULTI_TENANT_ENABLED:
 | 
			
		||||
        raise HTTPException(status_code=400, detail="Tenant ID is required")
 | 
			
		||||
    
 | 
			
		||||
    query = db.query(JobPosting).filter(JobPosting.tenant_id == tenant_id)
 | 
			
		||||
async def get_jobs(skip: int = 0, limit: int = 100, is_active: bool = True, db: Session = Depends(SessionLocal)):
 | 
			
		||||
    """Get all jobs"""
 | 
			
		||||
    query = db.query(JobPosting)
 | 
			
		||||
    if is_active is not None:
 | 
			
		||||
        query = query.filter(JobPosting.is_active == is_active)
 | 
			
		||||
    jobs = query.offset(skip).limit(limit).all()
 | 
			
		||||
    return jobs
 | 
			
		||||
 | 
			
		||||
@router.get("/{job_id}", response_model=JobResponse)
 | 
			
		||||
async def get_job(job_id: int, db: Session = Depends(SessionLocal), request: Request = None):
 | 
			
		||||
async def get_job(job_id: int, db: Session = Depends(SessionLocal)):
 | 
			
		||||
    """Get a specific job"""
 | 
			
		||||
    tenant_id = getattr(request.state, 'tenant_id', None)
 | 
			
		||||
    if not tenant_id and settings.MULTI_TENANT_ENABLED:
 | 
			
		||||
        raise HTTPException(status_code=400, detail="Tenant ID is required")
 | 
			
		||||
    
 | 
			
		||||
    job = db.query(JobPosting).filter(
 | 
			
		||||
        JobPosting.id == job_id,
 | 
			
		||||
        JobPosting.tenant_id == tenant_id  # Ensure job belongs to current tenant
 | 
			
		||||
    ).first()
 | 
			
		||||
    if not job:
 | 
			
		||||
        raise HTTPException(status_code=404, detail="Job not found")
 | 
			
		||||
@@ -94,16 +85,14 @@ async def get_job(job_id: int, db: Session = Depends(SessionLocal), request: Req
 | 
			
		||||
    return job
 | 
			
		||||
 | 
			
		||||
@router.post("/", response_model=JobResponse)
 | 
			
		||||
async def create_job(job: JobCreate, db: Session = Depends(SessionLocal), request: Request = None, user_id: int = 1):  # In real app, get from auth context
 | 
			
		||||
async def create_job(job: JobCreate, db: Session = Depends(SessionLocal), user_id: int = 1):  # Default for testing
 | 
			
		||||
    """Create a new job posting"""
 | 
			
		||||
    tenant_id = getattr(request.state, 'tenant_id', None)
 | 
			
		||||
    if not tenant_id and settings.MULTI_TENANT_ENABLED:
 | 
			
		||||
        raise HTTPException(status_code=400, detail="Tenant ID is required")
 | 
			
		||||
    # For testing, use default tenant
 | 
			
		||||
    tenant_id = 1  # Default tenant for testing
 | 
			
		||||
    
 | 
			
		||||
    # Verify user exists and has permission to create job postings
 | 
			
		||||
    user = db.query(User).filter(
 | 
			
		||||
        User.id == user_id,
 | 
			
		||||
        User.tenant_id == tenant_id  # Ensure user belongs to current tenant
 | 
			
		||||
        User.id == user_id
 | 
			
		||||
    ).first()
 | 
			
		||||
    if not user or user.role not in ["job_provider", "admin"]:
 | 
			
		||||
        raise HTTPException(
 | 
			
		||||
@@ -119,7 +108,7 @@ async def create_job(job: JobCreate, db: Session = Depends(SessionLocal), reques
 | 
			
		||||
        salary_min=job.salary_min,
 | 
			
		||||
        salary_max=job.salary_max,
 | 
			
		||||
        is_remote=job.is_remote,
 | 
			
		||||
        tenant_id=tenant_id,  # Use current tenant
 | 
			
		||||
        tenant_id=tenant_id,  # Use default tenant
 | 
			
		||||
        created_by_user_id=user_id
 | 
			
		||||
    )
 | 
			
		||||
    db.add(db_job)
 | 
			
		||||
@@ -128,15 +117,10 @@ async def create_job(job: JobCreate, db: Session = Depends(SessionLocal), reques
 | 
			
		||||
    return db_job
 | 
			
		||||
 | 
			
		||||
@router.put("/{job_id}", response_model=JobResponse)
 | 
			
		||||
async def update_job(job_id: int, job_update: JobUpdate, db: Session = Depends(SessionLocal), request: Request = None):
 | 
			
		||||
async def update_job(job_id: int, job_update: JobUpdate, db: Session = Depends(SessionLocal)):
 | 
			
		||||
    """Update a job posting"""
 | 
			
		||||
    tenant_id = getattr(request.state, 'tenant_id', None)
 | 
			
		||||
    if not tenant_id and settings.MULTI_TENANT_ENABLED:
 | 
			
		||||
        raise HTTPException(status_code=400, detail="Tenant ID is required")
 | 
			
		||||
    
 | 
			
		||||
    db_job = db.query(JobPosting).filter(
 | 
			
		||||
        JobPosting.id == job_id,
 | 
			
		||||
        JobPosting.tenant_id == tenant_id  # Ensure job belongs to current tenant
 | 
			
		||||
    ).first()
 | 
			
		||||
    if not db_job:
 | 
			
		||||
        raise HTTPException(status_code=404, detail="Job not found")
 | 
			
		||||
@@ -150,15 +134,10 @@ async def update_job(job_id: int, job_update: JobUpdate, db: Session = Depends(S
 | 
			
		||||
    return db_job
 | 
			
		||||
 | 
			
		||||
@router.delete("/{job_id}")
 | 
			
		||||
async def delete_job(job_id: int, db: Session = Depends(SessionLocal), request: Request = None):
 | 
			
		||||
async def delete_job(job_id: int, db: Session = Depends(SessionLocal)):
 | 
			
		||||
    """Delete a job posting (soft delete by setting is_active to False)"""
 | 
			
		||||
    tenant_id = getattr(request.state, 'tenant_id', None)
 | 
			
		||||
    if not tenant_id and settings.MULTI_TENANT_ENABLED:
 | 
			
		||||
        raise HTTPException(status_code=400, detail="Tenant ID is required")
 | 
			
		||||
    
 | 
			
		||||
    db_job = db.query(JobPosting).filter(
 | 
			
		||||
        JobPosting.id == job_id,
 | 
			
		||||
        JobPosting.tenant_id == tenant_id  # Ensure job belongs to current tenant
 | 
			
		||||
    ).first()
 | 
			
		||||
    if not db_job:
 | 
			
		||||
        raise HTTPException(status_code=404, detail="Job not found")
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user