Files
espocrm/custom/scripts/junctiontabletests/test_junction_entity_final.py

84 lines
2.5 KiB
Python
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env python3
"""
Finaler Test: Junction-Entity API mit Filterung und syncId
"""
import requests
import json
BASE_URL = "https://crm.bitbylaw.com"
API_KEY = "e53def10eea27b92a6cd00f40a3e09a4"
HEADERS = {
"X-Api-Key": API_KEY,
"Content-Type": "application/json"
}
print("\n" + "="*80)
print(" "*25 + "Junction-Entity API - SUCCESS!")
print("="*80 + "\n")
# Test 1: Alle Junction-Einträge
print("1⃣ Alle Verknüpfungen abrufen:")
response = requests.get(
f"{BASE_URL}/api/v1/CAICollectionCDokumente",
headers=HEADERS,
params={"maxSize": 10}
)
print(f" Status: {response.status_code}")
data = response.json()
print(f" Total: {data['total']}")
print(f" ✅ API funktioniert!\n")
# Test 2: Filterung nach Dokument-ID
print("2⃣ Filterung nach Dokument-ID (testdoc999):")
response = requests.get(
f"{BASE_URL}/api/v1/CAICollectionCDokumente",
headers=HEADERS,
params={
"where[0][type]": "equals",
"where[0][attribute]": "cDokumenteId",
"where[0][value]": "testdoc999",
"select": "id,cDokumenteId,cAICollectionsId,syncId"
}
)
print(f" Status: {response.status_code}")
if response.status_code == 200:
data = response.json()
print(json.dumps(data, indent=2, ensure_ascii=False))
if data['list'] and 'syncId' in data['list'][0]:
print(f"\n ✅ syncId gefunden: {data['list'][0]['syncId']}")
print()
# Test 3: Suche nach syncId
print("3⃣ Filterung nach syncId (SYNC-TEST-999):")
response = requests.get(
f"{BASE_URL}/api/v1/CAICollectionCDokumente",
headers=HEADERS,
params={
"where[0][type]": "equals",
"where[0][attribute]": "syncId",
"where[0][value]": "SYNC-TEST-999"
}
)
print(f" Status: {response.status_code}")
if response.status_code == 200:
data = response.json()
print(json.dumps(data, indent=2, ensure_ascii=False))
if data['list']:
entry = data['list'][0]
print(f"\n ✅ Verknüpfung gefunden:")
print(f" Dokument: {entry['cDokumenteId']}")
print(f" Collection: {entry['cAICollectionsId']}")
print(f" Sync-ID: {entry['syncId']}")
print()
print("="*80)
print("✅ VOLLSTÄNDIGER ERFOLG!")
print("="*80)
print("\nDie Junction-Entity ist via REST-API verfügbar und gibt die syncId zurück!")
print("- Endpoint: /api/v1/CAICollectionCDokumente")
print("- Filterung funktioniert (where-Clauses)")
print("- Alle additionalColumns (syncId) sind in der Response")
print("\n" + "="*80 + "\n")