def ingest_data_and_respond(data, log): log.info('Got POSTed data: {}'.format(data)) timeseries_df, err = Parser.validate_parse_consumption_data(data, log) if err != '': return err, HTTPStatus.BAD_REQUEST ship_id = data['spaceship_id'] units = data['units'].lower() if units == 'kwh': timeseries, err = Parser.split(timeseries_df, log) elif units == 'kw': timeseries, err = Parser.convert_and_split(timeseries_df, log) if err != '': return err, HTTPStatus.BAD_REQUEST log.debug('Saving dataframe: {} \nfor ship_id: : {}'.format( timeseries, ship_id, )) if not DBManager.save_energy_entry(ship_id, timeseries): log.error('db save failed for ship: {}'.format(ship_id)) log.error('timeseries: {}'.format(timeseries)) res = DBManager.get_full_energy_entry(ship_id) log.error('full ship info in db befre fail: {}'.format(res)) return 'DB error', HTTPStatus.SERVICE_UNAVAILABLE return 'Data saved successfully for ship {}'.format(ship_id)