pr0nstar

ubigeo total

......@@ -385,14 +385,14 @@ def get_header_value(headers, key):
def get_client_ip(headers):
real_ip = get_header_value(headers, b"x-real-ip")
if real_ip:
return real_ip.strip()
forwarded_for = get_header_value(headers, b"x-forwarded-for")
if forwarded_for:
return forwarded_for.split(",", 1)[0].strip()
real_ip = get_header_value(headers, b"x-real-ip")
if real_ip:
return real_ip.strip()
return None
......
......@@ -8,5 +8,6 @@ from . import (
entity,
rubro,
organismo,
ubigeo,
daily,
)
......
from sqlalchemy.orm import Mapped, mapped_column
from presupuestov1.model import Base
from sqlalchemy import (
Integer,
String,
Text,
Numeric,
Index,
MetaData,
)
class ProyectoResumenes(Base):
__tablename__ = "ubigeo_resumenes"
__table_args__ = (
Index("idx_proyecto_resumenes_gestion", "gestion"),
{"schema": "web"},
)
id: Mapped[int] = mapped_column(Integer, primary_key=True, autoincrement=True)
gestion: Mapped[int] = mapped_column(Integer)
ubigeo: Mapped[int] = mapped_column(String(9))
desc_ubigeo: Mapped[str | None] = mapped_column(Text)
desc_departamento: Mapped[str | None] = mapped_column(Text)
monto: Mapped[float | None] = mapped_column(Numeric(30, 15))
per_capita: Mapped[float | None] = mapped_column(Numeric)
ranking: Mapped[int | None] = mapped_column(Integer)
......@@ -64,6 +64,24 @@ def fetch_entidad(
return entidad
@router_ubigeo.get('/todo', response_model=List[schemas.ubigeo.UbigeoResumenes])
@not_found
def fetch_ubigeo_todo(
db: Session = Depends(model.get_db),
query: schema.QueryParams = Depends(),
):
gestion = query.gestion is not None else 0
UbigeoResumenesSchema = schemas.ubigeo.UbigeoResumenes
UbigeoResumenes = model.ubigeo.UbigeoResumenes
schema_fields = UbigeoResumenesSchema.model_fields.keys()
cols = [getattr(UbigeoResumenes, name) for name in schema_fields]
return db.execute(
select(*cols).where(UbigeoResumenes.gestion == gestion)
).mappings().all()
@router_ubigeo.get('/{ubigeo_id:str}', response_model=schemas.entity.ClasGeograficoIngresosGastos)
@not_found
......
from typing import List
from presupuestov1.schema import OrmBaseModel
from presupuestov1 import schemas
class UbigeoResumenes(OrmBaseModel):
gestion: int
ubigeo: str
desc_ubigeo: str
desc_departamento: str
mont: float
per_capita: str
ranking: int
n_entidades: int