[PM-5548] Eliminate in-app purchase logic (#7433)

* Eliminate in-app purchase logic

* Remove more in-app logic found, for payment and subscription management

---------

Co-authored-by: Lotus Scott <148992878+lscottbw@users.noreply.github.com>
This commit is contained in:
Matt Bishop 2024-01-11 15:24:43 -05:00 committed by GitHub
parent cdeaa0b56a
commit 6baad76088
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 0 additions and 100 deletions

View File

@ -69,18 +69,6 @@ export class UserSubscriptionComponent implements OnInit {
return; return;
} }
if (this.usingInAppPurchase) {
this.dialogService.openSimpleDialog({
title: { key: "cancelSubscription" },
content: { key: "manageSubscriptionFromStore" },
acceptButtonText: { key: "ok" },
cancelButtonText: null,
type: "warning",
});
return;
}
const confirmed = await this.dialogService.openSimpleDialog({ const confirmed = await this.dialogService.openSimpleDialog({
title: { key: "reinstateSubscription" }, title: { key: "reinstateSubscription" },
content: { key: "reinstateConfirmation" }, content: { key: "reinstateConfirmation" },
@ -106,18 +94,6 @@ export class UserSubscriptionComponent implements OnInit {
return; return;
} }
if (this.usingInAppPurchase) {
this.dialogService.openSimpleDialog({
title: { key: "cancelSubscription" },
content: { key: "manageSubscriptionFromStore" },
acceptButtonText: { key: "ok" },
cancelButtonText: null,
type: "warning",
});
return;
}
const confirmed = await this.dialogService.openSimpleDialog({ const confirmed = await this.dialogService.openSimpleDialog({
title: { key: "cancelSubscription" }, title: { key: "cancelSubscription" },
content: { key: "cancelConfirmation" }, content: { key: "cancelConfirmation" },
@ -169,17 +145,6 @@ export class UserSubscriptionComponent implements OnInit {
} }
adjustStorage(add: boolean) { adjustStorage(add: boolean) {
if (this.usingInAppPurchase) {
this.dialogService.openSimpleDialog({
title: { key: add ? "addStorage" : "removeStorage" },
content: { key: "cannotPerformInAppPurchase" },
acceptButtonText: { key: "ok" },
cancelButtonText: null,
type: "warning",
});
return;
}
this.adjustStorageAdd = add; this.adjustStorageAdd = add;
this.showAdjustStorage = true; this.showAdjustStorage = true;
} }
@ -215,10 +180,6 @@ export class UserSubscriptionComponent implements OnInit {
return this.storagePercentage < 5 ? 5 : 0; return this.storagePercentage < 5 ? 5 : 0;
} }
get usingInAppPurchase() {
return this.sub != null ? this.sub.usingInAppPurchase : false;
}
get title(): string { get title(): string {
return this.i18nService.t(this.selfHosted ? "subscription" : "premiumMembership"); return this.i18nService.t(this.selfHosted ? "subscription" : "premiumMembership");
} }

View File

@ -91,7 +91,6 @@
</app-callout> </app-callout>
<p> <p>
<i class="bwi bwi-fw" [ngClass]="paymentSourceClasses"></i> <i class="bwi bwi-fw" [ngClass]="paymentSourceClasses"></i>
<span *ngIf="paymentSourceInApp">{{ "inAppPurchase" | i18n }}</span>
{{ paymentSource.description }} {{ paymentSource.description }}
</p> </p>
</ng-container> </ng-container>

View File

@ -106,17 +106,6 @@ export class PaymentMethodComponent implements OnInit {
} }
addCredit() { addCredit() {
if (this.paymentSourceInApp) {
this.dialogService.openSimpleDialog({
title: { key: "addCredit" },
content: { key: "cannotPerformInAppPurchase" },
acceptButtonText: { key: "ok" },
cancelButtonText: null,
type: "warning",
});
return;
}
this.showAddCredit = true; this.showAddCredit = true;
} }
@ -128,18 +117,6 @@ export class PaymentMethodComponent implements OnInit {
} }
changePayment() { changePayment() {
if (this.paymentSourceInApp) {
this.dialogService.openSimpleDialog({
title: { key: "changePaymentMethod" },
content: { key: "cannotPerformInAppPurchase" },
acceptButtonText: { key: "ok" },
cancelButtonText: null,
type: "warning",
});
return;
}
this.showAdjustPayment = true; this.showAdjustPayment = true;
} }
@ -209,10 +186,6 @@ export class PaymentMethodComponent implements OnInit {
return ["bwi-bank"]; return ["bwi-bank"];
case PaymentMethodType.Check: case PaymentMethodType.Check:
return ["bwi-money"]; return ["bwi-money"];
case PaymentMethodType.AppleInApp:
return ["bwi-apple text-muted"];
case PaymentMethodType.GoogleInApp:
return ["bwi-google text-muted"];
case PaymentMethodType.PayPal: case PaymentMethodType.PayPal:
return ["bwi-paypal text-primary"]; return ["bwi-paypal text-primary"];
default: default:
@ -220,14 +193,6 @@ export class PaymentMethodComponent implements OnInit {
} }
} }
get paymentSourceInApp() {
return (
this.paymentSource != null &&
(this.paymentSource.type === PaymentMethodType.AppleInApp ||
this.paymentSource.type === PaymentMethodType.GoogleInApp)
);
}
get subscription() { get subscription() {
return this.sub?.subscription ?? this.org?.subscription ?? null; return this.sub?.subscription ?? this.org?.subscription ?? null;
} }

View File

@ -3828,15 +3828,6 @@
"couldNotChargeCardPayInvoice": { "couldNotChargeCardPayInvoice": {
"message": "We were not able to charge your card. Please view and pay the unpaid invoice listed below." "message": "We were not able to charge your card. Please view and pay the unpaid invoice listed below."
}, },
"inAppPurchase": {
"message": "In-app purchase"
},
"cannotPerformInAppPurchase": {
"message": "You cannot perform this action while using an in-app purchase payment method."
},
"manageSubscriptionFromStore": {
"message": "You must manage your subscription from the store where your in-app purchase was made."
},
"minLength": { "minLength": {
"message": "Minimum length" "message": "Minimum length"
}, },

View File

@ -90,7 +90,6 @@ import { TaxInfoResponse } from "../billing/models/response/tax-info.response";
import { TaxRateResponse } from "../billing/models/response/tax-rate.response"; import { TaxRateResponse } from "../billing/models/response/tax-rate.response";
import { DeleteRecoverRequest } from "../models/request/delete-recover.request"; import { DeleteRecoverRequest } from "../models/request/delete-recover.request";
import { EventRequest } from "../models/request/event.request"; import { EventRequest } from "../models/request/event.request";
import { IapCheckRequest } from "../models/request/iap-check.request";
import { KdfRequest } from "../models/request/kdf.request"; import { KdfRequest } from "../models/request/kdf.request";
import { KeysRequest } from "../models/request/keys.request"; import { KeysRequest } from "../models/request/keys.request";
import { OrganizationImportRequest } from "../models/request/organization-import.request"; import { OrganizationImportRequest } from "../models/request/organization-import.request";
@ -169,7 +168,6 @@ export abstract class ApiService {
postPasswordHint: (request: PasswordHintRequest) => Promise<any>; postPasswordHint: (request: PasswordHintRequest) => Promise<any>;
postRegister: (request: RegisterRequest) => Promise<RegisterResponse>; postRegister: (request: RegisterRequest) => Promise<RegisterResponse>;
postPremium: (data: FormData) => Promise<PaymentResponse>; postPremium: (data: FormData) => Promise<PaymentResponse>;
postIapCheck: (request: IapCheckRequest) => Promise<any>;
postReinstatePremium: () => Promise<any>; postReinstatePremium: () => Promise<any>;
postCancelPremium: () => Promise<any>; postCancelPremium: () => Promise<any>;
postAccountStorage: (request: StorageRequest) => Promise<PaymentResponse>; postAccountStorage: (request: StorageRequest) => Promise<PaymentResponse>;

View File

@ -5,7 +5,5 @@ export enum PaymentMethodType {
BitPay = 3, BitPay = 3,
Credit = 4, Credit = 4,
WireTransfer = 5, WireTransfer = 5,
AppleInApp = 6,
GoogleInApp = 7,
Check = 8, Check = 8,
} }

View File

@ -8,7 +8,6 @@ export class SubscriptionResponse extends BaseResponse {
upcomingInvoice: BillingSubscriptionUpcomingInvoiceResponse; upcomingInvoice: BillingSubscriptionUpcomingInvoiceResponse;
license: any; license: any;
expiration: string; expiration: string;
usingInAppPurchase: boolean;
constructor(response: any) { constructor(response: any) {
super(response); super(response);
@ -17,7 +16,6 @@ export class SubscriptionResponse extends BaseResponse {
this.maxStorageGb = this.getResponseProperty("MaxStorageGb"); this.maxStorageGb = this.getResponseProperty("MaxStorageGb");
this.license = this.getResponseProperty("License"); this.license = this.getResponseProperty("License");
this.expiration = this.getResponseProperty("Expiration"); this.expiration = this.getResponseProperty("Expiration");
this.usingInAppPurchase = this.getResponseProperty("UsingInAppPurchase");
const subscription = this.getResponseProperty("Subscription"); const subscription = this.getResponseProperty("Subscription");
const upcomingInvoice = this.getResponseProperty("UpcomingInvoice"); const upcomingInvoice = this.getResponseProperty("UpcomingInvoice");
this.subscription = subscription == null ? null : new BillingSubscriptionResponse(subscription); this.subscription = subscription == null ? null : new BillingSubscriptionResponse(subscription);

View File

@ -1,5 +0,0 @@
import { PaymentMethodType } from "../../billing/enums";
export class IapCheckRequest {
paymentMethodType: PaymentMethodType;
}

View File

@ -96,7 +96,6 @@ import { DeviceType } from "../enums";
import { CollectionBulkDeleteRequest } from "../models/request/collection-bulk-delete.request"; import { CollectionBulkDeleteRequest } from "../models/request/collection-bulk-delete.request";
import { DeleteRecoverRequest } from "../models/request/delete-recover.request"; import { DeleteRecoverRequest } from "../models/request/delete-recover.request";
import { EventRequest } from "../models/request/event.request"; import { EventRequest } from "../models/request/event.request";
import { IapCheckRequest } from "../models/request/iap-check.request";
import { KdfRequest } from "../models/request/kdf.request"; import { KdfRequest } from "../models/request/kdf.request";
import { KeysRequest } from "../models/request/keys.request"; import { KeysRequest } from "../models/request/keys.request";
import { OrganizationImportRequest } from "../models/request/organization-import.request"; import { OrganizationImportRequest } from "../models/request/organization-import.request";
@ -382,10 +381,6 @@ export class ApiService implements ApiServiceAbstraction {
return new PaymentResponse(r); return new PaymentResponse(r);
} }
async postIapCheck(request: IapCheckRequest): Promise<any> {
return this.send("POST", "/accounts/iap-check", request, true, false);
}
postReinstatePremium(): Promise<any> { postReinstatePremium(): Promise<any> {
return this.send("POST", "/accounts/reinstate-premium", null, true, false); return this.send("POST", "/accounts/reinstate-premium", null, true, false);
} }