companies.py 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. # Pydantic imports
  2. from typing import List
  3. from fastapi import APIRouter, Depends
  4. # Sqlalchemy imports
  5. from sqlalchemy.orm import Session
  6. from starlette.responses import Response
  7. from commands.fincas import update_fincas as command_update_fincas
  8. from cruds.companies import get_companies, get_company_by_id
  9. # My imports
  10. from cruds.fincas import get_fincas_filter_company
  11. from database.sqlalchemy import get_db
  12. from routes.login import get_current_user
  13. from schemas.company import Company as CompanySchema
  14. from schemas.fincas import Finca as FincaSchema
  15. from schemas.users import User as UserSchema
  16. router = APIRouter()
  17. @router.get("/company", response_model=CompanySchema)
  18. async def get_my_company(
  19. db: Session = Depends(get_db),
  20. current_user: UserSchema = Depends(get_current_user),
  21. ) -> Response:
  22. company = get_company_by_id(db, current_user.company_id)
  23. return company
  24. """
  25. No corresponde ya que un usuario no puede acceder a fincas
  26. que no pertenezcan a su organizacion, lo dejo por si mas
  27. adelate hacemos permisos de superusuario o simil
  28. @router.get("/companies", response_model=List[CompanySchema])
  29. async def get_all_companies(
  30. db: Session = Depends(get_db),
  31. current_user: UserSchema = Depends(get_current_user),
  32. ) -> Response:
  33. companies = get_companies(db)
  34. return companies
  35. @router.get("/company/{company_id}", response_model=CompanySchema)
  36. async def get_company(
  37. company_id: int,
  38. db: Session = Depends(get_db),
  39. current_user: UserSchema = Depends(get_current_user),
  40. ) -> Response:
  41. company = get_company_by_id(db, company_id)
  42. return company
  43. @router.get("/company/{company_id}/fincas", response_model=List[FincaSchema])
  44. async def get_company(
  45. company_id: int,
  46. db: Session = Depends(get_db),
  47. current_user: UserSchema = Depends(get_current_user),
  48. ) -> Response:
  49. company = get_fincas_filter_company(db, company_id)
  50. return company
  51. @router.get(
  52. "/company/{company_id}/update-fincas",
  53. )
  54. def update_fincas(
  55. company_id: int,
  56. db: Session = Depends(get_db),
  57. current_user: UserSchema = Depends(get_current_user),
  58. ) -> Response:
  59. return command_update_fincas(company_id)
  60. """