refactor: Refactor email verification and payment functions with error handling and validation
- Improve email verification functionality - Refactor checkEmailVerified to return typed object with verified and email properties - Add error handling to checkEmailVerified for failed response and invalid data structure or values - Improve error handling and validation in alchemyPrePay function - Change alchemyPrePay function to open web page instead of URL
This commit is contained in:
parent
91c7b9b940
commit
bf4875bf19
@ -8,16 +8,28 @@ export class EmailVerifySvr {
|
|||||||
* Checks if the user's email is verified
|
* Checks if the user's email is verified
|
||||||
* @returns an object containing the verification status and the user's email
|
* @returns an object containing the verification status and the user's email
|
||||||
*/
|
*/
|
||||||
public async checkEmailVerified() {
|
public async checkEmailVerified(): Promise<{
|
||||||
|
verified: number;
|
||||||
|
email: string | null;
|
||||||
|
}> {
|
||||||
let res = await isEmailVerified();
|
let res = await isEmailVerified();
|
||||||
let verified = 0;
|
if (res.errcode) {
|
||||||
let email = "";
|
throw new Error("Failed to fetch email verification status"); //Throw error if call to the checking function fails
|
||||||
if (!res.errcode) {
|
|
||||||
verified = res.data.verified;
|
|
||||||
email = res.data?.email;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const { data } = res;
|
||||||
|
if (!data) {
|
||||||
|
throw new Error("Invalid response from the server"); //Throw error if the expected data structure is missing
|
||||||
|
}
|
||||||
|
|
||||||
|
const { verified, email } = data;
|
||||||
|
if (!email || typeof verified !== "number") {
|
||||||
|
throw new Error("Invalid values returned from server"); //Throw error if the data doesn't have the expected types or values
|
||||||
|
}
|
||||||
|
|
||||||
return { verified, email };
|
return { verified, email };
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Begins the process of verifying the user's email
|
* Begins the process of verifying the user's email
|
||||||
* @param email - the email to be verified
|
* @param email - the email to be verified
|
||||||
|
@ -10,6 +10,19 @@ export class PaySvr {
|
|||||||
* @returns The result of the alchemyPrePay function.
|
* @returns The result of the alchemyPrePay function.
|
||||||
*/
|
*/
|
||||||
public async alchemyPrePay(data: IPayData) {
|
public async alchemyPrePay(data: IPayData) {
|
||||||
return alchemyPrePay(data);
|
let res = await alchemyPrePay(data);
|
||||||
|
if (res.errcode) {
|
||||||
|
throw new Error(res.errmsg);
|
||||||
|
}
|
||||||
|
if (!res.data) {
|
||||||
|
throw new Error("No data returned");
|
||||||
|
}
|
||||||
|
const url = res.data.url;
|
||||||
|
if (!url) {
|
||||||
|
throw new Error("No url returned");
|
||||||
|
}
|
||||||
|
jsb.showWebPage(url);
|
||||||
|
// jsb.openURL(url);
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user