@zimpligital/medusa-plugin-auth-otp
Version:
A starter for Medusa plugins.
77 lines • 6.29 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.checkCustomerAndCreateStep = void 0;
const utils_1 = require("@medusajs/framework/utils");
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
const generateFakeEmail = (phone) => {
const random10String = Array.from({ length: 10 }, () => String.fromCharCode(97 + Math.floor(Math.random() * 26))).join('');
const email = `${phone}-${random10String}@email.com`;
return email;
};
exports.checkCustomerAndCreateStep = (0, workflows_sdk_1.createStep)('check-customer-and-create-step', async (input, { container }) => {
const authService = container.resolve(utils_1.Modules.AUTH);
const customerService = container.resolve(utils_1.Modules.CUSTOMER);
const otpRequest = input.otp_request;
const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
if (input.customer_id) {
const customerAuthIdentity = await authService
.listAuthIdentities({
app_metadata: {
customer_id: input.customer_id,
},
}, { take: 1 })
.then((authIdentities) => authIdentities[0]);
const { data: [customerById], } = await query.graph({
entity: 'customer',
filters: {
id: input.customer_id,
},
fields: ['*'],
});
return new workflows_sdk_1.StepResponse({
auth_identity: customerAuthIdentity,
customer: customerById,
is_new_account: false,
});
}
const [authIdentity] = await authService.listAuthIdentities({
provider_identities: {
entity_id: otpRequest.phone,
provider: 'auth-otp',
},
});
if (!authIdentity) {
throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_FOUND, `Auth identity not found for phone: ${otpRequest.phone}`);
}
const { data: [customerWithPhone], } = await query.graph({
entity: 'customer',
filters: {
phone: otpRequest.phone,
has_account: true,
},
fields: ['*'],
});
if (!customerWithPhone) {
const email = generateFakeEmail(otpRequest.phone);
const newCustomer = await customerService.createCustomers({
phone: otpRequest.phone,
email,
has_account: true,
first_name: otpRequest.phone,
metadata: {
country_code: otpRequest.country_code,
},
});
return new workflows_sdk_1.StepResponse({
customer: newCustomer,
auth_identity: authIdentity,
is_new_account: true,
});
}
return new workflows_sdk_1.StepResponse({
auth_identity: authIdentity,
customer: customerWithPhone,
is_new_account: false,
});
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2stY3VzdG9tZXItYW5kLWNyZWF0ZS1zdGVwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy92ZXJpZnktb3RwLXdvcmtmbG93L3N0ZXBzL2NoZWNrLWN1c3RvbWVyLWFuZC1jcmVhdGUtc3RlcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxREFJbUM7QUFDbkMscUVBQTZFO0FBRzdFLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxLQUFhLEVBQUUsRUFBRTtJQUMzQyxNQUFNLGNBQWMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUN0RCxNQUFNLENBQUMsWUFBWSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUN4RCxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUVYLE1BQU0sS0FBSyxHQUFHLEdBQUcsS0FBSyxJQUFJLGNBQWMsWUFBWSxDQUFDO0lBQ3JELE9BQU8sS0FBSyxDQUFDO0FBQ2QsQ0FBQyxDQUFDO0FBRVcsUUFBQSwwQkFBMEIsR0FBRyxJQUFBLDBCQUFVLEVBQ25ELGdDQUFnQyxFQUNoQyxLQUFLLEVBQUUsS0FBd0QsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUU7SUFDakYsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxlQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEQsTUFBTSxlQUFlLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxlQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDNUQsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQztJQUNyQyxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLEtBQUss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