48 lines
1.8 KiB
Python
48 lines
1.8 KiB
Python
|
|
"""Add the `last_updated` date field to the EMP201 PB collection
|
||
|
|
schema. Currently PB silently drops it because the field isn't in
|
||
|
|
the collection schema, even though the push script sends it."""
|
||
|
|
import os, requests, pathlib, json
|
||
|
|
for line in pathlib.Path(r'C:\Users\SJ\.minimax-agent\projects\Workflow\.env.local').read_text().splitlines():
|
||
|
|
if line.strip() and '=' in line and not line.startswith('#'):
|
||
|
|
k, v = line.split('=', 1)
|
||
|
|
os.environ.setdefault(k.strip(), v.strip())
|
||
|
|
token = os.environ['PB_TOKEN']
|
||
|
|
coll_id = 'pbc_2178038841'
|
||
|
|
h = {'Authorization': f'Bearer {token}', 'Content-Type': 'application/json'}
|
||
|
|
|
||
|
|
# Get current schema
|
||
|
|
r = requests.get(f'https://pb.agent.apphub.co.za/api/collections/{coll_id}', headers=h, timeout=15)
|
||
|
|
fields = r.json().get('fields', [])
|
||
|
|
|
||
|
|
# Add last_updated if missing
|
||
|
|
if not any(f.get('name') == 'last_updated' for f in fields):
|
||
|
|
fields.append({
|
||
|
|
'name': 'last_updated',
|
||
|
|
'type': 'date',
|
||
|
|
'required': False,
|
||
|
|
'options': {},
|
||
|
|
})
|
||
|
|
r = requests.patch(
|
||
|
|
f'https://pb.agent.apphub.co.za/api/collections/{coll_id}',
|
||
|
|
headers=h, json={'fields': fields}, timeout=15,
|
||
|
|
)
|
||
|
|
print(f'Added last_updated: status={r.status_code}')
|
||
|
|
if r.status_code >= 400:
|
||
|
|
print(r.text[:500])
|
||
|
|
else:
|
||
|
|
print('last_updated already in schema')
|
||
|
|
|
||
|
|
# Now try writing the date
|
||
|
|
import sys
|
||
|
|
from datetime import datetime
|
||
|
|
dt_str = datetime.now().strftime('%Y-%m-%d %H:%M:%S.000Z')
|
||
|
|
r = requests.patch(
|
||
|
|
'https://pb.agent.apphub.co.za/api/collections/ysterbaard_SARS_EMP201_PAYE/records/zrduajho6xfpb3q',
|
||
|
|
headers=h, json={'last_updated': dt_str}, timeout=15,
|
||
|
|
)
|
||
|
|
print(f'Write last_updated={dt_str!r}: status={r.status_code}')
|
||
|
|
if r.status_code < 400:
|
||
|
|
print(f' stored: {r.json().get("last_updated")!r}')
|
||
|
|
else:
|
||
|
|
print(r.text[:500])
|