async function callScheduleTrigger()

in integration_test/functions/src/index.ts [42:81]


async function callScheduleTrigger(functionName: string, region: string) {
  const accessToken = await admin.credential
    .applicationDefault()
    .getAccessToken();
  return new Promise<string>((resolve, reject) => {
    const request = https.request(
      {
        method: 'POST',
        host: 'cloudscheduler.googleapis.com',
        path: `/v1/projects/${firebaseConfig.projectId}/locations/us-central1/jobs/firebase-schedule-${functionName}-${region}:run`,
        headers: {
          'Content-Type': 'application/json',
          Authorization: `Bearer ${accessToken.access_token}`,
        },
      },
      (response) => {
        if (response.statusCode! / 100 != 2) {
          reject(
            new Error('Failed request with status ' + response.statusCode!)
          );
          return;
        }
        let body = '';
        response.on('data', (chunk) => {
          body += chunk;
        });
        response.on('end', () => {
          console.log(`Successfully scheduled function ${functionName}`);
          resolve(body);
        });
      }
    );
    request.on('error', (err) => {
      console.error('Failed to schedule cloud scheduler job with error', err);
      reject(err);
    });
    request.write('{}');
    request.end();
  });
}