More to the foundation.
This commit is contained in:
parent
8a3eb2c2ef
commit
cab35b72ec
1 changed files with 7 additions and 2 deletions
|
|
@ -1,5 +1,6 @@
|
|||
from datetime import datetime
|
||||
from flask import Blueprint, render_template, abort, request, jsonify, current_app
|
||||
from sqlalchemy.inspection import inspect
|
||||
from typing import Any, Dict, List, Tuple, Callable, Optional
|
||||
|
||||
import crudkit
|
||||
|
|
@ -9,7 +10,9 @@ ISO_DT_FORMATS = ("%Y-%m-%dT%H:%M:%S.%f", "%Y-%m-%dT%H:%M:%S", "%Y-%m-%d %H:%M",
|
|||
|
||||
bp_entry = Blueprint("entry", __name__)
|
||||
|
||||
ISO_DT_FORMATS = ("%Y-%m-%dT%H:%M:%S.%f", "%Y-%m-%dT%H:%M:%S", "%Y-%m-%d %H:%M", "%Y-%m-%d")
|
||||
def filter_to_columns(data: dict, model_cls):
|
||||
cols = {c.key for c in inspect(model_cls).mapper.columns}
|
||||
return {k: v for k, v in data.items() if k in cols}
|
||||
|
||||
def _parse_dt_maybe(x: Any) -> Any:
|
||||
if isinstance(x, datetime):
|
||||
|
|
@ -355,7 +358,9 @@ def init_entry_routes(app):
|
|||
service = crudkit.crud.get_service(cls)
|
||||
item = service.get(id, params)
|
||||
d = deep_diff(item.as_dict(), payload, ignore_keys={"id", "created_at", "updated_at"})
|
||||
print(f"OLD = {item.as_dict()}\n\nNEW = {payload}\n\nDIFF = {d}")
|
||||
patch = diff_to_patch(d)
|
||||
clean_patch = filter_to_columns(patch, cls)
|
||||
print(f"OLD = {item.as_dict()}\n\nNEW = {payload}\n\nDIFF = {d}\n\nPATCH = {patch}\n\nCLEAN PATCH = {clean_patch}")
|
||||
|
||||
return {"status": "success", "payload": payload}
|
||||
except Exception as e:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue