irest-app-test
Version:
iRest simulator application tooling and scripts - Backend
5 lines • 3.74 kB
JavaScript
;var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:!0}),exports["default"]=register;var _messages=require("../../../constants/messages"),_responseHelper=_interopRequireDefault(require("../../../helpers/responseHelper")),_schemaDefaults=require("../../../constants/schemaDefaults"),_logger=_interopRequireDefault(require("../../../logger")),_sqliteConf=_interopRequireDefault(require("../../../sqliteConf")),_httpStatus=_interopRequireDefault(require("../../../constants/httpStatus")),_generateUuidToken=_interopRequireDefault(require("../../../helpers/generateUuidToken")),_userDepartment=_interopRequireDefault(require("../department/userDepartment")),uniqueId=(0,_generateUuidToken["default"])(),defaultPassword=uniqueId.slice(0,6);function register(a,b){var c=_sqliteConf["default"].Company,d=_sqliteConf["default"].Department,e=a.body,f=e.email.split("@").pop(),g=_schemaDefaults.status.DISABLED;if(e.password||(e.password=defaultPassword),!e.companyId){// individual role id
if((null===e||void 0===e?void 0:e.role)===_schemaDefaults.ROLES.INDIVIDUAL)return e.companyId="DEFAULT",createUser(a,b);// create user when domain exist from signup page
c.findOne({where:{domain:f}}).then(function(c){return c?void d.findOne({where:{companyId:c._id,name:"Default"}}).then(function(d){return d?void(e.departmentIds=[d._id],e.companyId=c._id,e.status=g,e.role=_schemaDefaults.ROLES.SUB_USER,createUser(a,b)):(a.statusCode=_httpStatus["default"].ClientErrorPreconditionFailed,a.responseMessage=_messages.defaultDepartmentErr,(0,_responseHelper["default"])(a,b))}):(a.statusCode=_httpStatus["default"].ClientErrorPreconditionRequired,a.responseMessage=_messages.companyDomainNotExistMsg,(0,_responseHelper["default"])(a,b))})["catch"](function(a){_logger["default"].error(JSON.stringify(a))})}else// create user from company page
c.findByPk(a.body.companyId).then(function(c){if(c&&c.domain===f){var d,e;return null!==(d=a.body)&&void 0!==d&&null!==(d=d.role)&&void 0!==d&&d.includes(_schemaDefaults.ROLES.SUB_USER)&&1<(null===a||void 0===a||null===(e=a.body)||void 0===e||null===(e=e.departmentIds)||void 0===e?void 0:e.length)?(a.statusCode=_httpStatus["default"].ClientErrorPreconditionRequired,a.responseMessage=_messages.multipleDepartmentAssignmentMsg,(0,_responseHelper["default"])(a,b)):createUser(a,b)}// response when domain not exist
return a.statusCode=_httpStatus["default"].ClientErrorPreconditionRequired,a.responseMessage=_messages.domainMismatch,(0,_responseHelper["default"])(a,b)})["catch"](function(a){_logger["default"].error(JSON.stringify(a))})}function createUser(a,b){var c=_sqliteConf["default"].User,d=a.X_ACCESS_TOKEN;c.create(a.body).then(function(c){var e;return(_logger["default"].debug(c),0<(null===a||void 0===a||null===(e=a.body)||void 0===e||null===(e=e.departmentIds)||void 0===e?void 0:e.length))?(a.body.userId=c.id,a.body.email=c.email,a.body.userId=c.id,a.body.paramUserId=c.id,(0,_userDepartment["default"])(a,b)):(a.responseMessage=_messages.userCreationSuccessMessage,a.statusCode=_httpStatus["default"].SuccessCreated,a.responseData=d?{email:c.email,password:defaultPassword,_id:c.id}:{email:c.email,_id:c.id},_logger["default"].debug("Registration successful. Record detail: ".concat(c.id)),(0,_responseHelper["default"])(a,b))})["catch"](function(c){return _logger["default"].error(JSON.stringify(c)),"SequelizeUniqueConstraintError"===c.name?(a.statusCode=_httpStatus["default"].ClientErrorExpectationFailed,a.error=[{code:_httpStatus["default"].ClientErrorExpectationFailed,message:_messages.userExistMessage,field:"email"}],(0,_responseHelper["default"])(a,b)):(0,_responseHelper["default"])(a,b)})}