(field, value)
| 854 | total_rows=total_rows) |
| 855 | |
| 856 | def minimal_validate_field(field, value): |
| 857 | if value.lower().strip() == 'null': |
| 858 | value = None |
| 859 | if value is None and not field.null: |
| 860 | return 'NULL', 'Column does not allow NULL values.' |
| 861 | if value is None: |
| 862 | return None, None |
| 863 | if isinstance(field, IntegerField): |
| 864 | try: |
| 865 | _ = int(value) |
| 866 | except Exception: |
| 867 | return value, 'Value is not a number.' |
| 868 | elif isinstance(field, FloatField): |
| 869 | try: |
| 870 | _ = float(value) |
| 871 | except Exception: |
| 872 | return value, 'Value is not a numeric/real.' |
| 873 | elif isinstance(field, BooleanField): |
| 874 | if value.lower() not in ('1', '0', 'true', 'false', 't', 'f'): |
| 875 | return value, 'Value must be 1, 0, true, false, t or f.' |
| 876 | value = True if value.lower() in ('1', 't', 'true') else False |
| 877 | elif isinstance(field, BlobField): |
| 878 | if app.config['BLOB_AS_BASE64']: |
| 879 | try: |
| 880 | value = base64.b64decode(value) |
| 881 | except Exception as exc: |
| 882 | return value, 'Value must be base64-encoded binary data.' |
| 883 | else: |
| 884 | try: |
| 885 | value = bytes.fromhex(value) |
| 886 | except Exception as exc: |
| 887 | return value, 'Value must be valid hex representation.' |
| 888 | try: |
| 889 | field.db_value(value) |
| 890 | except Exception as exc: |
| 891 | return value, str(exc) |
| 892 | |
| 893 | return value, None |
| 894 | |
| 895 | @app.route('/<table>/insert/', methods=['GET', 'POST']) |
| 896 | @require_table |
no outgoing calls
no test coverage detected