@zimpligital/medusa-plugin-auth-otp
Version:
A starter for Medusa plugins.
84 lines • 5.75 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.createAuthIdentityStep = void 0;
const utils_1 = require("@medusajs/framework/utils");
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
const auth_otp_1 = require("../../../modules/auth-otp");
exports.createAuthIdentityStep = (0, workflows_sdk_1.createStep)("create-auth-identity-step", async (input, { container }) => {
const authService = container.resolve(utils_1.Modules.AUTH);
const authOTPService = container.resolve(auth_otp_1.AUTH_OTP_MODULE_SERVICE);
const token = await authOTPService.generateJwtToken({
phone: input.phone,
});
const [authOtpAuthIdentity] = await authService.listAuthIdentities({
provider_identities: {
provider: "auth-otp",
entity_id: input.phone,
},
}, {
take: 1,
});
if (authOtpAuthIdentity) {
return new workflows_sdk_1.StepResponse({
authIdentity: authOtpAuthIdentity,
token,
});
}
// check if auth_identity with customer_id already exists
const customerAuthIdentity = input.customer_id
? await authService
.listAuthIdentities({
app_metadata: {
customer_id: input.customer_id,
},
}, {
take: 1,
})
.then((authIdentities) => authIdentities[0])
: null;
// auth_identity with customer_id already exists
let authIdentity = customerAuthIdentity;
// auth_identity with customer_id doesn't exists
if (!customerAuthIdentity) {
authIdentity = await authService.createAuthIdentities({
provider_identities: [
{
provider: "auth-otp",
entity_id: input.phone,
user_metadata: {
phone: input.phone,
},
provider_metadata: {
phone: input.phone,
},
},
],
});
// Only update when a new auth identity is created
const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
const { data: [customerWithPhone], } = await query.graph({
entity: "customer",
filters: {
phone: input.phone,
has_account: true,
},
fields: ["*"],
pagination: {
take: 1,
},
});
if (customerWithPhone && authIdentity) {
await authService.updateAuthIdentities({
id: authIdentity.id,
app_metadata: {
customer_id: customerWithPhone.id,
},
});
}
}
return new workflows_sdk_1.StepResponse({
authIdentity,
token,
});
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWF1dGgtaWRlbnRpdHktc3RlcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvcmVxdWVzdC1vdHAtd29ya2Zsb3cvc3RlcHMvY3JlYXRlLWF1dGgtaWRlbnRpdHktc3RlcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxREFBK0U7QUFDL0UscUVBQTZFO0FBQzdFLHdEQUFvRTtBQVN2RCxRQUFBLHNCQUFzQixHQUFHLElBQUEsMEJBQVUsRUFDL0MsMkJBQTJCLEVBQzNCLEtBQUssRUFBRSxLQUFrQyxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRTtJQUMzRCxNQUFNLFdBQVcsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLGVBQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwRCxNQUFNLGNBQWMsR0FBeUIsU0FBUyxDQUFDLE9BQU8sQ0FDN0Qsa0NBQXVCLENBQ3ZCLENBQUM7SUFFRixNQUFNLEtBQUssR0FBRyxNQUFNLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQztRQUNuRCxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7S0FDbEIsQ0FBQyxDQUFDO0lBRUgsTUFBTSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsTUFBTSxXQUFXLENBQUMsa0JBQWtCLENBQ2pFO1FBQ0MsbUJBQW1CLEVBQUU7WUFDcEIsUUFBUSxFQUFFLFVBQVU7WUFDcEIsU0FBUyxFQUFFLEtBQUssQ0FBQyxLQUFLO1NBQ3RCO0tBQ0QsRUFDRDtRQUNDLElBQUksRUFBRSxDQUFDO0tBQ1AsQ0FDRCxDQUFDO0lBQ0YsSUFBSSxtQkFBbUIsRUFBRSxDQUFDO1FBQ3pCLE9BQU8sSUFBSSw0QkFBWSxDQUFDO1lBQ3ZCLFlBQVksRUFBRSxtQkFBbUI7WUFDakMsS0FBSztTQUNMLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCx5REFBeUQ7SUFDekQsTUFBTSxvQkFBb0IsR0FBRyxLQUFLLENBQUMsV0FBVztRQUM3QyxDQUFDLENBQUMsTUFBTSxXQUFXO2FBQ2pCLGtCQUFrQixDQUNsQjtZQUNDLFlBQVksRUFBRTtnQkFDYixXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7YUFDOUI7U0FDRCxFQUNEO1lBQ0MsSUFBSSxFQUFFLENBQUM7U0FDUCxDQUNEO2FBQ0EsSUFBSSxDQUFDLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0MsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUVSLGdEQUFnRDtJQUNoRCxJQUFJLFlBQVksR0FBRyxvQkFBb0IsQ0FBQztJQUV4QyxnREFBZ0Q7SUFDaEQsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDM0IsWUFBWSxHQUFHLE1BQU0sV0FBVyxDQUFDLG9CQUFvQixDQUFDO1lBQ3JELG1CQUFtQixFQUFFO2dCQUNwQjtvQkFDQyxRQUFRLEVBQUUsVUFBVTtvQkFDcEIsU0FBUyxFQUFFLEtBQUssQ0FBQyxLQUFLO29CQUN0QixhQUFhLEVBQUU7d0JBQ2QsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLO3FCQUNsQjtvQkFDRCxpQkFBaUIsRUFBRTt3QkFDbEIsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLO3FCQUNsQjtpQkFDRDthQUNEO1NBQ0QsQ0FBQyxDQUFDO1FBRUgsa0RBQWtEO1FBQ2xELE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakUsTUFBTSxFQUNMLElBQUksRUFBRSxDQUFDLGlCQUFpQixDQUFDLEdBQ3pCLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1lBQ3JCLE1BQU0sRUFBRSxVQUFVO1lBQ2xCLE9BQU8sRUFBRTtnQkFDUixLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7Z0JBQ2xCLFdBQVcsRUFBRSxJQUFJO2FBQ2pCO1lBQ0QsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDO1lBQ2IsVUFBVSxFQUFFO2dCQUNYLElBQUksRUFBRSxDQUFDO2FBQ1A7U0FDRCxDQUFDLENBQUM7UUFFSCxJQUFJLGlCQUFpQixJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ3ZDLE1BQU0sV0FBVyxDQUFDLG9CQUFvQixDQUFDO2dCQUN0QyxFQUFFLEVBQUUsWUFBWSxDQUFDLEVBQUU7Z0JBQ25CLFlBQVksRUFBRTtvQkFDYixXQUFXLEVBQUUsaUJBQWlCLENBQUMsRUFBRTtpQkFDakM7YUFDRCxDQUFDLENBQUM7UUFDSixDQUFDO0lBQ0YsQ0FBQztJQUdELE9BQU8sSUFBSSw0QkFBWSxDQUFDO1FBQ3ZCLFlBQVk7UUFDWixLQUFLO0tBQ0wsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUNELENBQUMifQ==