-
Notifications
You must be signed in to change notification settings - Fork 0
/
dsAuth.js
104 lines (97 loc) · 2.66 KB
/
dsAuth.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
//Account information processing here
const mongoose = require(`mongoose`);
const Schema = mongoose.Schema;
var UserSchema = new Schema({
"fname": {
type: String,
required: function () {
return (/^[A-Za-z]+$/.test(this.fname) && this.fname.length > 1)
},
// required: [true, "First Name Missing!"]
},
"lname": {
type: String,
required: function () {
return /^[A-Za-z]+$/.test(this.lname); //characters only, from start to end, + rep more than one occurance
},
required: false
},
"DoB": {
type: Date,
default: Date.now
},
"streetAddress": {
type: String,
maxlength: 30
},
"city": {
type: String,
maxlength: 30
},
"postal": {
type: String,
maxlength: 30
},
"email": {
type: String,
maxlength: 30
},
"username": {
unique: true,
type: String,
minlength: 3,
maxlength: 20,
required: true
},
"password": {
type: String,
required: function () {
return /[#$@!%&*?A-Za-z0-9]{6,}/.test(this.password); //min 6, needs a special char,cap letter, small letter, 1 number
},
required: true
}
});
let User;
module.exports.initialize = function () {
return new Promise(function (resolve, reject) {
let dbTwo = mongoose.createConnection("mongodb://AbdulRehman:[email protected]:39705/recipe_information");
dbTwo.on('error', (err) => {
reject(err); // reject the promise with the provided error
return;
});
dbTwo.once('open', () => {
User = dbTwo.model("Users", UserSchema);
resolve(`Successfully connected`);
return;
});
});
};
module.exports.createUser = function (GivenData) {
let NewUser = new User(GivenData);
return new Promise((resolve, reject) => {
NewUser.save().then((data) => {
resolve(data);
return;
}).catch((err) => {
reject(`Failed to create a new user ${err}`);
return;
});
})
}
module.exports.checkUser = function (GivenData) {
return new Promise((resolve, reject) => {
User.findOne({ username: GivenData.username }).then((data) => {
if(data.password != GivenData.password)
{
reject(`Passwords not matching!` );
return;
}
resolve(data);
return;
}).catch((err) => {
console.log(err);
reject(err);
return;
});
});
}