def wrapper(*args, **kwargs): if request.method == 'GET': geostore = request.args.get('geostore') if not geostore: return error(status=400, detail='Geostore is required') try: d = GeostoreService.get(geostore) except GeostoreNotFound: return error(status=404, detail='Geostore not found') kwargs["geojson"] = d['geojson'] kwargs["bbox"] = d["bbox"] return func(*args, **kwargs)
def composite_maker(geojson, instrument, date_range, thumb_size, band_viz, get_dem, cloudscore_thresh, bbox, get_files): """ Get a composite satellite image for a geostore id . """ try: logging.info(f'\n[ROUTER] DATE RANGE 2 : {date_range}') data = CompositeService.get_composite_image( geojson=geojson, instrument=instrument, date_range=date_range, thumb_size=thumb_size, band_viz=band_viz, get_dem=get_dem, cloudscore_thresh=cloudscore_thresh, bbox=bbox, get_files=get_files) logging.info(f"[ROUTER]: Result {data}") except CompositeError as e: logging.error(f'[ROUTER]: {e.message}') return error(status=500, detail=e.message) if get_files: delete_old_files() try: zipFile = f"/opt/composite/tmp_imgs/{data.get('rand_string')}.zip" with ZipFile(zipFile, 'w') as zipObj: zipObj.write(data.get('surface_png'), arcname=f"{data.get('rand_string')}.png") zipObj.write(data.get('dem_tif'), arcname=f"{data.get('rand_string')}.tif") return send_file(zipFile, attachment_filename='surface.zip') except Exception as e: return error(status=500, detail=e.message) else: return jsonify(serialize_composite_output(data, 'composite_service')), 200
def internal_server_error(e): return error(status=500, detail='Internal Server Error')
def gone(e): return error(status=410, detail='Gone')
def method_not_allowed(e): return error(status=405, detail='Method Not Allowed')
def page_not_found(e): return error(status=404, detail='Not Found')
def forbidden(e): return error(status=403, detail='Forbidden')