shared/mpapiResponse.ts (48 lines of code) (raw):
import { SoftOptInIDs } from './softOptInIDs';
export interface AppSubscription {
subscriptionId: string;
cancellationTimestamp?: string;
from: string;
valid: boolean;
productId: string;
}
export interface MPAPIResponse {
subscriptions: AppSubscription[];
}
export function isValidAppSubscription(subscription: AppSubscription) {
return subscription.valid;
}
export const AppSubscriptionSoftOptInIds: string[] = [
SoftOptInIDs.SupportOnboarding,
SoftOptInIDs.SupporterNewsletter,
];
export const SingleContributionSoftOptInIds: string[] = [
SoftOptInIDs.SupportOnboarding,
SoftOptInIDs.SupporterNewsletter,
];
export enum AppStore {
IOS,
ANDROID,
UNKNOWN,
}
export function determineAppStore(subscription: AppSubscription) {
if (
subscription.productId.includes('guardian.subscription') ||
subscription.productId.includes('puzzles.annual_sub') ||
subscription.productId.includes('puzzles.monthly_sub')
) {
return AppStore.ANDROID;
}
if (
subscription.productId.includes('guardian.gia') ||
subscription.productId.includes('guardian.gla') ||
subscription.productId.includes('puzzles.annualSub') ||
subscription.productId.includes('puzzles.monthlySub')
) {
return AppStore.IOS;
}
return AppStore.UNKNOWN;
}
export function isPuzzle(subscription: AppSubscription) {
return subscription.productId.includes('puzzles');
}