async(function (firstName, lastName, dssRank) { return new Promise(function (resolve, reject) { try { if (dssRank >= 1 && dssRank <= 9) { const player = new Player({ firstName, lastName, dssRank }); await(player.save()); resolve(player); } else { reject(new ErrorType.InvalidRequestError("DSS Rank should be between 1 and 9 (includive)")); } } catch (err) { reject(ErrorTypes.toApiError(err)); } }); })
router.post('/', async(function (req, res) { let error; if (req.currentUser !== undefined) { const { firstName, lastName, dssRank } = req.body; if (firstName && lastName && dssRank) { try { const player = await(PlayerManager.createPlayer(firstName, lastName, dssRank)); if (player) { res.status(201); res.end(); } } catch (err) { error = err; } } else { error = new ErrorType.InvalidRequestError(); } } else { error = new ErrorType.UnauthorizedError(); } if (error) { res.status(error.status()); res.json(error.toJSON()); } }));
async ((collection) => { var data = await(db.collection(collection).limit(10).get()); // Database is cleared if(data.size === 0) { return console.log('Database cleared'); } // Delete documents in a batch var batch = db.batch(); data.docs.forEach((doc) => { batch.delete(doc.ref); }) var deletedData = await(batch.commit()); console.log('deleted batch size: ', data.size); // Recurse on the next process tick, to avoid // exploding the stack. process.nextTick(() => { clearData(collection); }) })
async(function (id) { return new Promise(function (resolve, reject) { if (!mongoose.Types.ObjectId.isValid(id)) { reject(new ErrorTypes.InvalidRequestError('malformed id')); retrun; } try { const player = await(Player.findOne({ '_id': id })); resolve(player); } catch (err) { reject(ErrorTypes.toApiError(err)); } }); })
router.post('/', async (function (req, res) { const { username, password } = req.body; let error; if (username && password) { try { let user = await(UserManager.createUser(username, password)); if (user) { res.status(201); res.end(); } } catch (err) { error = err; } } else { error = new ErrorType.InvalidRequestError(); } if (error) { res.status(error.status()); res.json(error.toJSON()); } }));
router.post('/', async(function (req, res) { let error; if (req.currentUser !== undefined) { const { homePlayer, outPlayer, homeScore, outScore, matchDate } = req.body; if (!homePlayer || !outPlayer || !matchDate || homeScore == null || outScore == null) { error = new ErrorType.InvalidRequestError(); } else { try { const match = await(MatchManager.createMatch(homePlayer, outPlayer, homeScore, outScore, matchDate)); if (match) { res.status(201); res.end(); } } catch (err) { error = err; } } } else { error = new ErrorType.UnauthorizedError(); } if (error) { console.log(error); res.status(error.status()); res.json(error.toJSON()); } }));
async(function (username, password) { return new Promise(function (resolve, reject) { try { const user = await(User.findOne({ 'username': username })); if (user) { bcrypt.compare(password, user.hash, function (err, res) { if (err) { reject(ErrorTypes.toApiError(err)); } else { resolve(Boolean(res)); } }); } else { reject(new ErrorTypes.UnauthorizedError()); } } catch (err) { reject(ErrorTypes.toApiError(err)); } }); })
async(function (username, password) { return new Promise(function (resolve, reject) { try { const existingUser = await(User.findOne({ 'username': username })); if (!existingUser) { bcrypt.hash(password, saltRounds, function (err, hash) { let user = new User({ 'username': username, 'hash': hash }); user.save().then(function (result) { resolve(result); }).catch(function (err) { reject(ErrorTypes.toApiError(err)); }); }); } else { reject(new ErrorTypes.ResourceExistsError('username already exists')); } } catch (err) { reject(ErrorTypes.toApiError(err)); } }); })