diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index d47c9434..651d4a6a 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -130,6 +130,8 @@ jobs: AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} HEADLESS: ${{ vars.HEADLESS }} + ODIN_GQL_URL: ${{ vars.ODIN_GQL_URL }} + HEIMDALL_GQL_URL: ${{ vars.HEIMDALL_GQL_URL }} KMS_KEY_ID: ${{ secrets.KMS_KEY_ID }} GOOGLE_CREDENTIAL: ${{ secrets.GOOGLE_CREDENTIAL }} GOOGLE_PACKAGE_NAME: ${{ vars.GOOGLE_PACKAGE_NAME }} @@ -163,6 +165,8 @@ jobs: AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} HEADLESS: ${{ vars.HEADLESS }} + ODIN_GQL_URL: ${{ vars.ODIN_GQL_URL }} + HEIMDALL_GQL_URL: ${{ vars.HEIMDALL_GQL_URL }} KMS_KEY_ID: ${{ secrets.KMS_KEY_ID }} GOOGLE_CREDENTIAL: ${{ secrets.GOOGLE_CREDENTIAL }} GOOGLE_PACKAGE_NAME: ${{ vars.GOOGLE_PACKAGE_NAME }} diff --git a/.github/workflows/synth.yml b/.github/workflows/synth.yml index 2a2d4a4e..0d5a1358 100644 --- a/.github/workflows/synth.yml +++ b/.github/workflows/synth.yml @@ -117,6 +117,8 @@ jobs: AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} HEADLESS: ${{ vars.HEADLESS }} + ODIN_GQL_URL: ${{ vars.ODIN_GQL_URL }} + HEIMDALL_GQL_URL: ${{ vars.HEIMDALL_GQL_URL }} KMS_KEY_ID: ${{ secrets.KMS_KEY_ID }} GOOGLE_CREDENTIAL: ${{ secrets.GOOGLE_CREDENTIAL }} GOOGLE_PACKAGE_NAME: ${{ vars.GOOGLE_PACKAGE_NAME }} diff --git a/common/__init__.py b/common/__init__.py index 33b7f0d4..9a45b7a5 100644 --- a/common/__init__.py +++ b/common/__init__.py @@ -36,6 +36,8 @@ class Config: account_id: str region_name: str cdn_host: str + odin_gql_url: str + heimdall_gql_url: str # Multiplanetary planet_url: str diff --git a/iap/api/purchase.py b/iap/api/purchase.py index ee360959..f60130da 100644 --- a/iap/api/purchase.py +++ b/iap/api/purchase.py @@ -382,9 +382,15 @@ def free_product(receipt_data: FreeReceiptSchema, sess=Depends(session)): # Required level if product.required_level: + gql_url = None + if receipt_data.planetId in (PlanetID.ODIN, PlanetID.ODIN_INTERNAL): + gql_url = os.environ.get("ODIN_GQL_URL") + elif receipt_data.planetId in (PlanetID.HEIMDALL, PlanetID.HEIMDALL_INTERNAL): + gql_url = os.environ.get("HEIMDALL_GQL_URL") + query = f"""{{ stateQuery {{ avatar (avatarAddress: "{receipt_data.avatarAddress}") {{ level}} }} }}""" try: - resp = requests.post(os.environ.get("HEADLESS"), json={"query": query}, timeout=1) + resp = requests.post(gql_url, json={"query": query}, timeout=1) avatar_level = resp.json()["data"]["stateQuery"]["avatar"]["level"] except: # Whether request is failed or no fitted data found diff --git a/iap/iap_cdk_stack.py b/iap/iap_cdk_stack.py index cab8814a..6acb2b2c 100644 --- a/iap/iap_cdk_stack.py +++ b/iap/iap_cdk_stack.py @@ -98,6 +98,8 @@ def __init__(self, scope: Construct, construct_id: str, **kwargs) -> None: "APPLE_KEY_ID": config.apple_key_id, "APPLE_ISSUER_ID": config.apple_issuer_id, "HEADLESS": config.headless, + "ODIN_GQL_URL": config.odin_gql_url, + "HEIMDALL_GQL_URL": config.heimdall_gql_url, "CDN_HOST": config.cdn_host, "PLANET_URL": config.planet_url, "BRIDGE_DATA": config.bridge_data,