47 lines
1.8 KiB
JavaScript
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 |