#!/usr/bin/env python3
"""
Test Cloud Translation API v3 using gcloud auth credentials.
"""

import sys
import json
import subprocess

def get_access_token():
    """Get access token via gcloud"""
    result = subprocess.run(
        ["/home/dev/google-cloud-sdk/bin/gcloud", "auth", "application-default", "print-access-token"],
        capture_output=True,
        text=True
    )
    if result.returncode != 0:
        print(f"Error getting token: {result.stderr}", file=sys.stderr)
        return None
    return result.stdout.strip()

def test_translate_v3(text_to_translate, source_lang="en", target_lang="fr"):
    """Test Translation API v3 via REST"""
    import urllib.request
    import urllib.error
    
    token = get_access_token()
    if not token:
        return {"error": "Failed to get access token"}
    
    project_id = "indexation-358907"
    url = f"https://translation.googleapis.com/v3/projects/{project_id}/locations/global:translateText"
    
    body = json.dumps({
        "sourceLanguageCode": source_lang,
        "targetLanguageCode": target_lang,
        "contents": [text_to_translate]
    }).encode('utf-8')
    
    headers = {
        "Authorization": f"Bearer {token}",
        "Content-Type": "application/json"
    }
    
    req = urllib.request.Request(url, data=body, headers=headers, method="POST")
    
    try:
        with urllib.request.urlopen(req) as response:
            result = json.loads(response.read().decode('utf-8'))
            return {"success": True, "result": result}
    except urllib.error.HTTPError as e:
        error_data = e.read().decode('utf-8')
        return {"success": False, "error": str(e), "details": error_data}
    except Exception as e:
        return {"success": False, "error": str(e)}

if __name__ == "__main__":
    print("Testing Cloud Translation API v3...")
    result = test_translate_v3("Good morning, how are you?", source_lang="en", target_lang="fr")
    print(json.dumps(result, indent=2, ensure_ascii=False))
