Skip to content
Snippets Groups Projects
Select Git revision
  • 094e873ec01830acea8b43a2167bb4c1f8866e52
  • master default
  • renovate/junit-jupiter-engine.version
  • renovate/selenium.version
  • renovate/testcontainer.version
  • demo
  • v1_8_1
  • v2.18.1
  • v2.18.0
  • v2.17.2
  • v2.17.1
  • v2.17.0
  • v2.16.1
  • v2.16.0
  • v2.15.1
  • v2.15.0
  • v2.14.0
  • v2.13.0
  • v2.12.0
  • v2.11.0
  • v2.10.0
  • v2.9.2
  • v2.9.1
  • v2.9.0
  • v2.8.0
  • testPipeline2
  • v2.7.0
27 results

customSelect.js

Blame
  • DeviceRouter.py 1.96 KiB
    from typing import List
    
    from fastapi import APIRouter, HTTPException, Depends
    from sqlalchemy.orm import Session
    
    from Dependencies import get_database
    from logic.databaseNew import Schemas, Crud
    from logic.databaseNew.Schemas import Status
    
    router = APIRouter(
        prefix='/device',
        tags=['device'],
        responses={404: {'description': 'Not found'}},
    )
    
    
    @router.get('/', response_model=List[Schemas.Device],
                summary='Gets all devices')
    async def read_devices(skip: int = 0, limit: int = 100, db: Session = Depends(get_database)):
        return Crud.get_devices(db, skip=skip, limit=limit)
    
    
    @router.get('/{deviceId}', response_model=Schemas.Device,
                summary='Gets a specific device',
                responses={404: {'description': 'Device not found'}})
    async def read_device(deviceId: int, db: Session = Depends(get_database)):
        device = Crud.get_device(db, deviceId=deviceId)
        if device is None:
            raise HTTPException(status_code=404, detail='Device not found')
        return device
    
    
    @router.post('/', response_model=Schemas.Device,
                 summary='Adds a new device',
                 responses={400: {'description': 'Device with this name already exists'}})
    async def create_user(device: Schemas.DeviceCreate, db: Session = Depends(get_database)):
        createdDevice = Crud.get_device_by_name(db, device.name)
        if createdDevice:
            raise HTTPException(status_code=400, detail='Device with this name already exists')
        return Crud.create_device(db=db, device=device)
    
    
    @router.delete('/{deviceId}', response_model=Status,
                   summary='Gets a specific device',
                   responses={404: {'description': 'Device not found'}})
    async def read_device(deviceId: int, db: Session = Depends(get_database)):
        device = Crud.get_device(db, deviceId=deviceId)
        if device is None:
            raise HTTPException(status_code=404, detail='Device not found')
    
        Crud.delete_device(db, device)
        return Status(message=f"Deleted device {device.id}")