DtubeAuthProxy/register.js
2021-05-30 01:11:38 +03:00

47 lines
1.8 KiB
JavaScript

mongo = require("./mongoHelp.js")
config = require("./config.js")
accountPrice = require("./utils/accountPrice.js")
crypto = require("crypto")
uuidv4 = require('uuid/v4')
javalon = require("javalon")
function register(username, password){
return new Promise((resolve, reject) => {
userObj = {
_id: uuidv4(),
username: username,
status: "Inactive",
timeLimit: Date.now()+604800000
}
mongo.get(config.database, "users", {"username":username}).then(resArr => {
if (resArr.length != 0 ){
reject("Username is awaiting creation and will be available at "+new Date(resArr[0].timeLimit)+" if it remains unpaid")
} else {
javalon.getAccount(username, (err, account) => {
if (!err) {
reject("Username already exists")
} else {
userObj.keys = javalon.keypair()
userObj.password = crypto.createHmac('sha256', config.secret).update(password).digest('hex')
accountPrice(username).then(price => {
console.log(price)
console.log(parseFloat(price)+config.fee)
userObj.price = parseFloat(price)+config.fee
hPrice = (userObj.price/100)
mongo.put(config.database, "users",userObj)
resolve("Account setup: account will be accessible after sending "+hPrice+" DTC to "+config.accountCreator.username+" with a memo line of '"+ userObj._id+"' or contact "+config.discordUser+" on Discord to arrange alternate payment")
})
}
})
}
})
})
}
module.exports = register