Files
modstagram-back/utils/authSteps.js
payacom 3f416a7a60 full
2026-08-31 20:45:41 +03:30

64 lines
1.7 KiB
JavaScript

function isGoogleUser (user) {
return user?.auth_provider === 'google' || Boolean(user?.google_id)
}
function isInstagramUser (user) {
return user?.auth_provider === 'instagram' || Boolean(user?.instagram_id)
}
/** Social logins (Google, Instagram) skip the mobile-password step — they authenticate via the provider instead. */
function isSocialUser (user) {
return isGoogleUser(user) || isInstagramUser(user)
}
function isBasicRegistrationComplete (user) {
const hasPassword = isSocialUser(user) || Boolean(user?.password)
return Boolean(
user?.user_name &&
hasPassword &&
user?.first_name &&
user?.user_type
)
}
function getRegistrationStep (user) {
if (!user?.user_name) return 'user_name'
if (!isSocialUser(user) && !user.password) return 'password'
if (!user.first_name) return 'first_name'
if (!user.user_type) return 'registration_choice'
return 'complete'
}
function isRegistrationIncomplete (user) {
return !isBasicRegistrationComplete(user)
}
function buildAuthResponse (user, token) {
const step = getRegistrationStep(user)
const incomplete = isRegistrationIncomplete(user)
return {
message: 'ورود با موفقیت',
token,
step,
auth_provider:
user.auth_provider ||
(user.google_id ? 'google' : user.instagram_id ? 'instagram' : 'mobile'),
email: user.email || null,
id: user._id != null ? String(user._id) : undefined,
page: incomplete ? 'auth-page' : 'home',
user_type: incomplete ? null : user.user_type,
registrationComplete: !incomplete,
}
}
module.exports = {
isGoogleUser,
isInstagramUser,
isSocialUser,
isBasicRegistrationComplete,
getRegistrationStep,
isRegistrationIncomplete,
buildAuthResponse
}