import requests

BASE = 'https://ota.46-4-121-190.sslip.io'
UP = '6a78655229b7d373b839ddee'

r = requests.post(f'{BASE}/authentication', json={'strategy':'local','username':'admin','password':'353fde0a0fe4e8a0b2799e54'})
token = r.json()['accessToken']
h = {'Authorization': f'Bearer {token}', 'Content-Type': 'application/json'}

r = requests.patch(f'{BASE}/uploads/{UP}', headers=h, json={'status':'released'})
print('Released new:', r.json().get('status', r.text))

uploads_data = requests.get(f'{BASE}/uploads', headers=h).json()
uploads = uploads_data.get('data', uploads_data) if isinstance(uploads_data, dict) else uploads_data
for u in uploads:
    if u['_id'] != UP and u.get('status') == 'released':
        r2 = requests.patch(f'{BASE}/uploads/{u["_id"]}', headers=h, json={'status':'obsolete'})
        print(f'Demoted {u["_id"]}: {r2.json().get("status")}')

uploads2 = requests.get(f'{BASE}/uploads', headers=h).json()
up2 = uploads2.get('data', uploads2) if isinstance(uploads2, dict) else uploads2
released = [u for u in up2 if u.get('status') == 'released']
print('Released uploads now:', [(u['_id'], u.get('status')) for u in released])
