pr0nstar

XII

...@@ -22,6 +22,7 @@ from presupuestov1.routers import ( ...@@ -22,6 +22,7 @@ from presupuestov1.routers import (
22 classifier, 22 classifier,
23 classifier_income, 23 classifier_income,
24 daily, 24 daily,
25 + search,
25 ) 26 )
26 27
27 28
...@@ -46,14 +47,13 @@ app = FastAPI( ...@@ -46,14 +47,13 @@ app = FastAPI(
46 CacheMiddleware, 47 CacheMiddleware,
47 cache=cache.cache, 48 cache=cache.cache,
48 rules=[ 49 rules=[
49 - Rule(match=re.compile(r"^/api/proyecto/.*"), ttl=0), 50 + Rule(match=re.compile(r"^/api/search/.*"), ttl=0),
50 Rule(match=re.compile(r'^/api/.+'), ttl=86400, status=200), 51 Rule(match=re.compile(r'^/api/.+'), ttl=86400, status=200),
51 ], 52 ],
52 ), 53 ),
53 ], 54 ],
54 root_path='/api' 55 root_path='/api'
55 ) 56 )
56 -app.include_router(project.router)
57 app.include_router(entity.router_entidad) 57 app.include_router(entity.router_entidad)
58 app.include_router(entity.router_ubigeo) 58 app.include_router(entity.router_ubigeo)
59 app.include_router(entity.router_da) 59 app.include_router(entity.router_da)
...@@ -62,8 +62,9 @@ app.include_router(classifier.router_acteco) ...@@ -62,8 +62,9 @@ app.include_router(classifier.router_acteco)
62 app.include_router(classifier.router_finfun) 62 app.include_router(classifier.router_finfun)
63 app.include_router(classifier_income.router_rubro) 63 app.include_router(classifier_income.router_rubro)
64 app.include_router(classifier_income.router_organismo) 64 app.include_router(classifier_income.router_organismo)
65 +app.include_router(project.router)
65 app.include_router(daily.router) 66 app.include_router(daily.router)
66 - 67 +app.include_router(search.router)
67 68
68 69
69 # @app.on_event('startup') 70 # @app.on_event('startup')
......
...@@ -32,19 +32,19 @@ router_finfun = APIRouter( ...@@ -32,19 +32,19 @@ router_finfun = APIRouter(
32 32
33 @router_objeto.get('/clasificador', response_model=List[schemas.classifier.ClasObjetos]) 33 @router_objeto.get('/clasificador', response_model=List[schemas.classifier.ClasObjetos])
34 @not_found 34 @not_found
35 -def fetch_object_classifier(db: Session = Depends(model.get_db)): 35 +def fetch_objeto_classifier(db: Session = Depends(model.get_db)):
36 return _fetch_classifier('objeto', db) 36 return _fetch_classifier('objeto', db)
37 37
38 38
39 @router_acteco.get('/clasificador', response_model=List[schemas.classifier.ClasActeco]) 39 @router_acteco.get('/clasificador', response_model=List[schemas.classifier.ClasActeco])
40 @not_found 40 @not_found
41 -def fetch_object_classifier(db: Session = Depends(model.get_db)): 41 +def fetch_acteco_classifier(db: Session = Depends(model.get_db)):
42 return _fetch_classifier('acteco', db) 42 return _fetch_classifier('acteco', db)
43 43
44 44
45 @router_finfun.get('/clasificador', response_model=List[schemas.classifier.ClasFinfun]) 45 @router_finfun.get('/clasificador', response_model=List[schemas.classifier.ClasFinfun])
46 @not_found 46 @not_found
47 -def fetch_object_classifier(db: Session = Depends(model.get_db)): 47 +def fetch_finfun_classifier(db: Session = Depends(model.get_db)):
48 return _fetch_classifier('finfun', db) 48 return _fetch_classifier('finfun', db)
49 49
50 50
......
...@@ -32,7 +32,7 @@ router_da = APIRouter( ...@@ -32,7 +32,7 @@ router_da = APIRouter(
32 32
33 @router_entidad.get('/clasificador', response_model=List[schemas.classifier.ClasInstitucional]) 33 @router_entidad.get('/clasificador', response_model=List[schemas.classifier.ClasInstitucional])
34 @not_found 34 @not_found
35 -def fetch_classifier( 35 +def fetch_entidad_classifier(
36 db: Session = Depends(model.get_db), 36 db: Session = Depends(model.get_db),
37 ): 37 ):
38 return db.query(models.classifier.ClasInstitucional).all() 38 return db.query(models.classifier.ClasInstitucional).all()
...@@ -40,7 +40,7 @@ def fetch_classifier( ...@@ -40,7 +40,7 @@ def fetch_classifier(
40 40
41 @router_ubigeo.get('/clasificador', response_model=List[schemas.classifier.ClasGeografico]) 41 @router_ubigeo.get('/clasificador', response_model=List[schemas.classifier.ClasGeografico])
42 @not_found 42 @not_found
43 -def fetch_classifier( 43 +def fetch_ubigeo_classifier(
44 db: Session = Depends(model.get_db), 44 db: Session = Depends(model.get_db),
45 ): 45 ):
46 return db.query(models.classifier.ClasGeografico).all() 46 return db.query(models.classifier.ClasGeografico).all()
...@@ -51,7 +51,7 @@ def fetch_classifier( ...@@ -51,7 +51,7 @@ def fetch_classifier(
51 51
52 @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 53 @not_found
54 -def fetch_entity( 54 +def fetch_entidad(
55 entity_id: str, 55 entity_id: str,
56 db: Session = Depends(model.get_db), 56 db: Session = Depends(model.get_db),
57 ): 57 ):
...@@ -68,7 +68,7 @@ def fetch_entity( ...@@ -68,7 +68,7 @@ def fetch_entity(
68 68
69 @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 70 @not_found
71 -def fetch_entity( 71 +def fetch_ubigeo(
72 ubigeo_id: str, 72 ubigeo_id: str,
73 db: Session = Depends(model.get_db), 73 db: Session = Depends(model.get_db),
74 ): 74 ):
...@@ -83,10 +83,20 @@ def fetch_entity( ...@@ -83,10 +83,20 @@ def fetch_entity(
83 return ubigeo 83 return ubigeo
84 84
85 85
86 +@router_da.get('/{da_id:str}', response_model=List[schemas.entity.EntidadResumen])
87 +@not_found
88 +def fetch_da(
89 + da_id: str,
90 + db: Session = Depends(model.get_db),
91 +):
92 + gastos_ingresos = get_resumen(db, 'entidad_da', ubigeo_id)
93 + return gastos_ingresos
94 +
95 +
86 # objetos 96 # objetos
87 97
88 @router_entidad.get('/{entity_id:str}/objetos', response_model=List[schemas.entity.EntidadDistribucion]) 98 @router_entidad.get('/{entity_id:str}/objetos', response_model=List[schemas.entity.EntidadDistribucion])
89 -def fetch_entity_objetos( 99 +def fetch_entidad_objetos(
90 entity_id: str, 100 entity_id: str,
91 db: Session = Depends(model.get_db), 101 db: Session = Depends(model.get_db),
92 query: schema.QueryParams = Depends(), 102 query: schema.QueryParams = Depends(),
...@@ -95,7 +105,7 @@ def fetch_entity_objetos( ...@@ -95,7 +105,7 @@ def fetch_entity_objetos(
95 105
96 106
97 @router_ubigeo.get('/{ubigeo_id:str}/objetos', response_model=List[schemas.entity.EntidadDistribucion]) 107 @router_ubigeo.get('/{ubigeo_id:str}/objetos', response_model=List[schemas.entity.EntidadDistribucion])
98 -def fetch_entity_objetos( 108 +def fetch_ubigeo_objetos(
99 ubigeo_id: str, 109 ubigeo_id: str,
100 db: Session = Depends(model.get_db), 110 db: Session = Depends(model.get_db),
101 query: schema.QueryParams = Depends(), 111 query: schema.QueryParams = Depends(),
...@@ -103,8 +113,17 @@ def fetch_entity_objetos( ...@@ -103,8 +113,17 @@ def fetch_entity_objetos(
103 return get_distribuciones(db, 'municipio_ubigeo', ubigeo_id, 'objeto', query) 113 return get_distribuciones(db, 'municipio_ubigeo', ubigeo_id, 'objeto', query)
104 114
105 115
116 +@router_da.get('/{da_id:str}/objetos', response_model=List[schemas.entity.EntidadDistribucion])
117 +def fetch_da_objetos(
118 + da_id: str,
119 + db: Session = Depends(model.get_db),
120 + query: schema.QueryParams = Depends(),
121 +):
122 + return get_distribuciones(db, 'entidad_da', da_id, 'objeto', query)
123 +
124 +
106 @router_entidad.get('/{entity_id:str}/finfuns', response_model=List[schemas.entity.EntidadDistribucion]) 125 @router_entidad.get('/{entity_id:str}/finfuns', response_model=List[schemas.entity.EntidadDistribucion])
107 -def fetch_entity_finfuns( 126 +def fetch_entidad_finfuns(
108 entity_id: str, 127 entity_id: str,
109 db: Session = Depends(model.get_db), 128 db: Session = Depends(model.get_db),
110 query: schema.QueryParams = Depends(), 129 query: schema.QueryParams = Depends(),
...@@ -113,7 +132,7 @@ def fetch_entity_finfuns( ...@@ -113,7 +132,7 @@ def fetch_entity_finfuns(
113 132
114 133
115 @router_ubigeo.get('/{ubigeo_id:str}/finfuns', response_model=List[schemas.entity.EntidadDistribucion]) 134 @router_ubigeo.get('/{ubigeo_id:str}/finfuns', response_model=List[schemas.entity.EntidadDistribucion])
116 -def fetch_entity_finfuns( 135 +def fetch_ubigeo_finfuns(
117 ubigeo_id: str, 136 ubigeo_id: str,
118 db: Session = Depends(model.get_db), 137 db: Session = Depends(model.get_db),
119 query: schema.QueryParams = Depends(), 138 query: schema.QueryParams = Depends(),
...@@ -121,8 +140,17 @@ def fetch_entity_finfuns( ...@@ -121,8 +140,17 @@ def fetch_entity_finfuns(
121 return get_distribuciones(db, 'municipio_ubigeo', ubigeo_id, 'finfun', query) 140 return get_distribuciones(db, 'municipio_ubigeo', ubigeo_id, 'finfun', query)
122 141
123 142
143 +@router_da.get('/{da_id:str}/finfuns', response_model=List[schemas.entity.EntidadDistribucion])
144 +def fetch_da_finfuns(
145 + da_id: str,
146 + db: Session = Depends(model.get_db),
147 + query: schema.QueryParams = Depends(),
148 +):
149 + return get_distribuciones(db, 'entidad_da', da_id, 'finfun', query)
150 +
151 +
124 @router_entidad.get('/{entity_id:str}/actecos', response_model=List[schemas.entity.EntidadDistribucion]) 152 @router_entidad.get('/{entity_id:str}/actecos', response_model=List[schemas.entity.EntidadDistribucion])
125 -def fetch_entity_actecos( 153 +def fetch_entidad_actecos(
126 entity_id: str, 154 entity_id: str,
127 db: Session = Depends(model.get_db), 155 db: Session = Depends(model.get_db),
128 query: schema.QueryParams = Depends(), 156 query: schema.QueryParams = Depends(),
...@@ -131,7 +159,7 @@ def fetch_entity_actecos( ...@@ -131,7 +159,7 @@ def fetch_entity_actecos(
131 159
132 160
133 @router_ubigeo.get('/{ubigeo_id:str}/actecos', response_model=List[schemas.entity.EntidadDistribucion]) 161 @router_ubigeo.get('/{ubigeo_id:str}/actecos', response_model=List[schemas.entity.EntidadDistribucion])
134 -def fetch_entity_actecos( 162 +def fetch_ubigeo_actecos(
135 ubigeo_id: str, 163 ubigeo_id: str,
136 db: Session = Depends(model.get_db), 164 db: Session = Depends(model.get_db),
137 query: schema.QueryParams = Depends(), 165 query: schema.QueryParams = Depends(),
...@@ -139,8 +167,17 @@ def fetch_entity_actecos( ...@@ -139,8 +167,17 @@ def fetch_entity_actecos(
139 return get_distribuciones(db, 'municipio_ubigeo', ubigeo_id, 'acteco', query) 167 return get_distribuciones(db, 'municipio_ubigeo', ubigeo_id, 'acteco', query)
140 168
141 169
170 +@router_da.get('/{da_id:str}/actecos', response_model=List[schemas.entity.EntidadDistribucion])
171 +def fetch_da_actecos(
172 + da_id: str,
173 + db: Session = Depends(model.get_db),
174 + query: schema.QueryParams = Depends(),
175 +):
176 + return get_distribuciones(db, 'entidad_da', da_id, 'acteco', query)
177 +
178 +
142 @router_entidad.get('/{entity_id:str}/rubros', response_model=List[schemas.entity.EntidadDistribucion]) 179 @router_entidad.get('/{entity_id:str}/rubros', response_model=List[schemas.entity.EntidadDistribucion])
143 -def fetch_entity_rubros( 180 +def fetch_entidad_rubros(
144 entity_id: str, 181 entity_id: str,
145 db: Session = Depends(model.get_db), 182 db: Session = Depends(model.get_db),
146 query: schema.QueryParams = Depends(), 183 query: schema.QueryParams = Depends(),
...@@ -149,7 +186,7 @@ def fetch_entity_rubros( ...@@ -149,7 +186,7 @@ def fetch_entity_rubros(
149 186
150 187
151 @router_entidad.get('/{entity_id:str}/organismos', response_model=List[schemas.entity.EntidadDistribucion]) 188 @router_entidad.get('/{entity_id:str}/organismos', response_model=List[schemas.entity.EntidadDistribucion])
152 -def fetch_entity_organismos( 189 +def fetch_entidad_organismos(
153 entity_id: str, 190 entity_id: str,
154 db: Session = Depends(model.get_db), 191 db: Session = Depends(model.get_db),
155 query: schema.QueryParams = Depends(), 192 query: schema.QueryParams = Depends(),
......
...@@ -6,6 +6,7 @@ from fastapi import APIRouter, Depends, Request, HTTPException, Body ...@@ -6,6 +6,7 @@ from fastapi import APIRouter, Depends, Request, HTTPException, Body
6 from sqlalchemy.orm import Session 6 from sqlalchemy.orm import Session
7 7
8 from presupuestov1 import model, schema, constant, schemas, models, search 8 from presupuestov1 import model, schema, constant, schemas, models, search
9 +from presupuestov1.routers._decorators import not_found
9 10
10 11
11 router = APIRouter( 12 router = APIRouter(
...@@ -29,7 +30,7 @@ def fetch_programa_proyecto( ...@@ -29,7 +30,7 @@ def fetch_programa_proyecto(
29 30
30 @router.get('/{project_id}/proyectos') 31 @router.get('/{project_id}/proyectos')
31 @not_found 32 @not_found
32 -def fetch_programa_proyecto_projectos( 33 +def fetch_programa_proyecto_proyectos(
33 project_id: int, 34 project_id: int,
34 db: Session = Depends(model.get_db), 35 db: Session = Depends(model.get_db),
35 query: schema.QueryParams = Depends(), 36 query: schema.QueryParams = Depends(),
......