2026.03.30 front és garázs logika

This commit is contained in:
Roo
2026-03-30 06:32:22 +00:00
parent ba8b6579ef
commit 2508ae7452
108 changed files with 3184 additions and 115 deletions

View File

@@ -0,0 +1,108 @@
#!/usr/bin/env python3
"""
Test the assets API endpoint directly.
"""
import asyncio
import aiohttp
import sys
import os
sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))
async def test_assets_api():
base_url = "http://sf_api:8000"
# First, login to get token
async with aiohttp.ClientSession() as session:
# Login
login_data = {
"username": "tester_pro@profibot.hu",
"password": "Test123!"
}
print("1. Logging in...")
async with session.post(f"{base_url}/api/v1/auth/login", data=login_data) as resp:
if resp.status != 200:
print(f"❌ Login failed: {resp.status}")
text = await resp.text()
print(f"Response: {text}")
return
login_result = await resp.json()
token = login_result["access_token"]
print(f"✅ Login successful, token: {token[:50]}...")
# Set personal mode (scope_id = null)
print("\n2. Setting personal mode (scope_id = null)...")
headers = {"Authorization": f"Bearer {token}"}
patch_data = {"organization_id": None}
async with session.patch(
f"{base_url}/api/v1/users/me/active-organization",
json=patch_data,
headers=headers
) as resp:
if resp.status != 200:
print(f"❌ PATCH failed: {resp.status}")
text = await resp.text()
print(f"Response: {text}")
return
patch_result = await resp.json()
print(f"✅ PATCH successful")
print(f" scope_id: {patch_result.get('scope_id')}")
print(f" scope_level: {patch_result.get('scope_level')}")
# Get vehicles in personal mode
print("\n3. Getting vehicles in personal mode...")
async with session.get(
f"{base_url}/api/v1/assets/vehicles",
headers=headers
) as resp:
if resp.status != 200:
print(f"❌ GET vehicles failed: {resp.status}")
text = await resp.text()
print(f"Response: {text}")
return
vehicles_result = await resp.json()
print(f"✅ GET vehicles successful")
print(f" Found {len(vehicles_result)} vehicles")
for i, vehicle in enumerate(vehicles_result[:5]): # Show first 5
print(f" {i+1}. {vehicle.get('license_plate')} (ID: {vehicle.get('id')})")
if len(vehicles_result) > 5:
print(f" ... and {len(vehicles_result) - 5} more")
# Now test corporate mode (org_id = 15)
print("\n4. Setting corporate mode (org_id = 15)...")
patch_data_corp = {"organization_id": "15"}
async with session.patch(
f"{base_url}/api/v1/users/me/active-organization",
json=patch_data_corp,
headers=headers
) as resp:
if resp.status != 200:
print(f"❌ PATCH corporate failed: {resp.status}")
text = await resp.text()
print(f"Response: {text}")
return
patch_corp_result = await resp.json()
print(f"✅ PATCH corporate successful")
print(f" scope_id: {patch_corp_result.get('scope_id')}")
# Get vehicles in corporate mode
print("\n5. Getting vehicles in corporate mode...")
async with session.get(
f"{base_url}/api/v1/assets/vehicles",
headers=headers
) as resp:
if resp.status != 200:
print(f"❌ GET corporate vehicles failed: {resp.status}")
text = await resp.text()
print(f"Response: {text}")
return
vehicles_corp_result = await resp.json()
print(f"✅ GET corporate vehicles successful")
print(f" Found {len(vehicles_corp_result)} vehicles")
for i, vehicle in enumerate(vehicles_corp_result[:5]):
print(f" {i+1}. {vehicle.get('license_plate')}")
if __name__ == "__main__":
asyncio.run(test_assets_api())