- Added add user methods (will need polish imo)
This commit is contained in:
@@ -128,10 +128,6 @@ INSERT INTO `role` (name, description) VALUES
|
||||
("Arcanologue", "Maîtres de l'arcane, ils ont le pouvoir et la responsabilité de juger les sortilèges récents et de les supprimer, ou valider."),
|
||||
("Augure", "Régents des grimoires, ils ont droit d'accès à l'intégralité des informations connues, et pouvoir absolu sur le savoir arcanique.");
|
||||
|
||||
-- USERS
|
||||
INSERT INTO `user` (uuid, name, mail, password, role_id) VALUES
|
||||
("6af978f0-96ed-11e8-bb38-37f5ae311cf6", "Izàc Tymos", "tymos@ambrose.edu", "root", 4);
|
||||
|
||||
-- META SCHOOLS
|
||||
INSERT INTO `meta_school` (name, description) VALUES
|
||||
('Magies blanches', 'Magies disciplinant les arts de soins et de lumières.'),
|
||||
|
||||
@@ -33,13 +33,12 @@ class UserRepository {
|
||||
resolve(v.toJSON({ omitPivot: true }))
|
||||
})
|
||||
.catch(err => {
|
||||
console.log(err)
|
||||
reject(new HttpError(500, "Couldn't get users"))
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
getOneFromUUID(uuid) {
|
||||
getOneByUUID(uuid) {
|
||||
return new Promise((resolve, reject) => {
|
||||
model.forge()
|
||||
.where({ 'uuid' : uuid })
|
||||
@@ -48,12 +47,37 @@ class UserRepository {
|
||||
resolve(v.toJSON({ omitPivot: true }))
|
||||
})
|
||||
.catch(err => {
|
||||
console.log(err)
|
||||
reject(new HttpError(500, "Couldn't get user"))
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
getOneByEmail(mail) {
|
||||
return new Promise((resolve, reject) => {
|
||||
model.forge()
|
||||
.where({ 'mail': mail})
|
||||
.fetch()
|
||||
.then(v => {
|
||||
resolve(v.toJSON({ omitPivot: true }))
|
||||
})
|
||||
.catch(err => {
|
||||
reject(new HttpError(500, "Couldn't get user"))
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
checkIfEmailAvailable(mail) {
|
||||
return new Promise((resolve, reject) => {
|
||||
this.getOneByEmail(mail)
|
||||
.then(() => {
|
||||
reject(false)
|
||||
})
|
||||
.catch(() => {
|
||||
resolve(true)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
addOne(u) {
|
||||
return new Promise(async (resolve, reject) => {
|
||||
// Checks if body exists and if the model fits, and throws errors if it doesn't
|
||||
@@ -67,7 +91,8 @@ class UserRepository {
|
||||
let hash = await bcrypt.hash(u.password, 10)
|
||||
let uuid = uuidv4()
|
||||
|
||||
// Needs to account for duplicate emails
|
||||
this.checkIfEmailAvailable(u.mail)
|
||||
.then(() => {
|
||||
bookshelf.transaction(t => {
|
||||
return model.forge({
|
||||
'uuid': uuid,
|
||||
@@ -82,7 +107,16 @@ class UserRepository {
|
||||
console.log(err)
|
||||
})
|
||||
})
|
||||
|
||||
.then(v => {
|
||||
resolve(this.getOneByUUID(uuid))
|
||||
})
|
||||
.catch(err => {
|
||||
throw err
|
||||
})
|
||||
})
|
||||
.catch(() => {
|
||||
reject(new HttpError(403, 'Email is already in use !'))
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -39,15 +39,15 @@ router.get('/', async (req, res) => {
|
||||
|
||||
|
||||
// GET ONE FORM UUID ------------------
|
||||
const getUserFromUUID = (uuid) => {
|
||||
return Users.getOneFromUUID(uuid)
|
||||
const getUserByUUID = (uuid) => {
|
||||
return Users.getOneByUUID(uuid)
|
||||
.catch(err => {
|
||||
console.log(err)
|
||||
throw err
|
||||
})
|
||||
}
|
||||
router.get('/:uuid/', async (req, res) => {
|
||||
getUserFromUUID(req.params.uuid)
|
||||
getUserByUUID(req.params.uuid)
|
||||
.then(v => {
|
||||
res.setHeader('Content-Type', 'application/json;charset=utf-8')
|
||||
res.end(JSON.stringify(v))
|
||||
@@ -67,7 +67,6 @@ router.get('/:uuid/', async (req, res) => {
|
||||
const addUser = (u) => {
|
||||
return Users.addOne(u)
|
||||
.catch(err => {
|
||||
console.log(err)
|
||||
throw err
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user