@greenpress/auth
Version:
Express Passport authentication service
76 lines (75 loc) • 2.32 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.tokenPayload = exports.validateSignInForm = exports.validateSignUpForm = void 0;
const { validateBasicSignInSignUpForm, } = require("../../helpers/form-validations");
const { setCookie } = require("../services/tokens");
/**
* Validate the sign up form
*
* @param {object} payload - the HTTP body message
* @returns {object} The result of validation. Object contains a boolean validation result,
* errors tips, and a global message for the whole form.
*/
function validateSignUpForm(payload) {
const errors = validateBasicSignInSignUpForm(payload);
if (!payload ||
typeof payload.name !== "string" ||
!/^[a-zA-Z]+([\-\s]?[a-zA-Z]+)*$/.test(payload.name.trim())) {
errors.name = {
code: "INVALID_NAME",
};
}
if (!payload ||
typeof payload.password !== "string" ||
payload.password.trim().length < 8) {
errors.password = {
code: "INVALID_PASSWORD",
};
}
return errors;
}
exports.validateSignUpForm = validateSignUpForm;
/**
* Validate the login form
*
* @param {object} payload - the HTTP body message
* @returns {object} The result of validation. Object contains a boolean validation result,
* errors tips, and a global message for the whole form.
*/
function validateSignInForm(payload) {
const errors = validateBasicSignInSignUpForm(payload);
if (!payload ||
typeof payload.password !== "string" ||
payload.password.trim().length === 0) {
errors.password = {
code: "EMPTY_PASSWORD",
};
}
return errors;
}
exports.validateSignInForm = validateSignInForm;
function tokenPayload(res, data) {
const { token, refreshToken, cookieToken, user } = data;
if (cookieToken) {
res = setCookie(res, cookieToken);
return res
.status(200)
.json({
payload: { user },
})
.end();
}
else {
return res
.status(200)
.json({
payload: {
token,
refreshToken,
user,
},
})
.end();
}
}
exports.tokenPayload = tokenPayload;