UNPKG

@zimpligital/medusa-plugin-auth-otp

Version:
74 lines 5.96 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.POST = void 0; const utils_1 = require("@medusajs/framework/utils"); const POST = async (req, res) => { const customer_id = req.auth_context.actor_id; const phone = req.validatedBody.phone; const customerService = req.scope.resolve(utils_1.Modules.CUSTOMER); const logger = req.scope.resolve('logger'); try { const customer = await customerService.retrieveCustomer(customer_id); const customer_phone = customer?.phone || ''; // Check if the user already has a provider identity for 'auth-otp' with their current phone const authService = req.scope.resolve(utils_1.Modules.AUTH); const [provider] = await authService.listProviderIdentities({ provider: 'auth-otp', entity_id: customer_phone }); // If provider identity exists, update it with the new phone number if (provider) { // Update provider identity's phone fields await authService.updateProviderIdentities([ { id: provider.id, entity_id: phone, user_metadata: { phone }, provider_metadata: { phone } } ]); // Update the phone number in the customer profile await customerService.updateCustomers(customer_id, { phone, metadata: { last_phone_updated_at: new Date().toISOString(), } }); return res.status(200).json({ success: true, message: "Phone number updated successfully" }); } // If no provider identity exists, create a new one for 'auth-otp' with the new phone number const [authIdentity] = await authService.listAuthIdentities({ app_metadata: { customer_id } }); // Create a new provider identity linked to the user's auth identity await authService.createProviderIdentities([ { provider: "auth-otp", auth_identity_id: authIdentity.id, entity_id: phone, user_metadata: { phone }, provider_metadata: { phone } } ]); // Update the phone number in the customer profile await customerService.updateCustomers(customer_id, { phone, metadata: { last_phone_updated_at: new Date().toISOString(), } }); return res.status(200).json({ success: true, message: "Phone number updated successfully" }); } catch (error) { logger.error('Error updating phone number', error); return res.status(422).json({ success: false, message: `Unable to update phone number: ${error?.message}` }); } }; exports.POST = POST; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2F1dGgvY3VzdG9tZXIvYXV0aC1vdHAvdXBkYXRlL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUtBLHFEQUFvRDtBQUc3QyxNQUFNLElBQUksR0FBRyxLQUFLLEVBQ3hCLEdBQWdELEVBQ2hELEdBQW1CLEVBQ2xCLEVBQUU7SUFFSCxNQUFNLFdBQVcsR0FBRyxHQUFHLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQTtJQUM3QyxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztJQUV0QyxNQUFNLGVBQWUsR0FBMkIsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsZUFBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3BGLE1BQU0sTUFBTSxHQUFXLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRW5ELElBQUksQ0FBQztRQUNKLE1BQU0sUUFBUSxHQUFHLE1BQU0sZUFBZSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBQ3BFLE1BQU0sY0FBYyxHQUFHLFFBQVEsRUFBRSxLQUFLLElBQUksRUFBRSxDQUFDO1FBRTdDLDRGQUE0RjtRQUM1RixNQUFNLFdBQVcsR0FBdUIsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsZUFBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hFLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxNQUFNLFdBQVcsQ0FBQyxzQkFBc0IsQ0FBQztZQUMzRCxRQUFRLEVBQUUsVUFBVTtZQUNwQixTQUFTLEVBQUUsY0FBYztTQUN6QixDQUFDLENBQUE7UUFHRixtRUFBbUU7UUFDbkUsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNkLDBDQUEwQztZQUMxQyxNQUFNLFdBQVcsQ0FBQyx3QkFBd0IsQ0FBQztnQkFDMUM7b0JBQ0MsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFO29CQUNmLFNBQVMsRUFBRSxLQUFLO29CQUNoQixhQUFhLEVBQUUsRUFBRSxLQUFLLEVBQUU7b0JBQ3hCLGlCQUFpQixFQUFFLEVBQUUsS0FBSyxFQUFFO2lCQUM1QjthQUNELENBQUMsQ0FBQTtZQUNGLGtEQUFrRDtZQUNsRCxNQUFNLGVBQWUsQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFO2dCQUNsRCxLQUFLO2dCQUNMLFFBQVEsRUFBRTtvQkFDVCxxQkFBcUIsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRTtpQkFDL0M7YUFDRCxDQUFDLENBQUE7WUFDRixPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsQ0FBQyxDQUFDO1FBQzlGLENBQUM7UUFFRCw0RkFBNEY7UUFDNUYsTUFBTSxDQUFDLFlBQVksQ0FBQyxHQUFHLE1BQU0sV0FBVyxDQUFDLGtCQUFrQixDQUFDO1lBQzNELFlBQVksRUFBRTtnQkFDYixXQUFXO2FBQ1g7U0FDRCxDQUFDLENBQUE7UUFFRixvRUFBb0U7UUFDcEUsTUFBTSxXQUFXLENBQUMsd0JBQXdCLENBQUM7WUFDMUM7Z0JBQ0MsUUFBUSxFQUFFLFVBQVU7Z0JBQ3BCLGdCQUFnQixFQUFFLFlBQVksQ0FBQyxFQUFFO2dCQUNqQyxTQUFTLEVBQUUsS0FBSztnQkFDaEIsYUFBYSxFQUFFO29CQUNkLEtBQUs7aUJBQ0w7Z0JBQ0QsaUJBQWlCLEVBQUU7b0JBQ2xCLEtBQUs7aUJBQ0w7YUFDRDtTQUNELENBQUMsQ0FBQTtRQUVGLGtEQUFrRDtRQUNsRCxNQUFNLGVBQWUsQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFO1lBQ2xELEtBQUs7WUFDTCxRQUFRLEVBQUU7Z0JBQ1QscUJBQXFCLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUU7YUFDL0M7U0FDRCxDQUFDLENBQUE7UUFFRixPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsQ0FBQyxDQUFDO0lBQzlGLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2hCLE1BQU0sQ0FBQyxLQUFLLENBQUMsNkJBQTZCLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDbkQsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLGtDQUFrQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzlHLENBQUM7QUFDRixDQUFDLENBQUM7QUEvRVcsUUFBQSxJQUFJLFFBK0VmIn0=