94 lines
2.1 KiB
Python
94 lines
2.1 KiB
Python
#!/usr/bin/env python3
|
|
"""Explore the actual auction schema"""
|
|
import asyncio
|
|
import aiohttp
|
|
import json
|
|
|
|
GRAPHQL_ENDPOINT = "https://storefront.tbauctions.com/storefront/graphql"
|
|
|
|
# Try different field structures
|
|
QUERIES = {
|
|
"viewingDays_simple": """
|
|
query AuctionData($auctionId: TbaUuid!, $locale: String!, $platform: Platform!) {
|
|
auction(id: $auctionId, locale: $locale, platform: $platform) {
|
|
viewingDays {
|
|
city
|
|
countryCode
|
|
}
|
|
}
|
|
}
|
|
""",
|
|
"viewingDays_with_times": """
|
|
query AuctionData($auctionId: TbaUuid!, $locale: String!, $platform: Platform!) {
|
|
auction(id: $auctionId, locale: $locale, platform: $platform) {
|
|
viewingDays {
|
|
from
|
|
to
|
|
city
|
|
}
|
|
}
|
|
}
|
|
""",
|
|
"full_auction": """
|
|
query AuctionData($auctionId: TbaUuid!, $locale: String!, $platform: Platform!) {
|
|
auction(id: $auctionId, locale: $locale, platform: $platform) {
|
|
id
|
|
displayId
|
|
biddingStatus
|
|
buyersPremium
|
|
viewingDays {
|
|
city
|
|
countryCode
|
|
from
|
|
to
|
|
}
|
|
collectionDays {
|
|
city
|
|
countryCode
|
|
from
|
|
to
|
|
}
|
|
}
|
|
}
|
|
"""
|
|
}
|
|
|
|
async def test_query(name, query, auction_id):
|
|
variables = {
|
|
"auctionId": auction_id,
|
|
"locale": "nl",
|
|
"platform": "TWK"
|
|
}
|
|
|
|
payload = {
|
|
"query": query,
|
|
"variables": variables
|
|
}
|
|
|
|
async with aiohttp.ClientSession() as session:
|
|
async with session.post(GRAPHQL_ENDPOINT, json=payload, timeout=30) as response:
|
|
data = await response.json()
|
|
|
|
print(f"\n{'='*60}")
|
|
print(f"QUERY: {name}")
|
|
print(f"{'='*60}")
|
|
|
|
if 'errors' in data:
|
|
print("ERRORS:")
|
|
for error in data['errors']:
|
|
print(f" {error}")
|
|
else:
|
|
print("SUCCESS:")
|
|
print(json.dumps(data, indent=2))
|
|
|
|
async def main():
|
|
# Test with the auction we know exists
|
|
auction_id = "9d5d9d6b-94de-4147-b523-dfa512d85dfa"
|
|
|
|
for name, query in QUERIES.items():
|
|
await test_query(name, query, auction_id)
|
|
await asyncio.sleep(0.5)
|
|
|
|
if __name__ == "__main__":
|
|
asyncio.run(main())
|