def update_buyin_image(user_id, id): close_time = utils.designated_trmnt_close_time() flight = Flights.query.get(id) if flight is None or flight.start_at < close_time: raise APIException( "Cannot buy into this flight. It either has ended, or does not exist" ) buyin = Buy_ins(user_id=user_id, flight_id=id) db.session.add(buyin) db.session.flush() if 'image' not in request.files: raise APIException('"image" property missing in the files array', 404) utils.resolve_google_credentials() result = utils.cloudinary_uploader(type='buyin', image=request.files['image'], public_id='buyin' + str(buyin.id), tags=[ 'buyin_receipt', 'user_' + str(user_id), 'buyin_' + str(buyin.id) ]) def terminate_buyin(): cloudinary.uploader.destroy('buyin' + str(buyin.id)) db.session.rollback() raise APIException('Take another photo') ocr_data = utils.ocr_reading(result) if list(ocr_data) == []: terminate_buyin() regex_data = regex.hard_rock(ocr_data) nones = 0 for val in regex_data.values(): if val is None: nones += 1 if nones > 2: terminate_buyin() buyin.receipt_img_url = result['secure_url'] db.session.commit() return jsonify({'buyin_id': buyin.id, 'receipt_data': regex_data})
def ocr(): import re import os utils.resolve_google_credentials() result = utils.cloudinary_uploader( 'buyin', request.files['image'], 'ocr', ['buyin_receipt', f'user_', f'buyin_']) msg = utils.ocr_reading(result) import regex r = regex.hard_rock(msg) return jsonify({**r, 'text': msg})
def update_profile_image(user_id): user = Users.query.get(user_id) if 'image' not in request.files: raise APIException('"image" property missing on the files array', 404) result = utils.cloudinary_uploader(image=request.files['image'], public_id='profile' + str(user.id), tags=['profile_picture']) user.profile.profile_pic_url = result['secure_url'] db.session.commit() return jsonify({'profile_pic_url': result['secure_url']}), 200