sheenaCodebrew

Untitled

Jul 24th, 2018
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.04 KB | None | 0 0
  1.  
  2. exports.registerUser = (payload, callbackRegister)=> {
  3. let userId = '',
  4. dataToUpdate = {
  5. "boatDetails.boatImage" : {
  6. original : "",
  7. thumbnail : ""
  8. },
  9. profilePic : {
  10. original : "",
  11. thumbnail : ""
  12. }
  13. },
  14. dataToSet = {
  15. firstName: payload.firstName.replace(/\b./g, (a) => a.toUpperCase()),
  16. lastName: payload.lastName.replace(/\b./g, (a) => a.toUpperCase()),
  17. DOB : payload.DOB,
  18. email: payload.email.toLowerCase(),
  19. countryCode : payload.countryCode,
  20. phoneNumber: payload.phoneNumber,
  21. homeMarina : payload.homeMarina,
  22. homeLake : payload.homeLake,
  23. registeredBy : payload.registeredBy,
  24. deviceDetails: {
  25. deviceType: payload.deviceType,
  26. deviceToken: payload.deviceToken
  27. },
  28. appVersion: payload.appVersion,
  29. registrationDate: new Date(),
  30. boatDetails : {
  31. boatImage : {
  32. original : "",
  33. thumbnail : ""
  34. },
  35. boatName : payload.boatName.replace(/\b./g, (a) => a.toUpperCase()),
  36. boatRegNum : payload.boatRegNum,
  37. year : payload.year,
  38. size : payload.size,
  39. type : payload.type,
  40. bio : payload.bio,
  41. tieUpPreference : payload.tieUpPreference
  42. },
  43. userBio : ""
  44. };
  45.  
  46. if(payload.withoutVessel != undefined) dataToSet.withoutVessel = payload.withoutVessel;
  47.  
  48. if(payload.socialId && payload.socialImageURL != null) {
  49.  
  50. dataToSet.profilePic = {
  51. original: payload.socialImageURL,
  52. thumbnail: payload.socialImageURL
  53. };
  54.  
  55. dataToUpdate.profilePic = {
  56. original: payload.socialImageURL,
  57. thumbnail: payload.socialImageURL
  58. };
  59. }
  60.  
  61. if(payload.userBio) dataToSet.userBio = payload.userBio;
  62.  
  63. if(payload.count) dataToSet.profileMeter = (16 - payload.count) * 6.25;
  64.  
  65. async.auto({
  66. CHECK_REGISTER_WITH_SOCIAL_OR_EMAIL : (callback)=>{
  67. if (payload.socialId) {
  68. dataToSet.socialId = payload.socialId;
  69. callback()
  70. }
  71. else {
  72. util.cryptData(payload.password,(err,result)=>{
  73. if(err) callback(err);
  74. else {
  75. dataToSet.password = result;
  76. callback()
  77. }
  78. });
  79. }
  80. },
  81. GENERATE_OTP : (callback)=>{
  82. util.generateUniqueCode(4, CONSTANTS.USER_TYPE.USER, (err, numberObj)=> {
  83. if (err) callback(err);
  84. else {
  85. if (!numberObj || numberObj.number == null) callback();
  86. else {
  87. // dataToSet.OTPCode = numberObj.number;
  88. dataToSet.OTPCode = 4444;
  89. callback();
  90. }
  91. }
  92. })
  93. },
  94. CHECK_BOAT_REG_NUM : (callback)=>{
  95. if(payload.boatRegNum != "")
  96. {
  97. DAO.getData(Models.user,{"boatDetails.boatRegNum" : payload.boatRegNum},{_id : 1},{lean : true},(err,res)=>{
  98. if(err) callback(err);
  99. else if(res.length == 0) callback(null,res);
  100. else callback(ERROR.BOAT_REG_NUM_ALREADY_EXISTS)
  101. })
  102. }
  103. else callback(null,{})
  104. },
  105. CREATE_USER : ['CHECK_REGISTER_WITH_SOCIAL_OR_EMAIL','GENERATE_OTP','CHECK_BOAT_REG_NUM',(previousData,callback)=>{
  106.  
  107. DAO.saveData(Models.user, dataToSet, (err, res) => {
  108. if (err) {
  109. if (err.code == 11000 && err.message.indexOf('socialId_1') > -1) callback(ERROR.ALREADY_REGISTER);
  110. else if (err.code == 11000 && err.message.indexOf('email_1') > -1) callback(ERROR.USER_ALREADY_REGISTERED);
  111. else if (err.code == 11000 && err.message.indexOf('phoneNumber_1') > -1) callback(ERROR.PHONE_NUMBER_ALREADY_EXISTS);
  112. else callback(err);
  113. }
  114. else {
  115. userId = res._id;
  116. dataToUpdate.accessToken = tokenManager.generateToken({
  117. _id: userId,
  118. timestamp: dataToSet.registrationDate,
  119. userType: CONSTANTS.USER_TYPE.USER
  120. });
  121.  
  122. callback();
  123. }
  124. })
  125. }]
  126. //SEND_SMS : ['GENERATE_OTP','CREATE_USER',(previousResult,callback)=>{
  127. // util.sendSMSToMobile(payload.countryCode,payload.phoneNumber,dataToSend.OTPCode,(err,res)=>
  128. // {
  129. // if(err) callback(ERROR.ENTER_VALID_NUMBER);
  130. // else callback(null,res)
  131. // })
  132. //}],
  133. }, (err,previousResult)=> {
  134. if (err) {
  135. if (userId) {
  136. DAO.remove(Models.user, {_id: userId}, (error, result)=> {
  137. callbackRegister(err);
  138. });
  139. }
  140. else callbackRegister(err);
  141. }
  142. else {
  143. callbackRegister(null, {
  144. OTPCode : dataToSet.OTPCode,
  145. email : payload.email,
  146. countryCode : payload.countryCode,
  147. phoneNumber: payload.phoneNumber
  148. });
  149.  
  150. async.auto({
  151. UPLOAD_PROFILE_PIC : (callback)=>{
  152. if (payload.isFile == true && !payload.socialImageURL) {
  153. if(payload.profilePic && payload.profilePic.hapi.filename) {
  154. if (payload.profilePic.hapi.headers['content-type'].split("/")[0] === 'image')
  155. {
  156. util.uploadProfilePicture(payload.profilePic, "user_" + payload.email, userPicFolder, (error, urls)=> {
  157. logger.error("profile image err---->>>>>>", error);
  158. logger.fatal("profile image url---->>>>>>", urls);
  159. dataToUpdate.profilePic = urls;
  160. callback(error, urls)
  161. });
  162. }
  163. else callback(null,{})
  164. }
  165. else callback(null,{});
  166. }
  167. else callback(null,{});
  168. },
  169. UPLOAD_BOAT_PIC : (callback)=>{
  170. if (payload.isFile == true) {
  171. if(payload.boatImage && payload.boatImage.hapi.filename) {
  172. if (payload.boatImage.hapi.headers['content-type'].split("/")[0] === 'image')
  173. {
  174. util.uploadProfilePicture(payload.boatImage, "boat_" + payload.email, boatPicFolder, (error, urls)=> {
  175. logger.error("boat image err---->>>>>>", error);
  176. logger.fatal("boat image url---->>>>>>", urls);
  177. dataToUpdate["boatDetails.boatImage"] = urls;
  178. callback(error, urls)
  179. });
  180. }
  181. else callback(null,{})
  182. }
  183. else callback(null,{});
  184. }
  185. else callback(null,{});
  186. }
  187. },(err,finalUpdate)=>{
  188. DAO.update(Models.user,{_id : userId},{$set : dataToUpdate},{lean : true},(err,res)=>{
  189. logger.error("update query err---->>>>",err);
  190. logger.info("update query result---->>>>",res)
  191. })
  192. })
  193. }
  194. })
  195. };
Add Comment
Please, Sign In to add comment