Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: tenantid in config functions #627

Merged
merged 15 commits into from
Jul 7, 2023
Original file line number Diff line number Diff line change
@@ -1,25 +1,13 @@
// @ts-nocheck
import { TypeEmailPasswordEmailDeliveryInput, User, RecipeInterface } from "../../../types";
import { TypeEmailPasswordEmailDeliveryInput, RecipeInterface } from "../../../types";
import { NormalisedAppinfo } from "../../../../../types";
import { EmailDeliveryInterface } from "../../../../../ingredients/emaildelivery/types";
export default class BackwardCompatibilityService
implements EmailDeliveryInterface<TypeEmailPasswordEmailDeliveryInput> {
private recipeInterfaceImpl;
private isInServerlessEnv;
private appInfo;
private resetPasswordUsingTokenFeature;
constructor(
recipeInterfaceImpl: RecipeInterface,
appInfo: NormalisedAppinfo,
isInServerlessEnv: boolean,
resetPasswordUsingTokenFeature?: {
createAndSendCustomEmail?: (
user: User,
passwordResetURLWithToken: string,
userContext: any
) => Promise<void>;
}
);
constructor(recipeInterfaceImpl: RecipeInterface, appInfo: NormalisedAppinfo, isInServerlessEnv: boolean);
sendEmail: (
input: TypeEmailPasswordEmailDeliveryInput & {
userContext: any;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ var __awaiter =
Object.defineProperty(exports, "__esModule", { value: true });
const passwordResetFunctions_1 = require("../../../passwordResetFunctions");
class BackwardCompatibilityService {
constructor(recipeInterfaceImpl, appInfo, isInServerlessEnv, resetPasswordUsingTokenFeature) {
constructor(recipeInterfaceImpl, appInfo, isInServerlessEnv) {
this.sendEmail = (input) =>
__awaiter(this, void 0, void 0, function* () {
let user = yield this.recipeInterfaceImpl.getUserById({
Expand All @@ -49,36 +49,22 @@ class BackwardCompatibilityService {
user.email = input.user.email;
try {
if (!this.isInServerlessEnv) {
this.resetPasswordUsingTokenFeature
.createAndSendCustomEmail(user, input.passwordResetLink, input.userContext)
passwordResetFunctions_1
.createAndSendEmailUsingSupertokensService(this.appInfo, user, input.passwordResetLink)
.catch((_) => {});
} else {
// see https://github.com/supertokens/supertokens-node/pull/135
yield this.resetPasswordUsingTokenFeature.createAndSendCustomEmail(
yield passwordResetFunctions_1.createAndSendEmailUsingSupertokensService(
this.appInfo,
user,
input.passwordResetLink,
input.userContext
input.passwordResetLink
);
}
} catch (_) {}
});
this.recipeInterfaceImpl = recipeInterfaceImpl;
this.isInServerlessEnv = isInServerlessEnv;
this.appInfo = appInfo;
{
let inputCreateAndSendCustomEmail =
resetPasswordUsingTokenFeature === null || resetPasswordUsingTokenFeature === void 0
? void 0
: resetPasswordUsingTokenFeature.createAndSendCustomEmail;
this.resetPasswordUsingTokenFeature =
inputCreateAndSendCustomEmail !== undefined
? {
createAndSendCustomEmail: inputCreateAndSendCustomEmail,
}
: {
createAndSendCustomEmail: passwordResetFunctions_1.createAndSendCustomEmail(this.appInfo),
};
}
}
}
exports.default = BackwardCompatibilityService;
8 changes: 5 additions & 3 deletions lib/build/recipe/emailpassword/passwordResetFunctions.d.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
// @ts-nocheck
import { User } from "./types";
import { NormalisedAppinfo } from "../../types";
export declare function createAndSendCustomEmail(
appInfo: NormalisedAppinfo
): (user: User, passwordResetURLWithToken: string) => Promise<void>;
export declare function createAndSendEmailUsingSupertokensService(
appInfo: NormalisedAppinfo,
user: User,
passwordResetURLWithToken: string
): Promise<void>;
89 changes: 44 additions & 45 deletions lib/build/recipe/emailpassword/passwordResetFunctions.js
Original file line number Diff line number Diff line change
Expand Up @@ -50,56 +50,55 @@ var __importDefault =
return mod && mod.__esModule ? mod : { default: mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.createAndSendCustomEmail = void 0;
exports.createAndSendEmailUsingSupertokensService = void 0;
const axios_1 = __importDefault(require("axios"));
const logger_1 = require("../../logger");
function createAndSendCustomEmail(appInfo) {
return (user, passwordResetURLWithToken) =>
__awaiter(this, void 0, void 0, function* () {
// related issue: https://github.com/supertokens/supertokens-node/issues/38
if (process.env.TEST_MODE === "testing") {
return;
function createAndSendEmailUsingSupertokensService(appInfo, user, passwordResetURLWithToken) {
return __awaiter(this, void 0, void 0, function* () {
// related issue: https://github.com/supertokens/supertokens-node/issues/38
if (process.env.TEST_MODE === "testing") {
return;
}
try {
yield axios_1.default({
method: "POST",
url: "https://api.supertokens.io/0/st/auth/password/reset",
data: {
email: user.email,
appName: appInfo.appName,
passwordResetURL: passwordResetURLWithToken,
},
headers: {
"api-version": 0,
},
});
logger_1.logDebugMessage(`Password reset email sent to ${user.email}`);
} catch (error) {
logger_1.logDebugMessage("Error sending password reset email");
if (axios_1.default.isAxiosError(error)) {
const err = error;
if (err.response) {
logger_1.logDebugMessage(`Error status: ${err.response.status}`);
logger_1.logDebugMessage(`Error response: ${JSON.stringify(err.response.data)}`);
} else {
logger_1.logDebugMessage(`Error: ${err.message}`);
}
} else {
logger_1.logDebugMessage(`Error: ${JSON.stringify(error)}`);
}
try {
yield axios_1.default({
method: "POST",
url: "https://api.supertokens.io/0/st/auth/password/reset",
data: {
logger_1.logDebugMessage("Logging the input below:");
logger_1.logDebugMessage(
JSON.stringify(
{
email: user.email,
appName: appInfo.appName,
passwordResetURL: passwordResetURLWithToken,
},
headers: {
"api-version": 0,
},
});
logger_1.logDebugMessage(`Password reset email sent to ${user.email}`);
} catch (error) {
logger_1.logDebugMessage("Error sending password reset email");
if (axios_1.default.isAxiosError(error)) {
const err = error;
if (err.response) {
logger_1.logDebugMessage(`Error status: ${err.response.status}`);
logger_1.logDebugMessage(`Error response: ${JSON.stringify(err.response.data)}`);
} else {
logger_1.logDebugMessage(`Error: ${err.message}`);
}
} else {
logger_1.logDebugMessage(`Error: ${JSON.stringify(error)}`);
}
logger_1.logDebugMessage("Logging the input below:");
logger_1.logDebugMessage(
JSON.stringify(
{
email: user.email,
appName: appInfo.appName,
passwordResetURL: passwordResetURLWithToken,
},
null,
2
)
);
}
});
null,
2
)
);
}
});
}
exports.createAndSendCustomEmail = createAndSendCustomEmail;
exports.createAndSendEmailUsingSupertokensService = createAndSendEmailUsingSupertokensService;
6 changes: 2 additions & 4 deletions lib/build/recipe/emailpassword/utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -76,10 +76,8 @@ function validateAndNormaliseUserInput(recipeInstance, appInfo, config) {
: _a.service;
/**
* following code is for backward compatibility.
* if user has not passed emailDelivery config, we
* use the createAndSendCustomEmail config. If the user
* has not passed even that config, we use the default
* createAndSendCustomEmail implementation which calls our supertokens API
* if user has not passed emailDelivery config, we use the default
* createAndSendEmailUsingSupertokensService implementation which calls our supertokens API
*/
if (emailService === undefined) {
emailService = new backwardCompatibility_1.default(recipeImpl, appInfo, isInServerlessEnv);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
// @ts-nocheck
import { User } from "./types";
import { NormalisedAppinfo } from "../../types";
export declare function createAndSendCustomEmail(
appInfo: NormalisedAppinfo
): (user: User, emailVerifyURLWithToken: string) => Promise<void>;
export declare function createAndSendEmailUsingSupertokensService(
appInfo: NormalisedAppinfo,
user: User,
emailVerifyURLWithToken: string
): Promise<void>;
87 changes: 43 additions & 44 deletions lib/build/recipe/emailverification/emailVerificationFunctions.js
Original file line number Diff line number Diff line change
Expand Up @@ -50,55 +50,54 @@ var __importDefault =
return mod && mod.__esModule ? mod : { default: mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.createAndSendCustomEmail = void 0;
exports.createAndSendEmailUsingSupertokensService = void 0;
const axios_1 = __importDefault(require("axios"));
const logger_1 = require("../../logger");
function createAndSendCustomEmail(appInfo) {
return (user, emailVerifyURLWithToken) =>
__awaiter(this, void 0, void 0, function* () {
if (process.env.TEST_MODE === "testing") {
return;
function createAndSendEmailUsingSupertokensService(appInfo, user, emailVerifyURLWithToken) {
return __awaiter(this, void 0, void 0, function* () {
if (process.env.TEST_MODE === "testing") {
return;
}
try {
yield axios_1.default({
method: "POST",
url: "https://api.supertokens.io/0/st/auth/email/verify",
data: {
email: user.email,
appName: appInfo.appName,
emailVerifyURL: emailVerifyURLWithToken,
},
headers: {
"api-version": 0,
},
});
logger_1.logDebugMessage(`Email sent to ${user.email}`);
} catch (error) {
logger_1.logDebugMessage("Error sending verification email");
if (axios_1.default.isAxiosError(error)) {
const err = error;
if (err.response) {
logger_1.logDebugMessage(`Error status: ${err.response.status}`);
logger_1.logDebugMessage(`Error response: ${JSON.stringify(err.response.data)}`);
} else {
logger_1.logDebugMessage(`Error: ${err.message}`);
}
} else {
logger_1.logDebugMessage(`Error: ${JSON.stringify(error)}`);
}
try {
yield axios_1.default({
method: "POST",
url: "https://api.supertokens.io/0/st/auth/email/verify",
data: {
logger_1.logDebugMessage("Logging the input below:");
logger_1.logDebugMessage(
JSON.stringify(
{
email: user.email,
appName: appInfo.appName,
emailVerifyURL: emailVerifyURLWithToken,
},
headers: {
"api-version": 0,
},
});
logger_1.logDebugMessage(`Email sent to ${user.email}`);
} catch (error) {
logger_1.logDebugMessage("Error sending verification email");
if (axios_1.default.isAxiosError(error)) {
const err = error;
if (err.response) {
logger_1.logDebugMessage(`Error status: ${err.response.status}`);
logger_1.logDebugMessage(`Error response: ${JSON.stringify(err.response.data)}`);
} else {
logger_1.logDebugMessage(`Error: ${err.message}`);
}
} else {
logger_1.logDebugMessage(`Error: ${JSON.stringify(error)}`);
}
logger_1.logDebugMessage("Logging the input below:");
logger_1.logDebugMessage(
JSON.stringify(
{
email: user.email,
appName: appInfo.appName,
emailVerifyURL: emailVerifyURLWithToken,
},
null,
2
)
);
}
});
null,
2
)
);
}
});
}
exports.createAndSendCustomEmail = createAndSendCustomEmail;
exports.createAndSendEmailUsingSupertokensService = createAndSendEmailUsingSupertokensService;
Original file line number Diff line number Diff line change
@@ -1,21 +1,12 @@
// @ts-nocheck
import { TypeEmailVerificationEmailDeliveryInput, User } from "../../../types";
import { TypeEmailVerificationEmailDeliveryInput } from "../../../types";
import { NormalisedAppinfo } from "../../../../../types";
import { EmailDeliveryInterface } from "../../../../../ingredients/emaildelivery/types";
export default class BackwardCompatibilityService
implements EmailDeliveryInterface<TypeEmailVerificationEmailDeliveryInput> {
private appInfo;
private isInServerlessEnv;
private createAndSendCustomEmail;
constructor(
appInfo: NormalisedAppinfo,
isInServerlessEnv: boolean,
createAndSendCustomEmail?: (
user: User,
emailVerificationURLWithToken: string,
userContext: any
) => Promise<void>
);
constructor(appInfo: NormalisedAppinfo, isInServerlessEnv: boolean);
sendEmail: (
input: TypeEmailVerificationEmailDeliveryInput & {
userContext: any;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,28 +33,26 @@ var __awaiter =
Object.defineProperty(exports, "__esModule", { value: true });
const emailVerificationFunctions_1 = require("../../../emailVerificationFunctions");
class BackwardCompatibilityService {
constructor(appInfo, isInServerlessEnv, createAndSendCustomEmail) {
constructor(appInfo, isInServerlessEnv) {
this.sendEmail = (input) =>
__awaiter(this, void 0, void 0, function* () {
try {
if (!this.isInServerlessEnv) {
this.createAndSendCustomEmail(
input.user,
input.emailVerifyLink,
input.userContext
).catch((_) => {});
emailVerificationFunctions_1
.createAndSendEmailUsingSupertokensService(this.appInfo, input.user, input.emailVerifyLink)
.catch((_) => {});
} else {
// see https://github.com/supertokens/supertokens-node/pull/135
yield this.createAndSendCustomEmail(input.user, input.emailVerifyLink, input.userContext);
yield emailVerificationFunctions_1.createAndSendEmailUsingSupertokensService(
this.appInfo,
input.user,
input.emailVerifyLink
);
}
} catch (_) {}
});
this.appInfo = appInfo;
this.isInServerlessEnv = isInServerlessEnv;
this.createAndSendCustomEmail =
createAndSendCustomEmail === undefined
? emailVerificationFunctions_1.createAndSendCustomEmail(this.appInfo)
: createAndSendCustomEmail;
}
}
exports.default = BackwardCompatibilityService;
6 changes: 2 additions & 4 deletions lib/build/recipe/emailverification/utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,8 @@ function validateAndNormaliseUserInput(_, appInfo, config) {
let emailService = (_a = config.emailDelivery) === null || _a === void 0 ? void 0 : _a.service;
/**
* following code is for backward compatibility.
* if user has not passed emailDelivery config, we
* use the createAndSendCustomEmail config. If the user
* has not passed even that config, we use the default
* createAndSendCustomEmail implementation which calls our supertokens API
* if user has not passed emailDelivery config, we use the default
* createAndSendEmailUsingSupertokensService implementation which calls our supertokens API
*/
if (emailService === undefined) {
emailService = new backwardCompatibility_1.default(appInfo, isInServerlessEnv);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { EmailDeliveryInterface } from "../../../../../ingredients/emaildelivery
import { NormalisedAppinfo } from "../../../../../types";
export default class BackwardCompatibilityService
implements EmailDeliveryInterface<TypePasswordlessEmailDeliveryInput> {
private createAndSendCustomEmail;
private appInfo;
constructor(appInfo: NormalisedAppinfo);
sendEmail: (
input: TypePasswordlessEmailDeliveryInput & {
Expand Down
Loading
Loading