All files / mylog-api/models passwordRecovery.model.js

71.42% Statements 10/14
100% Branches 0/0
100% Functions 1/1
71.42% Lines 10/14

Press n or j to go to the next uncovered block, b, p or k for the previous block.

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 702x 2x         1x 1x             1x 1x   1x             1x 1x                                                                                       2x
const luxon = require('luxon');
const models = require("../database/models");
class PasswordRecovery {
 
	static async addRecoveryRequest(ID, recoveryCode, result) {
 
		var date = luxon.DateTime.utc().toFormat('yyyy-MM-dd HH:mm:ss')
		const newRequest = {
			PilotID: ID,
			Code: recoveryCode,
			RequestDate: date,
			ExpireDate: luxon.DateTime.utc().plus({ hours: 24 }).toFormat("yyyy-MM-dd HH:mm:ss"),
			Used: 0
		};
		try {
			const passwordRecoveryRequest = await models.PasswordRecovery.create(newRequest);
 
			const apiResponse = {
				ops: "addRecoveryRequest",
				status: "success",
				message: `pilot ${ID} requested a new password`,
				payload: passwordRecoveryRequest,
				affectedRows: 1
			};
			result(null, apiResponse);
			return;
		} catch (error) {
			console.log("error: ", error);
			const apiResponse = {
				ops: "addRecoveryRequest",
				status: "failure",
				message: `error:  ${error.message}`,
				payload: error,
				affectedRows: 0
			};
			result(apiResponse, null);
			return;
		}
	}
	/*
	static getRecoveryRequestByPilotID(pilotID, result) {
		sql.query(`SELECT * from PasswordRecovery where PilotID = '${pilotID}' order by ExpireDate desc`, (err, res) => {
			if (err) {
					console.log("error: ", err);
					result(err, false);
					return;
			}
			if (res.length) {
				console.log("found requests count: ", res.length);
				var expireDate = moment(res[0].ExpireDate);
				console.log("password recovery request expire date:", res[0].ExpireDate);
				var now = moment(new Date());
				var duration = moment.duration(now.diff(expireDate)); 
				result(null, res[0]);
				return;
			}
			console.log("password recovery request recorded: ", { id: res.insertId, ...newRequest });
			PasswordRecovery.sendPasswordRecoveryEmail(email, name, surname, recoveryCode, newRequest.ExpireDate)
			result(null, true);
	});
	
	}
	*/
 
}
// Date.prototype.addHours = function (h) {
// 		this.setTime(this.getTime() + (h * 60 * 60 * 1000));
// 		return this;
// 	}
module.exports = PasswordRecovery;