Advertisement
Guest User

Untitled

a guest
May 24th, 2016
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.04 KB | None | 0 0
  1. class LoginRegister {
  2. constructor(req, res) {
  3. this.req = req;
  4. this.res = res;
  5. this.User = null;
  6. this.foundUserId = null;
  7. this.fbPermissions = ['email', 'id', 'name', 'about', 'hometown', 'cover', 'picture'];
  8. this.clientFbToken = req.body.fb_token ? req.body.fb_token : null;
  9. if (this.clientFbToken) this.User = new Facebook(this.fbPermissions, this.clientFbToken);
  10. else this.User = new Email(this.username, this.password); // Not yet implemented
  11. // Change object to Email
  12. this.main();
  13. }
  14.  
  15. main () {
  16. this.User.main()
  17. .then ( (createNew) => {
  18. console.log ("SHould create new user", createNew)
  19. // Create a new user
  20. if (createNew) {
  21. this.User.createUser()
  22. .then (()=> this.User.createUserDetails())
  23. .then(()=>this.returnToken())
  24. .catch ((err) => console.log ("error", err))
  25. } else {
  26. console.log ("Return new token for", this.User.User);
  27. this.User.createUserDetails()
  28. this.returnToken();
  29. // this.res.json(JSON.stringify(this.User.User));
  30. }
  31.  
  32. // this.User.checkUserExist (true, thi)
  33. }).catch((err) => console.log ("err loginregister", err))
  34. }
  35.  
  36. returnToken () {
  37. console.log ("user has been created/fond and returning a token", this.User);
  38. this.res.json(JSON.stringify({token: "TOKEN MUTHERFUCKEREREKREKRKEKRKERKEKREKRKEKRRE", user: this.User}));
  39. }
  40. }
  41.  
  42. class Login {
  43. constructor() {
  44. this.user_id = null;
  45. this.foundUser = {};
  46. this.User = {};
  47. }
  48.  
  49. /**
  50. @params {bool} isFb, if using facebook class, use a different select stmt
  51. @param {object OR string} can either be object or a stringfbId or username + password
  52. **/
  53. checkUserExists (isFb, data) {
  54. var query;
  55. if (isFb) {
  56. query = `select * from content_user where fbId = ${data}`;
  57. } else {
  58. query = `select * from content_user where email = ${data.email} AND password = ${data.password}`;
  59. }
  60. const that = this;
  61.  
  62. return new Promise ( (fulfill, rej) => {
  63. conn.query(query, function (err, user) {
  64. if (err) {
  65. console.log ("nSomething went wrong: ", err);
  66. rej(err);
  67. return;
  68. }
  69. const shouldCreate = user.length > 0 ? false : true;
  70. if (!shouldCreate) that.user_id = user[0].id;
  71.  
  72. console.log (shouldCreate, ", should create new user")
  73. fulfill(shouldCreate);
  74. })
  75. });
  76. }
  77.  
  78. createUser () {
  79. var User = new UserModel(this.User);
  80. var q;
  81.  
  82. // Temp till I fix django default
  83. var date;
  84. date = new Date();
  85. date = date.getUTCFullYear() + '-' +
  86. ('00' + (date.getUTCMonth()+1)).slice(-2) + '-' +
  87. ('00' + date.getUTCDate()).slice(-2) + ' ' +
  88. ('00' + date.getUTCHours()).slice(-2) + ':' +
  89. ('00' + date.getUTCMinutes()).slice(-2) + ':' +
  90. ('00' + date.getUTCSeconds()).slice(-2);
  91. if (this.fbId){
  92. q = `INSERT INTO content_user SET fbId = ${this.fbId}, created = '${date}'`;
  93. } else {
  94. q = `INSERT INTO content_user set created = ${new Date()}`;
  95. }
  96. var that = this;
  97. // Set fbId to the new user entity
  98. return new Promise ( (ful, rej) => {
  99. conn.query(q , function(err, result) {
  100. if (err) {
  101. console.log ("ERROR", err)
  102. rej(err);
  103. return;
  104. }
  105. that.user_id = result.insertId;
  106.  
  107. // Return token for id here...
  108. ful(result.insertId);
  109.  
  110. });
  111. });
  112. }
  113.  
  114. createUserDetails () {
  115. var User = new UserDataModel(this.User, this.user_id);
  116. var q;
  117.  
  118. // Temp till I fix django default
  119. var date;
  120. date = new Date();
  121. date = date.getUTCFullYear() + '-' +
  122. ('00' + (date.getUTCMonth()+1)).slice(-2) + '-' +
  123. ('00' + date.getUTCDate()).slice(-2) + ' ' +
  124. ('00' + date.getUTCHours()).slice(-2) + ':' +
  125. ('00' + date.getUTCMinutes()).slice(-2) + ':' +
  126. ('00' + date.getUTCSeconds()).slice(-2);
  127.  
  128. // Set fbId to the new user entity
  129. return new Promise ( (ful, rej) => {
  130. conn.query(`INSERT INTO content_userdata SET ? `, User, function(err, result) {
  131. if (err) {
  132. console.log ("ERROR", err)
  133. rej(err);
  134. return;
  135. }
  136.  
  137.  
  138. ful(result.insertId);
  139. });
  140. });
  141. }
  142.  
  143. // Add insert here ...
  144. }
  145.  
  146. class Facebook extends Login {
  147. constructor(fbPermissions, fbToken) {
  148. super();
  149. this.fbPermissions = fbPermissions;
  150. this.fbToken = fbToken;
  151. this.fbUser = {};
  152. this.fbId = null;
  153. this.foundUser = {};
  154. }
  155.  
  156. main () {
  157. // This just grabs facebook /me data
  158. return new Promise( (fullfil, rej) => {
  159. grabMeData (this.fbPermissions, this.fbToken)
  160. .then ( (fbData) => {
  161. const fb = new FbUser(fbData);
  162. this.User = new User (fb); // Set UserDetails model up | Which will be used to insert user
  163. this.fbId = fb.fbId;
  164. this.checkUserExists(true, this.User.fbId).then((isCreated)=>fullfil(isCreated)).catch((err)=>console.log(err))
  165. })
  166. .catch ( (err) => {
  167. this.error = err;
  168. console.log (err, "<~~ ERROR")
  169. rej();
  170. });
  171. });
  172. }
  173. }
  174.  
  175. module.exports = Facebook;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement