project.py 1.45 KB
import time

from typing import List, Any, Optional, Union

from fastapi import APIRouter, Depends, Request, HTTPException, Body
from sqlalchemy.orm import Session

from presupuestov1 import model, schema, constant, schemas, models, search

from aiocache import cached


router = APIRouter(
    prefix='/proyecto',
    tags=['proyecto'],
)


###############################################################################
# GET
###############################################################################

# @router.get('/{project_id}', response_model=schemas.project.Project)
# def fetch_branch(
#     project_id: int,
#     db: Session = Depends(model.get_db),
# ):
#     return models.project.get_project(db, project_id)



@router.get('/search', response_model=schemas.project.Search)
def fetch_search(
    query: schema.SearchQueryParams = Depends(),
):
    if query.q is None or len(query.q.strip()) < 3:
        return {
            'facet_counts': [],
            'found': 0,
            'out_of': 0,
            'page': 0,
            'search_time_ms': 0,
            'hits': [],
        }

    return search.do_search(
        query.q, query.page, query.is_class, query.class_, query.order
    )


###############################################################################
# GET
###############################################################################

def do_search(query, page, is_class, class_):
    return search.do_search(query, page, is_class, class_)