Fix register script
This commit is contained in:
parent
e3be290d3d
commit
bc95e101a5
|
@ -10,10 +10,13 @@ import config from '../../config.json';
|
||||||
import { getAllGalaxies } from '../lib/db/galaxies';
|
import { getAllGalaxies } from '../lib/db/galaxies';
|
||||||
import { createPlanet } from '../lib/db/planets';
|
import { createPlanet } from '../lib/db/planets';
|
||||||
import { addSystemToSector } from '../lib/db/sectors';
|
import { addSystemToSector } from '../lib/db/sectors';
|
||||||
import { createSystem } from '../lib/db/systems';
|
import { addPlanetToSystem, createSystem } from '../lib/db/systems';
|
||||||
import DBPlanet from '../types/db/DBPlanet';
|
import DBPlanet from '../types/db/DBPlanet';
|
||||||
import DBSystem from '../types/db/DBSystem';
|
import DBSystem from '../types/db/DBSystem';
|
||||||
import locationManager from '../lib/classes/managers/LocationManager';
|
import locationManager from '../lib/classes/managers/LocationManager';
|
||||||
|
import SystemManager, { System } from '../lib/classes/managers/SystemManager';
|
||||||
|
import User from '../lib/classes/User';
|
||||||
|
import ResearchManager from '../lib/classes/managers/ResearchManager';
|
||||||
|
|
||||||
let error = "";
|
let error = "";
|
||||||
|
|
||||||
|
@ -39,38 +42,73 @@ if(Astro.request.method === "POST") {
|
||||||
|
|
||||||
const user = await createUser(userId, username, email, password, planetId);
|
const user = await createUser(userId, username, email, password, planetId);
|
||||||
|
|
||||||
|
const userObject = new User(user._id, user.username, user.email, user.createdAt, user.updatedAt, user.lastLogin);
|
||||||
|
|
||||||
const sessionTime = config.SESSION_TIME_MINUTES * 60;
|
const sessionTime = config.SESSION_TIME_MINUTES * 60;
|
||||||
|
|
||||||
const galaxyIndex = Math.floor(Math.random() * 4);
|
const galaxyIndex = Math.floor(Math.random() * 4);
|
||||||
const sectorIndex = Math.floor(Math.random() * 8);
|
const sectorIndex = Math.floor(Math.random() * 8);
|
||||||
|
const galaxies = await getAllGalaxies();
|
||||||
const planetData: DBPlanet = {
|
const sectorId = galaxies[galaxyIndex].sectors[sectorIndex];
|
||||||
_id: planetId,
|
const sector = locationManager.getSector(sectorId);
|
||||||
owner: user._id,
|
if(!sector) throw new Error("FATAL: Sector was not found in location manager.");
|
||||||
name: `${username}'s home planet`,
|
|
||||||
fields: 100,
|
|
||||||
buildings: [],
|
|
||||||
ships: [],
|
|
||||||
resources: []
|
|
||||||
}
|
|
||||||
|
|
||||||
await createPlanet(planetData);
|
|
||||||
|
|
||||||
const systemData: DBSystem = {
|
const systemData: DBSystem = {
|
||||||
_id: new ObjectId(),
|
_id: new ObjectId(),
|
||||||
name: `${username}'s home system`,
|
name: `${username}'s home system`,
|
||||||
ownedBy: user._id,
|
ownedBy: user._id,
|
||||||
|
planets: [],
|
||||||
structures: [],
|
structures: [],
|
||||||
planets: [planetData._id],
|
resources: [],
|
||||||
|
ships: [],
|
||||||
|
defenses: [],
|
||||||
|
asteroids: []
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const planetData: DBPlanet = {
|
||||||
|
_id: new ObjectId(),
|
||||||
|
name: `${username}'s home planet`,
|
||||||
|
owner: systemData.ownedBy,
|
||||||
|
fields: 40,
|
||||||
|
resources: [],
|
||||||
|
buildings: [],
|
||||||
|
ships: [],
|
||||||
|
defenses: []
|
||||||
|
}
|
||||||
|
|
||||||
|
systemData.planets.push(planetData._id);
|
||||||
|
|
||||||
await createSystem(systemData);
|
await createSystem(systemData);
|
||||||
|
await createPlanet(planetData);
|
||||||
|
await addPlanetToSystem(systemData._id, planetData._id);
|
||||||
|
|
||||||
const galaxies = await getAllGalaxies();
|
const systemObject: System = {
|
||||||
const sectorId = galaxies[galaxyIndex].sectors[sectorIndex];
|
_id: systemData._id,
|
||||||
|
sector: sector,
|
||||||
|
name: systemData.name,
|
||||||
|
ownedBy: userObject,
|
||||||
|
//@ts-ignore
|
||||||
|
structures: null,
|
||||||
|
//@ts-ignore
|
||||||
|
resources: null,
|
||||||
|
//@ts-ignore
|
||||||
|
ships: null,
|
||||||
|
//@ts-ignore
|
||||||
|
defenses: null,
|
||||||
|
planets: [],
|
||||||
|
asteroids: []
|
||||||
|
}
|
||||||
|
|
||||||
|
const systemManager = await new SystemManager(systemObject).fillData(systemData);
|
||||||
|
const planet = systemManager.planets.find(p => p._id.equals(planetData._id));
|
||||||
|
if(!planet) throw new Error("FATAL: Planet was not created properly in system manager.");
|
||||||
|
|
||||||
|
await userObject.addMainPlanet(planet);
|
||||||
|
sector.systems.push(systemManager);
|
||||||
await addSystemToSector(sectorId, systemData._id);
|
await addSystemToSector(sectorId, systemData._id);
|
||||||
|
|
||||||
|
locationManager.users.push(userObject);
|
||||||
|
|
||||||
const cookieOptions: AstroCookieSetOptions = {
|
const cookieOptions: AstroCookieSetOptions = {
|
||||||
path: "/",
|
path: "/",
|
||||||
maxAge: sessionTime,
|
maxAge: sessionTime,
|
||||||
|
@ -83,7 +121,6 @@ if(Astro.request.method === "POST") {
|
||||||
Astro.cookies.set("currentPlanet", planetData._id.toString(), cookieOptions);
|
Astro.cookies.set("currentPlanet", planetData._id.toString(), cookieOptions);
|
||||||
Astro.cookies.set("currentSystem", systemData._id.toString(), cookieOptions);
|
Astro.cookies.set("currentSystem", systemData._id.toString(), cookieOptions);
|
||||||
|
|
||||||
await locationManager.init();
|
|
||||||
const res = await fetch(`${Astro.url.origin}/api/auth/generateAccessToken`, {
|
const res = await fetch(`${Astro.url.origin}/api/auth/generateAccessToken`, {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
body: JSON.stringify({
|
body: JSON.stringify({
|
||||||
|
|
Loading…
Reference in New Issue