Changes:
- Detect 'error' status from API
- Mark upload as failed when error status received
- Display full error response for debugging
- Log error details to help diagnose issues
The API expects:
- name, brand_name, market_name, channel at top level
- creatives array with only source_url
Changes:
- Moved name and channel to top level
- Changed asset_url to source_url in creatives
- Updated API client validation to match
This fixes the 'channel is missing, name is missing, source_url is missing' error.
The CreativeX API expects specific field names and structure:
- brand_name (not brand)
- market_name (not market)
- creatives array containing asset details
Changes:
- Updated preflight metadata structure in upload.py
- Updated create_preflight validation in api_client.py
- Updated state_manager to use correct field names
- Payload now includes creatives array with name, asset_url, channel
This fixes the 'brand_name, market_name, creatives are missing' error.
The CreativeX API requires a 'filename' parameter when requesting presigned URLs.
Changes:
- Updated get_presigned_url() to accept filename parameter
- Pass filename to API as query parameter
- Updated upload script to pass filename when requesting URL
- Updated test_connection to use test filename
This fixes the 'filename is missing' error.
- Ferrero filename parser with NEW format support
- CreativeX API client with retry logic
- State persistence with resume capability
- Upload and status checking scripts
- Comprehensive documentation
- Virtual environment support