Skip to content

Commit d40fabc

Browse files
authored
Merge pull request #117 from marc101101/feature/registration_duplicate_email
check if email exists before creating a user
2 parents 4dddda1 + 17ad0a0 commit d40fabc

2 files changed

Lines changed: 44 additions & 12 deletions

File tree

server/service/UserService.js

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -68,18 +68,29 @@ exports.userMeCoursesGET = function (user_id) {
6868
**/
6969
exports.userPOST = function (data) {
7070
return new Promise(function (resolve, reject) {
71-
new User(data)
72-
.save()
73-
.then((user) => {
74-
let token = jwt.sign({
75-
id: user.attributes.id
76-
}, config.secret, {
77-
expiresIn: 86400 // expires in 24 hours
78-
});
79-
resolve({
80-
user: user,
81-
token: token
82-
});
71+
User.where({teil_email: data.teil_email})
72+
.fetch()
73+
.then((model) => {
74+
if (!model) {
75+
new User(data)
76+
.save()
77+
.then((user) => {
78+
let token = jwt.sign({
79+
id: user.attributes.id
80+
}, config.secret, {
81+
expiresIn: 86400 // expires in 24 hours
82+
});
83+
resolve({
84+
user: user,
85+
token: token
86+
});
87+
})
88+
.catch((error) => {
89+
reject(error);
90+
})
91+
} else {
92+
reject(Errors.conflict("POST USER EMAIL"))
93+
}
8394
})
8495
.catch((error) => {
8596
reject(error);

server/test/user.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,4 +110,25 @@ describe('User', () => {
110110
})
111111
})
112112
})
113+
it("it should try to create a user with an already used emai and fail", (done) => {
114+
let user = {
115+
teil_vorname: "Peter",
116+
teil_nachname: "Lustig",
117+
teil_email: "johndoe@vhslq.de",
118+
teil_notizen: "Peter's notes",
119+
teil_passwort: "hunter22",
120+
eingegeben_von_user: 0,
121+
eingegeben_am_datum: "2018-01-01",
122+
eingegeben_am_zeit: "00:00:00",
123+
datenhistory: "Peters's data history"
124+
}
125+
chai.request(server)
126+
.post('/v1/user')
127+
.set("Content-Type", "application/json")
128+
.send(user)
129+
.end((err, res) => {
130+
res.should.have.status(409);
131+
done();
132+
})
133+
});
113134
});

0 commit comments

Comments
 (0)