You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

88 lines
2.4 KiB

const {_Crypto} = require('./cryptoLib');
const mongoose = require('mongoose');
const {app, BrowserWindow, ipcMain} = require('electron');
const mongoDB = 'mongodb+srv://admin:admin@cluster0.hrgvn.mongodb.net/LegendaryLeague?retryWrites=true&w=majority';
const userModel = require('./models/users');
const {LeagueAPI} = require('./leagueAPI')
var window;
function createWindow()
{
var width = 800;
var height=600;
const win = new BrowserWindow({
width,
height,
frame:false,
minimizable: true,
webPreferences:
{
nodeIntegration:false,
contextIsolation:true,
preload: __dirname + '/preload.js'
}
})
win.removeMenu();
win.webContents.openDevTools();
win.loadURL('http://localhost:3000');
return win;
}
app.on('ready', ()=>
{
mongoose.Promise = global.Promise;
window = createWindow();
mongoose.connect(mongoDB);
} )
ipcMain.on('close', (event, data) =>
{
app.quit();
})
ipcMain.on('maximize', (event, data) =>
{
window.isMaximized() ? window.unmaximize() : window.maximize()
})
ipcMain.on('minimize', (event, data) =>
{
window.minimize();
});
ipcMain.on('login', async (event, data) =>
{
console.log('data',data);
const Hash = await new _Crypto(data.email, data.pw).bouncer();
console.log(Hash)
if(Hash)
{
window.webContents.send('login', Hash)
}
});
ipcMain.on('register', async (event, data) =>
{
//console.log('event',event,'data',data);
var nick_tag = data.nick_tag.split('#');
var name = nick_tag[0];
var tag = nick_tag[1]
var RiotExists = await new LeagueAPI().verifyUserName(name, tag);
if(!RiotExists) return window.webContents.send('register', 'No account on league with this name and/or tag.')
const crypto = new _Crypto(data.email, data.pw)
const Hash = crypto.hash();
const eHash = crypto.eHash();
const isNew = await crypto.isNew(eHash);
if(!isNew) return window.webContents.send('register', 'There is already an account with this email.')
var uModel = new userModel();
uModel.Hash = Hash;
uModel.eHash = eHash;
uModel.leagueName = data.nick_tag;
const saved = await uModel.save();
window.webContents.send('register',JSON.stringify(saved))
});
app.on('window-all-closed', ()=>
{
if(process.platform !== 'darwin') app.quit();
})
app.on('activate', ()=>
{
if(BrowserWindow.getAllWindows().length === 0) createWindow();
})