eslint format
This commit is contained in:
+28
-28
@@ -1,43 +1,43 @@
|
||||
// Typed routes from https://urosstok.com/blog/typed-routes-in-express
|
||||
|
||||
import * as dotenv from "dotenv";
|
||||
import express from "express";
|
||||
import cors from "cors";
|
||||
import { dbReady } from "./db";
|
||||
import server from "./generated/server";
|
||||
dotenv.config();
|
||||
import * as dotenv from 'dotenv'
|
||||
import express from 'express'
|
||||
import cors from 'cors'
|
||||
import { dbReady } from './db'
|
||||
import server from './generated/server'
|
||||
dotenv.config()
|
||||
|
||||
const app = express();
|
||||
const port = 3001;
|
||||
const app = express()
|
||||
const port = 3001
|
||||
|
||||
app.use(express.json());
|
||||
app.use(express.json())
|
||||
|
||||
app.use(cors());
|
||||
app.get("/", (req, res) => {
|
||||
res.send("Tone server API online");
|
||||
});
|
||||
app.use(cors())
|
||||
app.get('/', (req, res) => {
|
||||
res.send('Tone server API online')
|
||||
})
|
||||
|
||||
app.use("/", (req, res, next) => {
|
||||
app.use('/', (req, res, next) => {
|
||||
try {
|
||||
next();
|
||||
next()
|
||||
} catch (error) {
|
||||
res.status(500).send({
|
||||
errors: [
|
||||
{
|
||||
msg: "Internal error",
|
||||
data: error,
|
||||
},
|
||||
],
|
||||
});
|
||||
msg: 'Internal error',
|
||||
data: error
|
||||
}
|
||||
});
|
||||
app.use("/", server);
|
||||
]
|
||||
})
|
||||
}
|
||||
})
|
||||
app.use('/', server)
|
||||
|
||||
export default new Promise((resolve, reject) => {
|
||||
void dbReady().then((e) => {
|
||||
const listenServer = app.listen(port, "0.0.0.0", () => {
|
||||
console.log(`Tone server api listening on port ${port}`);
|
||||
resolve(listenServer);
|
||||
});
|
||||
});
|
||||
});
|
||||
const listenServer = app.listen(port, '0.0.0.0', () => {
|
||||
console.log(`Tone server api listening on port ${port}`)
|
||||
resolve(listenServer)
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
+89
-94
@@ -1,163 +1,158 @@
|
||||
import { Kysely, Transaction } from "kysely";
|
||||
import db from "./db";
|
||||
import Database from "./db/model";
|
||||
import { LoadoutKillData } from "./types";
|
||||
import { Data } from 'ws';
|
||||
import { type Transaction } from 'kysely'
|
||||
import db from './db'
|
||||
import type Database from './db/model'
|
||||
import { type LoadoutKillData } from './types'
|
||||
|
||||
|
||||
|
||||
export async function createOrRunInTransaction(callback: (trx: Transaction<Database>) => Promise<void>, trx?:Transaction<Database>){
|
||||
if(trx){
|
||||
export async function createOrRunInTransaction (callback: (trx: Transaction<Database>) => Promise<void>, trx?: Transaction<Database>) {
|
||||
if (trx) {
|
||||
await callback(trx)
|
||||
}else{
|
||||
} else {
|
||||
await db
|
||||
.transaction()
|
||||
.setIsolationLevel("serializable")
|
||||
.execute(callback);
|
||||
.setIsolationLevel('serializable')
|
||||
.execute(callback)
|
||||
}
|
||||
}
|
||||
|
||||
export async function checkUpdateOrCreatePlayer(data: {
|
||||
id: number;
|
||||
name: string;
|
||||
export async function checkUpdateOrCreatePlayer (data: {
|
||||
id: number
|
||||
name: string
|
||||
}) {
|
||||
await db
|
||||
.transaction()
|
||||
.setIsolationLevel("serializable")
|
||||
.setIsolationLevel('serializable')
|
||||
.execute(async (trx) => {
|
||||
const player = await trx
|
||||
.selectFrom("ToneAPI_v3.player")
|
||||
.select(["player_name"])
|
||||
.where("player_id", "=", data.id)
|
||||
.executeTakeFirst();
|
||||
.selectFrom('ToneAPI_v3.player')
|
||||
.select(['player_name'])
|
||||
.where('player_id', '=', data.id)
|
||||
.executeTakeFirst()
|
||||
if (!player) {
|
||||
await trx
|
||||
.insertInto("ToneAPI_v3.player")
|
||||
.insertInto('ToneAPI_v3.player')
|
||||
.values({
|
||||
player_id: data.id,
|
||||
player_name: data.name,
|
||||
player_name: data.name
|
||||
})
|
||||
.execute();
|
||||
} else if (player.player_name != data.name) {
|
||||
.execute()
|
||||
} else if (player.player_name !== data.name) {
|
||||
await trx
|
||||
.updateTable("ToneAPI_v3.player")
|
||||
.updateTable('ToneAPI_v3.player')
|
||||
.set({ player_name: data.name })
|
||||
.where("ToneAPI_v3.player.player_id", "=", data.id)
|
||||
.execute();
|
||||
.where('ToneAPI_v3.player.player_id', '=', data.id)
|
||||
.execute()
|
||||
}
|
||||
});
|
||||
})
|
||||
}
|
||||
|
||||
export async function checkOrCreateWeapon(weapon_id: string, trx?:Transaction<Database>) {
|
||||
const runner = async (trx:Transaction<Database>) => {
|
||||
export async function checkOrCreateWeapon (weaponID: string, trx?: Transaction<Database>) {
|
||||
const runner = async (trx: Transaction<Database>) => {
|
||||
const weapon = await trx
|
||||
.selectFrom("ToneAPI_v3.weapon")
|
||||
.select("ToneAPI_v3.weapon.weapon_id")
|
||||
.where("weapon_id", "=", weapon_id)
|
||||
.executeTakeFirst();
|
||||
.selectFrom('ToneAPI_v3.weapon')
|
||||
.select('ToneAPI_v3.weapon.weapon_id')
|
||||
.where('weapon_id', '=', weaponID)
|
||||
.executeTakeFirst()
|
||||
if (!weapon) {
|
||||
await trx
|
||||
.insertInto("ToneAPI_v3.weapon")
|
||||
.insertInto('ToneAPI_v3.weapon')
|
||||
.values({
|
||||
weapon_id,
|
||||
weapon_id: weaponID
|
||||
})
|
||||
.execute();
|
||||
.execute()
|
||||
}
|
||||
}
|
||||
|
||||
await createOrRunInTransaction(runner, trx)
|
||||
}
|
||||
|
||||
export async function checkOrCreateWeaponMods(weapon: {
|
||||
id: string;
|
||||
mods: number;
|
||||
}, trx?:Transaction<Database>) {
|
||||
const runner = async (trx:Transaction<Database>) => {
|
||||
await checkOrCreateWeapon(weapon.id, trx);
|
||||
export async function checkOrCreateWeaponMods (weapon: {
|
||||
id: string
|
||||
mods: number
|
||||
}, trx?: Transaction<Database>) {
|
||||
const runner = async (trx: Transaction<Database>) => {
|
||||
await checkOrCreateWeapon(weapon.id, trx)
|
||||
const weaponMods = await trx
|
||||
.selectFrom("ToneAPI_v3.mods_on_weapon")
|
||||
.select("ToneAPI_v3.mods_on_weapon.mod_id")
|
||||
.where("mod_id", "=", weapon.mods)
|
||||
.where("weapon_id", "=", weapon.id)
|
||||
.executeTakeFirst();
|
||||
.selectFrom('ToneAPI_v3.mods_on_weapon')
|
||||
.select('ToneAPI_v3.mods_on_weapon.mod_id')
|
||||
.where('mod_id', '=', weapon.mods)
|
||||
.where('weapon_id', '=', weapon.id)
|
||||
.executeTakeFirst()
|
||||
if (!weaponMods) {
|
||||
await trx
|
||||
.insertInto("ToneAPI_v3.mods_on_weapon")
|
||||
.insertInto('ToneAPI_v3.mods_on_weapon')
|
||||
.values({
|
||||
mod_id: weapon.mods,
|
||||
weapon_id: weapon.id,
|
||||
autogenerated: true,
|
||||
autogenerated: true
|
||||
})
|
||||
.execute();
|
||||
.execute()
|
||||
}
|
||||
}
|
||||
|
||||
await createOrRunInTransaction(runner, trx)
|
||||
|
||||
}
|
||||
|
||||
export async function checkOrCreateTitan(titan_id: string | null, trx?:Transaction<Database>) {
|
||||
if (titan_id == null) {
|
||||
return;
|
||||
export async function checkOrCreateTitan (titanID: string | null, trx?: Transaction<Database>) {
|
||||
if (titanID == null) {
|
||||
return
|
||||
}
|
||||
const runner = async (trx:Transaction<Database>) => {
|
||||
const runner = async (trx: Transaction<Database>) => {
|
||||
const titan = await trx
|
||||
.selectFrom("ToneAPI_v3.titan_chassis")
|
||||
.select("ToneAPI_v3.titan_chassis.titan_id")
|
||||
.where("titan_id", "=", titan_id)
|
||||
.executeTakeFirst();
|
||||
.selectFrom('ToneAPI_v3.titan_chassis')
|
||||
.select('ToneAPI_v3.titan_chassis.titan_id')
|
||||
.where('titan_id', '=', titanID)
|
||||
.executeTakeFirst()
|
||||
if (!titan) {
|
||||
await trx
|
||||
.insertInto("ToneAPI_v3.titan_chassis")
|
||||
.insertInto('ToneAPI_v3.titan_chassis')
|
||||
.values({
|
||||
titan_id,
|
||||
titan_id: titanID
|
||||
})
|
||||
.execute();
|
||||
.execute()
|
||||
}
|
||||
}
|
||||
|
||||
await createOrRunInTransaction(runner, trx)
|
||||
|
||||
}
|
||||
|
||||
export async function checkOrCreateLoadout(loadoutData: LoadoutKillData) {
|
||||
export async function checkOrCreateLoadout (loadoutData: LoadoutKillData) {
|
||||
const loadout = await db
|
||||
.transaction()
|
||||
.setIsolationLevel("serializable")
|
||||
.setIsolationLevel('serializable')
|
||||
.execute(async (trx) => {
|
||||
let loadout = await trx
|
||||
.selectFrom("ToneAPI_v3.loadout")
|
||||
.select("ToneAPI_v3.loadout.loadout_id")
|
||||
.where("primary_weapon", loadoutData.primary?.id !== undefined ? "=" : "is", loadoutData.primary?.id === undefined ? null : loadoutData.primary?.id)
|
||||
.where("primary_mod_id", loadoutData.primary?.mods !== undefined ? "=" : "is", loadoutData.primary?.mods === undefined ? null : loadoutData.primary?.mods)
|
||||
.where("secondary_weapon", loadoutData.secondary?.id !== undefined ? "=" : "is", loadoutData.secondary?.id === undefined ? null : loadoutData.secondary?.id )
|
||||
.where("secondary_mod_id", loadoutData.secondary?.mods !== undefined ? "=" : "is", loadoutData.secondary?.mods === undefined ? null : loadoutData.secondary?.mods)
|
||||
.where("anti_titan_weapon", loadoutData.anti_titan?.id !== undefined ? "=" : "is", loadoutData.anti_titan?.id === undefined ? null : loadoutData.anti_titan?.id )
|
||||
.where("anti_titan_mod_id", loadoutData.anti_titan?.mods !== undefined ? "=" : "is", loadoutData.anti_titan?.mods === undefined ? null : loadoutData.anti_titan?.mods)
|
||||
.where("ordnance", loadoutData.ordnance?.id !== undefined ? "=" : "is", loadoutData.ordnance?.id === undefined ? null : loadoutData.ordnance?.id)
|
||||
.where("tactical", loadoutData.tactical?.id !== undefined ? "=" : "is", loadoutData.tactical?.id === undefined ? null : loadoutData.tactical?.id)
|
||||
.where("pilot_passive_1", loadoutData.passive1 !== undefined ? "=" : "is", loadoutData.passive1 === undefined ? null : loadoutData.passive1)
|
||||
.where("pilot_passive_2", loadoutData.passive2 !== undefined ? "=" : "is", loadoutData.passive2 === undefined ? null : loadoutData.passive2)
|
||||
.where("titan_id", loadoutData.titan !== undefined ? "=" : "is", loadoutData.titan === undefined ? null : loadoutData.titan)
|
||||
.executeTakeFirst();
|
||||
const loadout = await trx
|
||||
.selectFrom('ToneAPI_v3.loadout')
|
||||
.select('ToneAPI_v3.loadout.loadout_id')
|
||||
.where('primary_weapon', loadoutData.primary?.id !== undefined ? '=' : 'is', loadoutData.primary?.id ?? null)
|
||||
.where('primary_mod_id', loadoutData.primary?.mods !== undefined ? '=' : 'is', loadoutData.primary?.mods ?? null)
|
||||
.where('secondary_weapon', loadoutData.secondary?.id !== undefined ? '=' : 'is', loadoutData.secondary?.id ?? null)
|
||||
.where('secondary_mod_id', loadoutData.secondary?.mods !== undefined ? '=' : 'is', loadoutData.secondary?.mods ?? null)
|
||||
.where('anti_titan_weapon', loadoutData.anti_titan?.id !== undefined ? '=' : 'is', loadoutData.anti_titan?.id ?? null)
|
||||
.where('anti_titan_mod_id', loadoutData.anti_titan?.mods !== undefined ? '=' : 'is', loadoutData.anti_titan?.mods ?? null)
|
||||
.where('ordnance', loadoutData.ordnance?.id !== undefined ? '=' : 'is', loadoutData.ordnance?.id ?? null)
|
||||
.where('tactical', loadoutData.tactical?.id !== undefined ? '=' : 'is', loadoutData.tactical?.id ?? null)
|
||||
.where('pilot_passive_1', loadoutData.passive1 !== undefined ? '=' : 'is', loadoutData.passive1 ?? null)
|
||||
.where('pilot_passive_2', loadoutData.passive2 !== undefined ? '=' : 'is', loadoutData.passive2 ?? null)
|
||||
.where('titan_id', loadoutData.titan !== undefined ? '=' : 'is', loadoutData.titan ?? null)
|
||||
.executeTakeFirst()
|
||||
if (!loadout) {
|
||||
if (loadoutData.primary !== undefined) {
|
||||
await checkOrCreateWeaponMods(loadoutData.primary, trx);
|
||||
await checkOrCreateWeaponMods(loadoutData.primary, trx)
|
||||
}
|
||||
if (loadoutData.secondary !== undefined) {
|
||||
await checkOrCreateWeaponMods(loadoutData.secondary, trx);
|
||||
await checkOrCreateWeaponMods(loadoutData.secondary, trx)
|
||||
}
|
||||
if (loadoutData.anti_titan !== undefined) {
|
||||
await checkOrCreateWeaponMods(loadoutData.anti_titan, trx);
|
||||
await checkOrCreateWeaponMods(loadoutData.anti_titan, trx)
|
||||
}
|
||||
if (loadoutData.ordnance !== undefined) {
|
||||
await checkOrCreateWeapon(loadoutData.ordnance.id, trx);
|
||||
await checkOrCreateWeapon(loadoutData.ordnance.id, trx)
|
||||
}
|
||||
if (loadoutData.titan !== undefined) {
|
||||
await checkOrCreateTitan(loadoutData.titan, trx);
|
||||
await checkOrCreateTitan(loadoutData.titan, trx)
|
||||
}
|
||||
const result = await trx
|
||||
.insertInto("ToneAPI_v3.loadout")
|
||||
.insertInto('ToneAPI_v3.loadout')
|
||||
.values({
|
||||
primary_weapon: loadoutData.primary?.id ?? null,
|
||||
primary_mod_id: loadoutData.primary?.mods ?? null,
|
||||
@@ -169,16 +164,16 @@ export async function checkOrCreateLoadout(loadoutData: LoadoutKillData) {
|
||||
tactical: loadoutData.tactical?.id ?? null,
|
||||
pilot_passive_1: loadoutData.passive1,
|
||||
pilot_passive_2: loadoutData.passive2,
|
||||
titan_id: loadoutData.titan,
|
||||
titan_id: loadoutData.titan
|
||||
})
|
||||
.returning("ToneAPI_v3.loadout.loadout_id")
|
||||
.executeTakeFirstOrThrow();
|
||||
return result;
|
||||
.returning('ToneAPI_v3.loadout.loadout_id')
|
||||
.executeTakeFirstOrThrow()
|
||||
return result
|
||||
}
|
||||
return loadout
|
||||
});
|
||||
})
|
||||
if (!loadout) {
|
||||
throw Error("loadout is undefined");
|
||||
throw Error('loadout is undefined')
|
||||
}
|
||||
return loadout.loadout_id;
|
||||
return loadout.loadout_id
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user