Esempio n. 1
0
def handler(event, context):
    print(event)
    if 'field' in event:  # GraphQL API
        table_name = event['field']
        args = event['arguments']
        with app.app_context():
            results = DataService.fetch_rows_orm_eager(
                table_name, {
                    'startRow': args['start_row'],
                    'endRow': args['end_row'],
                    'rowGroupCols': args['row_group_cols'],
                    'valueCols': args['value_cols'],
                    'pivotCols': args['pivot_cols'],
                    'pivotMode': args['pivot_mode'],
                    'groupKeys': args['group_keys'],
                    'sortModel': args['sort_model'],
                    'filterModel': transform_filter_model(args['filter_model'])
                })
            model_name = get_model_name_by_table_name(table_name)
            results['rows'] = [
                marshal(row, rest_api.api_schemas[f'{model_name}Full'])
                for row in results['rows']
            ]
        print(results)
        return results
    else:  # REST API
        with app.app_context():
            if event['body']:  # POST
                path = event['path']
                table_name = path[5:]  # remove /api/
                model_name = get_model_name_by_table_name(table_name)
                req = json.loads(json.loads(event['body']))
                results = DataService.fetch_rows_orm(table_name, req)
                results['rows'] = [
                    marshal(row, rest_api.api_schemas[model_name])
                    for row in results['rows']
                ]
                return {
                    'body': json.dumps(results),
                    'headers': {
                        "Access-Control-Allow-Origin": "*",
                    },
                    'statusCode': 200,
                }
Esempio n. 2
0
 def resolve_row_data(parent, info, start_row, end_row, row_group_cols,
                      value_cols, pivot_cols, pivot_mode, group_keys,
                      filter_model, sort_model):
     from app.service import DataService
     results = DataService.fetch_rows_orm(
         model,
         {
             'startRow': start_row,
             'endRow': end_row,
             'rowGroupCols': row_group_cols,
             'valueCols': value_cols,
             'pivotCols': pivot_cols,
             'pivotMode': pivot_mode,
             'groupKeys': group_keys,
             'sortModel': sort_model,
             'filterModel': transform_filter_model(filter_model)
         }
     )
     print(results)
     return results
Esempio n. 3
0
from flask import Flask, Response
from app.service import DataService
from flask_cors import CORS
app = Flask(__name__)
CORS(app)
ds = DataService()


@app.route('/')
def hello():
    return "<h1>NASA COVID-19 backend</h1>"


@app.route('/covid/<interval>')
def get_covid_timeseries(interval):
    return Response(ds.get_covid_by_interval(interval),
                    mimetype='application/json')


@app.route('/covid')
def get_covid_data():
    return Response(ds.get_covid_data(), mimetype='application/json')


@app.route('/crude-oil')
def get_crude_oil():
    return Response(ds.get_energy_crude_oil(), mimetype='application/json')


@app.route('/transport')
def get_transport_data():
Esempio n. 4
0
        def post(self):
            '''Get a list of Baltimore City circuit court civil cases'''

            return DataService.fetch_rows_orm('cc', request.parsed_obj)
Esempio n. 5
0
        def post(self):
            '''Get a list of Baltimore City district court criminal cases'''

            return DataService.fetch_rows_orm('dscr', request.parsed_obj)
Esempio n. 6
0
        def post(self):
            '''Get a list of MD traffic cases'''

            return DataService.fetch_rows_orm('odytraf', request.parsed_obj)
Esempio n. 7
0
        def post(self):
            '''Get a list of cases'''

            return DataService.fetch_rows_orm('cases', request.parsed_obj)
Esempio n. 8
0
        def post(self):
            '''Get a list of MD criminal cases'''

            return DataService.fetch_rows_orm('odycrim', request.parsed_obj)