export async function handler()

in typescript/src/subscription-status/appleSubStatus.ts [75:103]


export async function handler(
  httpRequest: APIGatewayProxyEvent,
): Promise<APIGatewayProxyResult> {
  let payload: AppleLinkPayload;
  try {
    payload = JSON.parse(httpRequest.body ?? '') as AppleLinkPayload;
  } catch (e) {
    return HTTPResponses.INVALID_REQUEST;
  }

  try {
    const validationResults = await Promise.all(
      payload.subscriptions.map((sub) =>
        validateReceipt(sub.receipt, { sandboxRetry: true }),
      ),
    );
    const flattenedValidationResults = validationResults.reduce(
      (agg: AppleValidationResponse[], value) => agg.concat(value),
      [],
    );
    const calculatedResponse = flattenedValidationResults.map(toResponse);
    logClientServerStatusDiff(calculatedResponse, payload.subscriptions);
    const responsePayload = JSON.stringify(calculatedResponse);
    return { statusCode: 200, body: responsePayload };
  } catch (e) {
    console.log(`Unable to validate receipt(s)`, e);
    return HTTPResponses.INTERNAL_ERROR;
  }
}