Пример #1
0
    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})
Пример #2
0
    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})
Пример #3
0
    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