in typescript/src/pubsub/apple-common.ts [130:279]
function parseAppleReceiptInfo(
payload: unknown,
): Result<string, AppleReceiptInfo> {
if (!isObject(payload)) {
return err(
"The apple receipt info field that Apple gave us isn't an object",
);
}
if (typeof payload.transaction_id !== 'string') {
return err('missing field: transaction_id');
}
if (typeof payload.product_id !== 'string') {
return err('missing field: product_id');
}
if (typeof payload.original_transaction_id !== 'string') {
return err('missing field: original_transaction_id');
}
if (
typeof payload.item_id !== 'string' &&
typeof payload.item_id !== 'undefined'
) {
return err(`incorrect optional field: item_id ${typeof payload.item_id}`);
}
if (
typeof payload.app_item_id !== 'string' &&
typeof payload.app_item_id !== 'undefined'
) {
return err(
`incorrect optional field: app_item_id ${typeof payload.app_item_id}`,
);
}
if (
typeof payload.web_order_line_item_id !== 'string' &&
typeof payload.web_order_line_item_id !== 'undefined'
) {
return err(
`incorrect optional field: web_order_line_item_id ${typeof payload.web_order_line_item_id}`,
);
}
if (
typeof payload.unique_identifier !== 'string' &&
typeof payload.unique_identifier !== 'undefined'
) {
return err(
`incorrect optional field: unique_identifier ${typeof payload.unique_identifier}`,
);
}
if (
typeof payload.unique_vendor_identifier !== 'string' &&
typeof payload.unique_vendor_identifier !== 'undefined'
) {
return err(
`incorrect optional field: unique_vendor_identifier ${typeof payload.unique_vendor_identifier}`,
);
}
if (typeof payload.quantity !== 'string') {
return err('missing field: quantity');
}
if (typeof payload.purchase_date_ms !== 'string') {
return err('missing field: purchase_date_ms');
}
if (typeof payload.original_purchase_date_ms !== 'string') {
return err('missing field: original_purchase_date_ms');
}
if (
typeof payload.expires_date !== 'string' &&
typeof payload.expires_date !== 'undefined'
) {
return err(
`incorrect optional field: expires_date ${typeof payload.expires_date}`,
);
}
if (
typeof payload.expires_date_ms !== 'string' &&
typeof payload.expires_date_ms !== 'undefined'
) {
return err(
`incorrect optional field: expires_date_ms ${typeof payload.expires_date_ms}`,
);
}
if (
typeof payload.is_in_intro_offer_period !== 'string' &&
typeof payload.is_in_intro_offer_period !== 'undefined'
) {
return err(
`incorrect optional field: is_in_intro_offer_period ${typeof payload.is_in_intro_offer_period}`,
);
}
if (typeof payload.is_trial_period !== 'string') {
return err('missing field: is_trial_period');
}
if (typeof payload.bvrs !== 'string' && typeof payload.bvrs !== 'undefined') {
return err(`incorrect optional field: bvrs ${typeof payload.bvrs}`);
}
if (
typeof payload.version_external_identifier !== 'string' &&
typeof payload.version_external_identifier !== 'undefined'
) {
return err(
`incorrect optional field: version_external_identifier ${typeof payload.version_external_identifier}`,
);
}
if (
typeof payload.promotional_offer_id !== 'string' &&
typeof payload.promotional_offer_id !== 'undefined'
) {
return err(
`incorrect optional field: promotional_offer_id ${typeof payload.promotional_offer_id}`,
);
}
if (
typeof payload.offer_code_ref_name !== 'string' &&
typeof payload.offer_code_ref_name !== 'undefined'
) {
return err(
`incorrect optional field: offer_code_ref_name ${typeof payload.offer_code_ref_name}`,
);
}
if (
typeof payload.app_account_token !== 'string' &&
typeof payload.app_account_token !== 'undefined'
) {
return err(
`incorrect optional field: app_account_token ${typeof payload.app_account_token}`,
);
}
return ok({
transaction_id: payload.transaction_id,
product_id: payload.product_id,
original_transaction_id: payload.original_transaction_id,
item_id: payload.item_id,
app_item_id: payload.app_item_id,
web_order_line_item_id: payload.web_order_line_item_id,
unique_identifier: payload.unique_identifier,
unique_vendor_identifier: payload.unique_vendor_identifier,
quantity: payload.quantity,
purchase_date_ms: payload.purchase_date_ms,
original_purchase_date_ms: payload.original_purchase_date_ms,
expires_date: payload.expires_date,
expires_date_ms: payload.expires_date_ms,
is_in_intro_offer_period: payload.is_in_intro_offer_period,
is_trial_period: payload.is_trial_period,
bvrs: payload.bvrs,
version_external_identifier: payload.version_external_identifier,
promotional_offer_id: payload.promotional_offer_id,
offer_code_ref_name: payload.offer_code_ref_name,
app_account_token: payload.app_account_token,
});
}