- Organisiert eine Vielzahl von Skripten aus dem Root-Verzeichnis in thematische Unterordner, um die Übersichtlichkeit zu verbessern und die Migration vorzubereiten. - Verschiebt SuperOffice-bezogene Test- und Hilfsskripte in . - Verschiebt Notion-bezogene Synchronisations- und Import-Skripte in . - Archiviert eindeutig veraltete und ungenutzte Skripte in . - Die zentralen Helfer und bleiben im Root, da sie von mehreren Tools als Abhängigkeit genutzt werden.
58 lines
1.8 KiB
Python
58 lines
1.8 KiB
Python
import os
|
|
import requests
|
|
from dotenv import load_dotenv
|
|
|
|
# Load ENV
|
|
load_dotenv(dotenv_path="/home/node/clawd/.env", override=True)
|
|
|
|
def perfect_sync():
|
|
# Credentials
|
|
base_url = "https://app-sod.superoffice.com/Cust55774/api/v1"
|
|
headers = {
|
|
"Authorization": f"Bearer {os.getenv('SO_ACCESS_TOKEN')}", # Will be handled by client if needed, but here direct for speed
|
|
"Content-Type": "application/json",
|
|
"Accept": "application/json"
|
|
}
|
|
|
|
# We use the SuperOfficeClient to get a fresh token first
|
|
from repos.brancheneinstufung2.connector_superoffice.superoffice_client import SuperOfficeClient
|
|
client = SuperOfficeClient()
|
|
headers["Authorization"] = f"Bearer {client.access_token}"
|
|
|
|
print("--- Perfect Sync: Finalizing Robo-Planet (ID 2) ---")
|
|
|
|
payload = {
|
|
"contactId": 2,
|
|
"Name": "RoboPlanet GmbH-SOD",
|
|
"Number2": "123",
|
|
"UrlAddress": "http://robo-planet.de",
|
|
"OrgNr": "DE400464410",
|
|
"Department": "Perfectly Synchronized",
|
|
"Address": {
|
|
"Postal": {
|
|
"Address1": "Schatzbogen 39",
|
|
"City": "München",
|
|
"Zipcode": "81829"
|
|
},
|
|
"Street": {
|
|
"Address1": "Schatzbogen 39",
|
|
"City": "München",
|
|
"Zipcode": "81829"
|
|
}
|
|
},
|
|
"UserDefinedFields": {
|
|
"SuperOffice:5": "[I:23]" # Logistics
|
|
}
|
|
}
|
|
|
|
url = f"{base_url}/Contact/2"
|
|
resp = requests.put(url, headers=headers, json=payload)
|
|
|
|
if resp.status_code == 200:
|
|
print("🚀 BOOM. Website, VAT, Address and Vertical are now 100% correct.")
|
|
else:
|
|
print(f"❌ Error: {resp.text}")
|
|
|
|
if __name__ == "__main__":
|
|
perfect_sync()
|