Showing
5 changed files
with
67 additions
and
0 deletions
routers/_decorators.py
0 → 100644
| 1 | +from functools import wraps | ||
| 2 | + | ||
| 3 | +from fastapi import HTTPException | ||
| 4 | +from sqlalchemy.exc import NoResultFound | ||
| 5 | + | ||
| 6 | + | ||
| 7 | +def not_found(fn): | ||
| 8 | + @wraps(fn) | ||
| 9 | + def wrapper(*args, **kwargs): | ||
| 10 | + try: | ||
| 11 | + value = fn(*args, **kwargs) | ||
| 12 | + except NoResultFound as exc: | ||
| 13 | + raise HTTPException(status_code=404, detail='Not found') from exc | ||
| 14 | + | ||
| 15 | + if value is None: | ||
| 16 | + raise HTTPException(status_code=404, detail='Not found') | ||
| 17 | + | ||
| 18 | + if isinstance(value, (list, dict)) and not value: | ||
| 19 | + raise HTTPException(status_code=404, detail='Not found') | ||
| 20 | + | ||
| 21 | + return value | ||
| 22 | + | ||
| 23 | + return wrapper |
| ... | @@ -7,6 +7,7 @@ from sqlalchemy.orm import Session | ... | @@ -7,6 +7,7 @@ from sqlalchemy.orm import Session |
| 7 | from sqlalchemy import and_, or_, select | 7 | from sqlalchemy import and_, or_, select |
| 8 | 8 | ||
| 9 | from presupuestov1 import model, schema, constant, schemas, models, search | 9 | from presupuestov1 import model, schema, constant, schemas, models, search |
| 10 | +from presupuestov1.routers._decorators import not_found | ||
| 10 | 11 | ||
| 11 | 12 | ||
| 12 | router_objeto = APIRouter( | 13 | router_objeto = APIRouter( |
| ... | @@ -31,21 +32,25 @@ router_finfun = APIRouter( | ... | @@ -31,21 +32,25 @@ router_finfun = APIRouter( |
| 31 | ############################################################################### | 32 | ############################################################################### |
| 32 | 33 | ||
| 33 | @router_objeto.get('/clasificador', response_model=List[schemas.classifier.ClasObjetos]) | 34 | @router_objeto.get('/clasificador', response_model=List[schemas.classifier.ClasObjetos]) |
| 35 | +@not_found | ||
| 34 | def fetch_object_classifier(db: Session = Depends(model.get_db)): | 36 | def fetch_object_classifier(db: Session = Depends(model.get_db)): |
| 35 | return _fetch_classifier('objeto', db) | 37 | return _fetch_classifier('objeto', db) |
| 36 | 38 | ||
| 37 | 39 | ||
| 38 | @router_acteco.get('/clasificador', response_model=List[schemas.classifier.ClasActeco]) | 40 | @router_acteco.get('/clasificador', response_model=List[schemas.classifier.ClasActeco]) |
| 41 | +@not_found | ||
| 39 | def fetch_object_classifier(db: Session = Depends(model.get_db)): | 42 | def fetch_object_classifier(db: Session = Depends(model.get_db)): |
| 40 | return _fetch_classifier('acteco', db) | 43 | return _fetch_classifier('acteco', db) |
| 41 | 44 | ||
| 42 | 45 | ||
| 43 | @router_finfun.get('/clasificador', response_model=List[schemas.classifier.ClasFinfun]) | 46 | @router_finfun.get('/clasificador', response_model=List[schemas.classifier.ClasFinfun]) |
| 47 | +@not_found | ||
| 44 | def fetch_object_classifier(db: Session = Depends(model.get_db)): | 48 | def fetch_object_classifier(db: Session = Depends(model.get_db)): |
| 45 | return _fetch_classifier('finfun', db) | 49 | return _fetch_classifier('finfun', db) |
| 46 | 50 | ||
| 47 | 51 | ||
| 48 | @router_objeto.get('/{object_id}', response_model=schemas.objeto.ClasObjetosEstados) | 52 | @router_objeto.get('/{object_id}', response_model=schemas.objeto.ClasObjetosEstados) |
| 53 | +@not_found | ||
| 49 | def fetch_objeto_estado( | 54 | def fetch_objeto_estado( |
| 50 | object_id: str, | 55 | object_id: str, |
| 51 | db: Session = Depends(model.get_db), | 56 | db: Session = Depends(model.get_db), |
| ... | @@ -65,6 +70,7 @@ def fetch_objeto_estado( | ... | @@ -65,6 +70,7 @@ def fetch_objeto_estado( |
| 65 | 70 | ||
| 66 | 71 | ||
| 67 | @router_objeto.get('/{object_id}/entidades', response_model=List[schemas.objeto.ObjetoEntidad]) | 72 | @router_objeto.get('/{object_id}/entidades', response_model=List[schemas.objeto.ObjetoEntidad]) |
| 73 | +@not_found | ||
| 68 | def fetch_objeto_entidad( | 74 | def fetch_objeto_entidad( |
| 69 | object_id: str, | 75 | object_id: str, |
| 70 | db: Session = Depends(model.get_db), | 76 | db: Session = Depends(model.get_db), |
| ... | @@ -82,6 +88,7 @@ def fetch_objeto_entidad( | ... | @@ -82,6 +88,7 @@ def fetch_objeto_entidad( |
| 82 | 88 | ||
| 83 | 89 | ||
| 84 | @router_objeto.get('/{object_id}/ubigeos', response_model=List[schemas.objeto.ObjetoUbigeo]) | 90 | @router_objeto.get('/{object_id}/ubigeos', response_model=List[schemas.objeto.ObjetoUbigeo]) |
| 91 | +@not_found | ||
| 85 | def fetch_objeto_ubigeo( | 92 | def fetch_objeto_ubigeo( |
| 86 | object_id: str, | 93 | object_id: str, |
| 87 | db: Session = Depends(model.get_db), | 94 | db: Session = Depends(model.get_db), |
| ... | @@ -97,6 +104,7 @@ def fetch_objeto_ubigeo( | ... | @@ -97,6 +104,7 @@ def fetch_objeto_ubigeo( |
| 97 | 104 | ||
| 98 | 105 | ||
| 99 | @router_objeto.get('/{object_id}/entidades/map', response_model=List[schemas.treemap.TreemapObjetoSingle]) | 106 | @router_objeto.get('/{object_id}/entidades/map', response_model=List[schemas.treemap.TreemapObjetoSingle]) |
| 107 | +@not_found | ||
| 100 | def fetch_objeto_treemap( | 108 | def fetch_objeto_treemap( |
| 101 | object_id: str, | 109 | object_id: str, |
| 102 | db: Session = Depends(model.get_db), | 110 | db: Session = Depends(model.get_db), |
| ... | @@ -110,6 +118,7 @@ def fetch_objeto_treemap( | ... | @@ -110,6 +118,7 @@ def fetch_objeto_treemap( |
| 110 | ) | 118 | ) |
| 111 | 119 | ||
| 112 | @router_objeto.get('/{object_id}/entidades/{entidad_id}', response_model=List[schemas.objeto.ObjetoEntidad]) | 120 | @router_objeto.get('/{object_id}/entidades/{entidad_id}', response_model=List[schemas.objeto.ObjetoEntidad]) |
| 121 | +@not_found | ||
| 113 | def fetch_objeto_entidad_single( | 122 | def fetch_objeto_entidad_single( |
| 114 | object_id: str, | 123 | object_id: str, |
| 115 | entidad_id: int, | 124 | entidad_id: int, |
| ... | @@ -125,6 +134,7 @@ def fetch_objeto_entidad_single( | ... | @@ -125,6 +134,7 @@ def fetch_objeto_entidad_single( |
| 125 | 134 | ||
| 126 | 135 | ||
| 127 | @router_objeto.get('/{object_id}/ubigeos/{ubigeo_id}', response_model=List[schemas.objeto.ObjetoUbigeo]) | 136 | @router_objeto.get('/{object_id}/ubigeos/{ubigeo_id}', response_model=List[schemas.objeto.ObjetoUbigeo]) |
| 137 | +@not_found | ||
| 128 | def fetch_objeto_ubigeo_single( | 138 | def fetch_objeto_ubigeo_single( |
| 129 | object_id: str, | 139 | object_id: str, |
| 130 | ubigeo_id: str, | 140 | ubigeo_id: str, |
| ... | @@ -140,6 +150,7 @@ def fetch_objeto_ubigeo_single( | ... | @@ -140,6 +150,7 @@ def fetch_objeto_ubigeo_single( |
| 140 | 150 | ||
| 141 | 151 | ||
| 142 | @router_acteco.get('/{acteco_id}', response_model=schemas.acteco.ClasActecoEstados) | 152 | @router_acteco.get('/{acteco_id}', response_model=schemas.acteco.ClasActecoEstados) |
| 153 | +@not_found | ||
| 143 | def fetch_acteco_estado( | 154 | def fetch_acteco_estado( |
| 144 | acteco_id: str, | 155 | acteco_id: str, |
| 145 | db: Session = Depends(model.get_db), | 156 | db: Session = Depends(model.get_db), |
| ... | @@ -159,6 +170,7 @@ def fetch_acteco_estado( | ... | @@ -159,6 +170,7 @@ def fetch_acteco_estado( |
| 159 | 170 | ||
| 160 | 171 | ||
| 161 | @router_acteco.get('/{acteco_id}/entidades', response_model=List[schemas.acteco.ActecoEntidad]) | 172 | @router_acteco.get('/{acteco_id}/entidades', response_model=List[schemas.acteco.ActecoEntidad]) |
| 173 | +@not_found | ||
| 162 | def fetch_acteco_entidad( | 174 | def fetch_acteco_entidad( |
| 163 | acteco_id: str, | 175 | acteco_id: str, |
| 164 | db: Session = Depends(model.get_db), | 176 | db: Session = Depends(model.get_db), |
| ... | @@ -176,6 +188,7 @@ def fetch_acteco_entidad( | ... | @@ -176,6 +188,7 @@ def fetch_acteco_entidad( |
| 176 | 188 | ||
| 177 | 189 | ||
| 178 | @router_acteco.get('/{acteco_id}/ubigeos', response_model=List[schemas.acteco.ActecoUbigeo]) | 190 | @router_acteco.get('/{acteco_id}/ubigeos', response_model=List[schemas.acteco.ActecoUbigeo]) |
| 191 | +@not_found | ||
| 179 | def fetch_acteco_ubigeo( | 192 | def fetch_acteco_ubigeo( |
| 180 | acteco_id: str, | 193 | acteco_id: str, |
| 181 | db: Session = Depends(model.get_db), | 194 | db: Session = Depends(model.get_db), |
| ... | @@ -191,6 +204,7 @@ def fetch_acteco_ubigeo( | ... | @@ -191,6 +204,7 @@ def fetch_acteco_ubigeo( |
| 191 | 204 | ||
| 192 | 205 | ||
| 193 | @router_acteco.get('/{acteco_id}/entidades/map', response_model=List[schemas.treemap.TreemapActecoSingle]) | 206 | @router_acteco.get('/{acteco_id}/entidades/map', response_model=List[schemas.treemap.TreemapActecoSingle]) |
| 207 | +@not_found | ||
| 194 | def fetch_acteco_treemap( | 208 | def fetch_acteco_treemap( |
| 195 | acteco_id: str, | 209 | acteco_id: str, |
| 196 | db: Session = Depends(model.get_db), | 210 | db: Session = Depends(model.get_db), |
| ... | @@ -205,6 +219,7 @@ def fetch_acteco_treemap( | ... | @@ -205,6 +219,7 @@ def fetch_acteco_treemap( |
| 205 | 219 | ||
| 206 | 220 | ||
| 207 | @router_acteco.get('/{acteco_id}/entidades/{entidad_id}', response_model=List[schemas.acteco.ActecoEntidad]) | 221 | @router_acteco.get('/{acteco_id}/entidades/{entidad_id}', response_model=List[schemas.acteco.ActecoEntidad]) |
| 222 | +@not_found | ||
| 208 | def fetch_acteco_entidad_single( | 223 | def fetch_acteco_entidad_single( |
| 209 | acteco_id: str, | 224 | acteco_id: str, |
| 210 | entidad_id: int, | 225 | entidad_id: int, |
| ... | @@ -220,6 +235,7 @@ def fetch_acteco_entidad_single( | ... | @@ -220,6 +235,7 @@ def fetch_acteco_entidad_single( |
| 220 | 235 | ||
| 221 | 236 | ||
| 222 | @router_acteco.get('/{acteco_id}/ubigeos/{ubigeo_id}', response_model=List[schemas.acteco.ActecoUbigeo]) | 237 | @router_acteco.get('/{acteco_id}/ubigeos/{ubigeo_id}', response_model=List[schemas.acteco.ActecoUbigeo]) |
| 238 | +@not_found | ||
| 223 | def fetch_acteco_ubigeo_single( | 239 | def fetch_acteco_ubigeo_single( |
| 224 | acteco_id: str, | 240 | acteco_id: str, |
| 225 | ubigeo_id: str, | 241 | ubigeo_id: str, |
| ... | @@ -235,6 +251,7 @@ def fetch_acteco_ubigeo_single( | ... | @@ -235,6 +251,7 @@ def fetch_acteco_ubigeo_single( |
| 235 | 251 | ||
| 236 | 252 | ||
| 237 | @router_finfun.get('/{finfun_id}', response_model=schemas.finfun.ClasFinfunEstados) | 253 | @router_finfun.get('/{finfun_id}', response_model=schemas.finfun.ClasFinfunEstados) |
| 254 | +@not_found | ||
| 238 | def fetch_finfun_estado( | 255 | def fetch_finfun_estado( |
| 239 | finfun_id: str, | 256 | finfun_id: str, |
| 240 | db: Session = Depends(model.get_db), | 257 | db: Session = Depends(model.get_db), |
| ... | @@ -254,6 +271,7 @@ def fetch_finfun_estado( | ... | @@ -254,6 +271,7 @@ def fetch_finfun_estado( |
| 254 | 271 | ||
| 255 | 272 | ||
| 256 | @router_finfun.get('/{finfun_id}/entidades', response_model=List[schemas.finfun.FinfunEntidad]) | 273 | @router_finfun.get('/{finfun_id}/entidades', response_model=List[schemas.finfun.FinfunEntidad]) |
| 274 | +@not_found | ||
| 257 | def fetch_finfun_entidad( | 275 | def fetch_finfun_entidad( |
| 258 | finfun_id: str, | 276 | finfun_id: str, |
| 259 | db: Session = Depends(model.get_db), | 277 | db: Session = Depends(model.get_db), |
| ... | @@ -271,6 +289,7 @@ def fetch_finfun_entidad( | ... | @@ -271,6 +289,7 @@ def fetch_finfun_entidad( |
| 271 | 289 | ||
| 272 | 290 | ||
| 273 | @router_finfun.get('/{finfun_id}/ubigeos', response_model=List[schemas.finfun.FinfunUbigeo]) | 291 | @router_finfun.get('/{finfun_id}/ubigeos', response_model=List[schemas.finfun.FinfunUbigeo]) |
| 292 | +@not_found | ||
| 274 | def fetch_finfun_ubigeo( | 293 | def fetch_finfun_ubigeo( |
| 275 | finfun_id: str, | 294 | finfun_id: str, |
| 276 | db: Session = Depends(model.get_db), | 295 | db: Session = Depends(model.get_db), |
| ... | @@ -286,6 +305,7 @@ def fetch_finfun_ubigeo( | ... | @@ -286,6 +305,7 @@ def fetch_finfun_ubigeo( |
| 286 | 305 | ||
| 287 | 306 | ||
| 288 | @router_finfun.get('/{finfun_id}/entidades/map', response_model=List[schemas.treemap.TreemapFinFunSingle]) | 307 | @router_finfun.get('/{finfun_id}/entidades/map', response_model=List[schemas.treemap.TreemapFinFunSingle]) |
| 308 | +@not_found | ||
| 289 | def fetch_finfun_treemap( | 309 | def fetch_finfun_treemap( |
| 290 | finfun_id: str, | 310 | finfun_id: str, |
| 291 | db: Session = Depends(model.get_db), | 311 | db: Session = Depends(model.get_db), |
| ... | @@ -300,6 +320,7 @@ def fetch_finfun_treemap( | ... | @@ -300,6 +320,7 @@ def fetch_finfun_treemap( |
| 300 | 320 | ||
| 301 | 321 | ||
| 302 | @router_finfun.get('/{finfun_id}/entidades/{entidad_id}', response_model=List[schemas.finfun.FinfunEntidad]) | 322 | @router_finfun.get('/{finfun_id}/entidades/{entidad_id}', response_model=List[schemas.finfun.FinfunEntidad]) |
| 323 | +@not_found | ||
| 303 | def fetch_finfun_entidad_single( | 324 | def fetch_finfun_entidad_single( |
| 304 | finfun_id: str, | 325 | finfun_id: str, |
| 305 | entidad_id: int, | 326 | entidad_id: int, |
| ... | @@ -315,6 +336,7 @@ def fetch_finfun_entidad_single( | ... | @@ -315,6 +336,7 @@ def fetch_finfun_entidad_single( |
| 315 | 336 | ||
| 316 | 337 | ||
| 317 | @router_finfun.get('/{finfun_id}/ubigeos/{ubigeo_id}', response_model=List[schemas.finfun.FinfunUbigeo]) | 338 | @router_finfun.get('/{finfun_id}/ubigeos/{ubigeo_id}', response_model=List[schemas.finfun.FinfunUbigeo]) |
| 339 | +@not_found | ||
| 318 | def fetch_finfun_ubigeo_single( | 340 | def fetch_finfun_ubigeo_single( |
| 319 | finfun_id: str, | 341 | finfun_id: str, |
| 320 | ubigeo_id: str, | 342 | ubigeo_id: str, | ... | ... |
| ... | @@ -5,6 +5,7 @@ from sqlalchemy.orm import Session | ... | @@ -5,6 +5,7 @@ from sqlalchemy.orm import Session |
| 5 | from sqlalchemy import select | 5 | from sqlalchemy import select |
| 6 | 6 | ||
| 7 | from presupuestov1 import model, schema, schemas, models | 7 | from presupuestov1 import model, schema, schemas, models |
| 8 | +from presupuestov1.routers._decorators import not_found | ||
| 8 | 9 | ||
| 9 | 10 | ||
| 10 | router_rubro = APIRouter( | 11 | router_rubro = APIRouter( |
| ... | @@ -23,16 +24,19 @@ router_organismo = APIRouter( | ... | @@ -23,16 +24,19 @@ router_organismo = APIRouter( |
| 23 | ############################################################################### | 24 | ############################################################################### |
| 24 | 25 | ||
| 25 | @router_rubro.get('/clasificador', response_model=List[schemas.classifier.ClasRubros]) | 26 | @router_rubro.get('/clasificador', response_model=List[schemas.classifier.ClasRubros]) |
| 27 | +@not_found | ||
| 26 | def fetch_rubro_classifier(db: Session = Depends(model.get_db)): | 28 | def fetch_rubro_classifier(db: Session = Depends(model.get_db)): |
| 27 | return _fetch_classifier('rubro', db) | 29 | return _fetch_classifier('rubro', db) |
| 28 | 30 | ||
| 29 | 31 | ||
| 30 | @router_organismo.get('/clasificador', response_model=List[schemas.classifier.ClasOrganismos]) | 32 | @router_organismo.get('/clasificador', response_model=List[schemas.classifier.ClasOrganismos]) |
| 33 | +@not_found | ||
| 31 | def fetch_organismo_classifier(db: Session = Depends(model.get_db)): | 34 | def fetch_organismo_classifier(db: Session = Depends(model.get_db)): |
| 32 | return _fetch_classifier('organismo', db) | 35 | return _fetch_classifier('organismo', db) |
| 33 | 36 | ||
| 34 | 37 | ||
| 35 | @router_rubro.get('/{rubro_id}', response_model=schemas.rubro.ClasRubrosEstados) | 38 | @router_rubro.get('/{rubro_id}', response_model=schemas.rubro.ClasRubrosEstados) |
| 39 | +@not_found | ||
| 36 | def fetch_rubro_estado( | 40 | def fetch_rubro_estado( |
| 37 | rubro_id: str, | 41 | rubro_id: str, |
| 38 | db: Session = Depends(model.get_db), | 42 | db: Session = Depends(model.get_db), |
| ... | @@ -52,6 +56,7 @@ def fetch_rubro_estado( | ... | @@ -52,6 +56,7 @@ def fetch_rubro_estado( |
| 52 | 56 | ||
| 53 | 57 | ||
| 54 | @router_rubro.get('/{rubro_id}/entidades', response_model=List[schemas.rubro.RubroEntidad]) | 58 | @router_rubro.get('/{rubro_id}/entidades', response_model=List[schemas.rubro.RubroEntidad]) |
| 59 | +@not_found | ||
| 55 | def fetch_rubro_entidad( | 60 | def fetch_rubro_entidad( |
| 56 | rubro_id: str, | 61 | rubro_id: str, |
| 57 | db: Session = Depends(model.get_db), | 62 | db: Session = Depends(model.get_db), |
| ... | @@ -69,6 +74,7 @@ def fetch_rubro_entidad( | ... | @@ -69,6 +74,7 @@ def fetch_rubro_entidad( |
| 69 | 74 | ||
| 70 | 75 | ||
| 71 | @router_rubro.get('/{rubro_id}/entidades/map', response_model=List[schemas.treemap.TreemapRubroSingle]) | 76 | @router_rubro.get('/{rubro_id}/entidades/map', response_model=List[schemas.treemap.TreemapRubroSingle]) |
| 77 | +@not_found | ||
| 72 | def fetch_rubro_treemap( | 78 | def fetch_rubro_treemap( |
| 73 | rubro_id: str, | 79 | rubro_id: str, |
| 74 | db: Session = Depends(model.get_db), | 80 | db: Session = Depends(model.get_db), |
| ... | @@ -84,6 +90,7 @@ def fetch_rubro_treemap( | ... | @@ -84,6 +90,7 @@ def fetch_rubro_treemap( |
| 84 | 90 | ||
| 85 | 91 | ||
| 86 | @router_rubro.get('/{rubro_id}/entidades/{entidad_id}', response_model=List[schemas.rubro.RubroEntidad]) | 92 | @router_rubro.get('/{rubro_id}/entidades/{entidad_id}', response_model=List[schemas.rubro.RubroEntidad]) |
| 93 | +@not_found | ||
| 87 | def fetch_rubro_entidad_single( | 94 | def fetch_rubro_entidad_single( |
| 88 | rubro_id: str, | 95 | rubro_id: str, |
| 89 | entidad_id: int, | 96 | entidad_id: int, |
| ... | @@ -99,6 +106,7 @@ def fetch_rubro_entidad_single( | ... | @@ -99,6 +106,7 @@ def fetch_rubro_entidad_single( |
| 99 | 106 | ||
| 100 | 107 | ||
| 101 | @router_organismo.get('/{organismo_id}', response_model=schemas.organismo.ClasOrganismosEstados) | 108 | @router_organismo.get('/{organismo_id}', response_model=schemas.organismo.ClasOrganismosEstados) |
| 109 | +@not_found | ||
| 102 | def fetch_organismo_estado( | 110 | def fetch_organismo_estado( |
| 103 | organismo_id: str, | 111 | organismo_id: str, |
| 104 | db: Session = Depends(model.get_db), | 112 | db: Session = Depends(model.get_db), |
| ... | @@ -118,6 +126,7 @@ def fetch_organismo_estado( | ... | @@ -118,6 +126,7 @@ def fetch_organismo_estado( |
| 118 | 126 | ||
| 119 | 127 | ||
| 120 | @router_organismo.get('/{organismo_id}/entidades', response_model=List[schemas.organismo.OrganismoEntidad]) | 128 | @router_organismo.get('/{organismo_id}/entidades', response_model=List[schemas.organismo.OrganismoEntidad]) |
| 129 | +@not_found | ||
| 121 | def fetch_organismo_entidad( | 130 | def fetch_organismo_entidad( |
| 122 | organismo_id: str, | 131 | organismo_id: str, |
| 123 | db: Session = Depends(model.get_db), | 132 | db: Session = Depends(model.get_db), |
| ... | @@ -135,6 +144,7 @@ def fetch_organismo_entidad( | ... | @@ -135,6 +144,7 @@ def fetch_organismo_entidad( |
| 135 | 144 | ||
| 136 | 145 | ||
| 137 | @router_organismo.get('/{organismo_id}/entidades/{entidad_id}', response_model=List[schemas.organismo.OrganismoEntidad]) | 146 | @router_organismo.get('/{organismo_id}/entidades/{entidad_id}', response_model=List[schemas.organismo.OrganismoEntidad]) |
| 147 | +@not_found | ||
| 138 | def fetch_organismo_entidad_single( | 148 | def fetch_organismo_entidad_single( |
| 139 | organismo_id: str, | 149 | organismo_id: str, |
| 140 | entidad_id: int, | 150 | entidad_id: int, | ... | ... |
| ... | @@ -5,6 +5,7 @@ from sqlalchemy.orm import Session, aliased | ... | @@ -5,6 +5,7 @@ from sqlalchemy.orm import Session, aliased |
| 5 | from sqlalchemy import func | 5 | from sqlalchemy import func |
| 6 | 6 | ||
| 7 | from presupuestov1 import model, schema, schemas, models | 7 | from presupuestov1 import model, schema, schemas, models |
| 8 | +from presupuestov1.routers._decorators import not_found | ||
| 8 | 9 | ||
| 9 | 10 | ||
| 10 | router = APIRouter( | 11 | router = APIRouter( |
| ... | @@ -18,6 +19,7 @@ router = APIRouter( | ... | @@ -18,6 +19,7 @@ router = APIRouter( |
| 18 | ############################################################################### | 19 | ############################################################################### |
| 19 | 20 | ||
| 20 | @router.get('/status', response_model=schemas.daily.UpdateStatus) | 21 | @router.get('/status', response_model=schemas.daily.UpdateStatus) |
| 22 | +@not_found | ||
| 21 | def fetch_status( | 23 | def fetch_status( |
| 22 | db: Session = Depends(model.get_db), | 24 | db: Session = Depends(model.get_db), |
| 23 | ): | 25 | ): |
| ... | @@ -28,6 +30,7 @@ def fetch_status( | ... | @@ -28,6 +30,7 @@ def fetch_status( |
| 28 | 30 | ||
| 29 | 31 | ||
| 30 | @router.get('/clasificadores', response_model=List[schemas.daily.EjecucionClasificadores]) | 32 | @router.get('/clasificadores', response_model=List[schemas.daily.EjecucionClasificadores]) |
| 33 | +@not_found | ||
| 31 | def fetch_clasificadores( | 34 | def fetch_clasificadores( |
| 32 | db: Session = Depends(model.get_db), | 35 | db: Session = Depends(model.get_db), |
| 33 | query: schema.DailyParams = Depends(), | 36 | query: schema.DailyParams = Depends(), |
| ... | @@ -44,6 +47,7 @@ def fetch_clasificadores( | ... | @@ -44,6 +47,7 @@ def fetch_clasificadores( |
| 44 | 47 | ||
| 45 | 48 | ||
| 46 | @router.get('/entidades', response_model=List[schemas.daily.EjecucionEntidades]) | 49 | @router.get('/entidades', response_model=List[schemas.daily.EjecucionEntidades]) |
| 50 | +@not_found | ||
| 47 | def fetch_entidades( | 51 | def fetch_entidades( |
| 48 | db: Session = Depends(model.get_db), | 52 | db: Session = Depends(model.get_db), |
| 49 | query: schema.DailyParams = Depends(), | 53 | query: schema.DailyParams = Depends(), |
| ... | @@ -67,6 +71,7 @@ def fetch_entidades( | ... | @@ -67,6 +71,7 @@ def fetch_entidades( |
| 67 | 71 | ||
| 68 | 72 | ||
| 69 | @router.get('/timeline', response_model=List[schemas.daily.Timeline]) | 73 | @router.get('/timeline', response_model=List[schemas.daily.Timeline]) |
| 74 | +@not_found | ||
| 70 | def fetch_timeline( | 75 | def fetch_timeline( |
| 71 | db: Session = Depends(model.get_db), | 76 | db: Session = Depends(model.get_db), |
| 72 | query: schema.DailyParams = Depends(), | 77 | query: schema.DailyParams = Depends(), |
| ... | @@ -115,6 +120,7 @@ def fetch_timeline( | ... | @@ -115,6 +120,7 @@ def fetch_timeline( |
| 115 | 120 | ||
| 116 | 121 | ||
| 117 | @router.get('/timeseries', response_model=List[schemas.daily.TimeSeries]) | 122 | @router.get('/timeseries', response_model=List[schemas.daily.TimeSeries]) |
| 123 | +@not_found | ||
| 118 | def fetch_timeseries( | 124 | def fetch_timeseries( |
| 119 | db: Session = Depends(model.get_db), | 125 | db: Session = Depends(model.get_db), |
| 120 | ): | 126 | ): | ... | ... |
| ... | @@ -7,6 +7,7 @@ from sqlalchemy.orm import Session | ... | @@ -7,6 +7,7 @@ from sqlalchemy.orm import Session |
| 7 | from sqlalchemy import and_, or_, select | 7 | from sqlalchemy import and_, or_, select |
| 8 | 8 | ||
| 9 | from presupuestov1 import model, schema, constant, schemas, models, search | 9 | from presupuestov1 import model, schema, constant, schemas, models, search |
| 10 | +from presupuestov1.routers._decorators import not_found | ||
| 10 | 11 | ||
| 11 | 12 | ||
| 12 | router_entidad = APIRouter( | 13 | router_entidad = APIRouter( |
| ... | @@ -30,6 +31,7 @@ router_da = APIRouter( | ... | @@ -30,6 +31,7 @@ router_da = APIRouter( |
| 30 | # clas | 31 | # clas |
| 31 | 32 | ||
| 32 | @router_entidad.get('/clasificador', response_model=List[schemas.classifier.ClasInstitucional]) | 33 | @router_entidad.get('/clasificador', response_model=List[schemas.classifier.ClasInstitucional]) |
| 34 | +@not_found | ||
| 33 | def fetch_classifier( | 35 | def fetch_classifier( |
| 34 | db: Session = Depends(model.get_db), | 36 | db: Session = Depends(model.get_db), |
| 35 | ): | 37 | ): |
| ... | @@ -37,6 +39,7 @@ def fetch_classifier( | ... | @@ -37,6 +39,7 @@ def fetch_classifier( |
| 37 | 39 | ||
| 38 | 40 | ||
| 39 | @router_ubigeo.get('/clasificador', response_model=List[schemas.classifier.ClasGeografico]) | 41 | @router_ubigeo.get('/clasificador', response_model=List[schemas.classifier.ClasGeografico]) |
| 42 | +@not_found | ||
| 40 | def fetch_classifier( | 43 | def fetch_classifier( |
| 41 | db: Session = Depends(model.get_db), | 44 | db: Session = Depends(model.get_db), |
| 42 | ): | 45 | ): |
| ... | @@ -47,6 +50,7 @@ def fetch_classifier( | ... | @@ -47,6 +50,7 @@ def fetch_classifier( |
| 47 | # base | 50 | # base |
| 48 | 51 | ||
| 49 | @router_entidad.get('/{entity_id:str}', response_model=schemas.entity.ClasInstitucionalIngresosGastos) | 52 | @router_entidad.get('/{entity_id:str}', response_model=schemas.entity.ClasInstitucionalIngresosGastos) |
| 53 | +@not_found | ||
| 50 | def fetch_entity( | 54 | def fetch_entity( |
| 51 | entity_id: str, | 55 | entity_id: str, |
| 52 | db: Session = Depends(model.get_db), | 56 | db: Session = Depends(model.get_db), |
| ... | @@ -63,6 +67,7 @@ def fetch_entity( | ... | @@ -63,6 +67,7 @@ def fetch_entity( |
| 63 | 67 | ||
| 64 | 68 | ||
| 65 | @router_ubigeo.get('/{ubigeo_id:str}', response_model=schemas.entity.ClasGeograficoIngresosGastos) | 69 | @router_ubigeo.get('/{ubigeo_id:str}', response_model=schemas.entity.ClasGeograficoIngresosGastos) |
| 70 | +@not_found | ||
| 66 | def fetch_entity( | 71 | def fetch_entity( |
| 67 | ubigeo_id: str, | 72 | ubigeo_id: str, |
| 68 | db: Session = Depends(model.get_db), | 73 | db: Session = Depends(model.get_db), |
| ... | @@ -156,6 +161,7 @@ def fetch_entity_organismos( | ... | @@ -156,6 +161,7 @@ def fetch_entity_organismos( |
| 156 | # private | 161 | # private |
| 157 | ############################################################################### | 162 | ############################################################################### |
| 158 | 163 | ||
| 164 | +@not_found | ||
| 159 | def get_distribuciones(db, tipo_codigo, entity_id, dimension, query): | 165 | def get_distribuciones(db, tipo_codigo, entity_id, dimension, query): |
| 160 | EntidadDistribucionesSchema = schemas.entity.EntidadDistribucion | 166 | EntidadDistribucionesSchema = schemas.entity.EntidadDistribucion |
| 161 | EntidadDistribuciones = models.entity.EntidadDistribuciones | 167 | EntidadDistribuciones = models.entity.EntidadDistribuciones | ... | ... |
-
Please register or login to post a comment