Exemplo n.º 1
0
async def dashboards_get_api(dashboard_id: str,
                             session: Session = Depends(get_session)):
    dashboard = session.query(Dashboard) \
        .filter(Dashboard.uuid == dashboard_id, Dashboard.is_archived == False) \
        .first()  # noqa
    if not dashboard:
        raise HTTPException(status_code=404)

    return dashboard_response_serializer(dashboard, session)
Exemplo n.º 2
0
async def dashboards_list_api(session: Session = Depends(get_session)):
    dashboards_query = session.query(Dashboard) \
        .filter(Dashboard.is_archived == False) \
        .order_by(Dashboard.updated_at)  # noqa
    result = []

    for dashboard in dashboards_query:
        result.append(dashboard_response_serializer(dashboard, session))

    return result
Exemplo n.º 3
0
async def dashboards_put_api(dashboard_id: str,
                             request_data: DashboardUpdateIn,
                             session: Session = Depends(get_session)):
    dashboard = session.query(Dashboard) \
        .filter(Dashboard.uuid == dashboard_id, Dashboard.is_archived == False) \
        .first()  # noqa
    if not dashboard:
        raise HTTPException(status_code=404)
    dashboard_name = request_data.name
    if dashboard_name:
        dashboard.name = dashboard_name
    dashboard_description = request_data.description
    if dashboard_description:
        dashboard.description = dashboard_description
    session.commit()

    return dashboard_response_serializer(dashboard, session)
Exemplo n.º 4
0
async def dashboards_post_api(request_data: DashboardCreateIn,
                              session: Session = Depends(get_session)):
    # create the dashboard object
    dashboard_name = request_data.name
    dashboard_description = request_data.description
    dashboard = Dashboard(dashboard_name, dashboard_description)
    session.add(dashboard)

    # update the app object's foreign key relation
    app_id = str(request_data.app_id)
    app = session.query(ExploreState).filter(
        ExploreState.uuid == app_id).first()
    if app:
        app.dashboard_id = dashboard.uuid

    # commit db session
    session.commit()

    return dashboard_response_serializer(dashboard, session)