name: SetM365AppAcc

on:
  workflow_call:
    outputs:
      client_app_slot:
        value: ${{ jobs.GetM365App.outputs.client_app_slot }}
      client_id_env:
        value: ${{ jobs.GetM365App.outputs.client_id_env }}
      client_secret_env:
        value: ${{ jobs.GetM365App.outputs.client_secret_env }}

jobs:
  GetM365App:
    environment: Testing
    runs-on: ubuntu-latest
    outputs:
      client_app_slot: ${{ steps.roundrobin.outputs.CLIENT_APP_SLOT }}
      client_id_env: ${{ steps.roundrobin.outputs.CLIENT_ID_ENV }}
      client_secret_env: ${{ steps.roundrobin.outputs.CLIENT_SECRET_ENV }}
    steps:
      - name: Figure out which client id to use
        id: roundrobin
        run: |
          slot=$((GITHUB_RUN_NUMBER % 4))
          echo "CLIENT_APP_SLOT=$slot" >> $GITHUB_OUTPUT

          case $slot in

            0)
              echo "CLIENT_ID_ENV=CLIENT_ID" >> $GITHUB_OUTPUT
              echo "CLIENT_SECRET_ENV=CLIENT_SECRET" >> $GITHUB_OUTPUT
              ;;
            1)
              echo "CLIENT_ID_ENV=CLIENT_ID_2" >> $GITHUB_OUTPUT
              echo "CLIENT_SECRET_ENV=CLIENT_SECRET_2" >> $GITHUB_OUTPUT
              ;;
            2)
              echo "CLIENT_ID_ENV=CLIENT_ID_3" >> $GITHUB_OUTPUT
              echo "CLIENT_SECRET_ENV=CLIENT_SECRET_3" >> $GITHUB_OUTPUT
              ;;
            3)
              echo "CLIENT_ID_ENV=CLIENT_ID_4" >> $GITHUB_OUTPUT
              echo "CLIENT_SECRET_ENV=CLIENT_SECRET_4" >> $GITHUB_OUTPUT
              ;;
          esac
