added new billing utils

This commit is contained in:
Abhinav-grd 2021-03-18 20:47:08 +05:30
parent a2e59abd6a
commit 3b2ea74a39

View file

@ -4,22 +4,31 @@ import { getData, LS_KEYS } from './storage/localStorage';
export function convertBytesToGBs(bytes, precision?): string { export function convertBytesToGBs(bytes, precision?): string {
return (bytes / (1024 * 1024 * 1024)).toFixed(precision ?? 2); return (bytes / (1024 * 1024 * 1024)).toFixed(precision ?? 2);
} }
export function hasActivePaidPlan(subscription?: Subscription) { export function hasPaidPlan(subscription?: Subscription) {
subscription = subscription ?? getUserSubscription(); subscription = subscription ?? getUserSubscription();
return ( return (
subscription && subscription &&
planIsActive(subscription) && isPlanActive(subscription) &&
subscription.productID !== FREE_PLAN subscription.productID !== FREE_PLAN
); );
} }
export function planIsActive(subscription?: Subscription): boolean {
export function hasRenewingPaidPlan(subscription?: Subscription) {
subscription = subscription ?? getUserSubscription();
return hasPaidPlan(subscription) && !isPlanCancelled(subscription);
}
export function isPlanActive(subscription?: Subscription): boolean {
subscription = subscription ?? getUserSubscription(); subscription = subscription ?? getUserSubscription();
return subscription && subscription.expiryTime > Date.now() * 1000; return subscription && subscription.expiryTime > Date.now() * 1000;
} }
export function isOnFreePlan(subscription?: Subscription) { export function isOnFreePlan(subscription?: Subscription) {
subscription = subscription ?? getUserSubscription(); subscription = subscription ?? getUserSubscription();
return subscription && subscription.productID === FREE_PLAN; return (
subscription &&
isPlanActive(subscription) &&
subscription.productID === FREE_PLAN
);
} }
export function isPlanCancelled(subscription?: Subscription) { export function isPlanCancelled(subscription?: Subscription) {
@ -34,3 +43,9 @@ export function getUserSubscription(): Subscription {
export function getPlans(): Plan[] { export function getPlans(): Plan[] {
return getData(LS_KEYS.PLANS); return getData(LS_KEYS.PLANS);
} }
export function isUserRenewingPlan(plan: Plan, subscription: Subscription) {
return (
plan.androidID === subscription.productID &&
!isPlanCancelled(subscription)
);
}