working on openapi

This commit is contained in:
2023-03-01 20:25:30 +01:00
parent 5065a4b2fb
commit 98e1f7ef09
9 changed files with 114 additions and 58 deletions
+20 -15
View File
@@ -1,16 +1,21 @@
import { Router } from "express";
const router = Router();
import { Router } from 'express'
const router = Router()
//timeout middleware ?
router.get("/*", (req, res, next) => {
next();
});
router.get("/client/:clientId/", (req, res, next) => {
res.send("get information about client number " + req.params.clientId);
});
router.get("/server/:serverId/", (req, res, next) => {
res.send("get information about server number " + req.params.serverId);
});
router.get("/weapon/:weaponId/", (req, res, next) => {
res.send("get information about weapon " + req.params.weaponId);
});
export default router;
router.get('/*', (req, res, next) => {
next()
})
router.get('/weapons/', (req, res, next) => {})
router.get('/maps/', (req, res, next) => {})
router.get('/players', (req, res, next) => {})
router.get('/players/:playerId', (req, res, next) => {})
router.get('/servers/', (req, res, next) => {})
router.get('/servers/:serverId/', (req, res, next) => {})
router.get('/servers/:serverId/players', (req, res, next) => {})
router.get('/servers/:serverId/players/:playerId', (req, res, next) => {})
router.get('/servers/:serverId/weapons', (req, res, next) => {})
export default router
+15 -4
View File
@@ -1,7 +1,7 @@
import { Kysely, PostgresDialect } from 'kysely'
import { Pool } from 'pg'
import migrateToLatest from './migrations'
import Database, { KillTable } from './model'
import Database from './model'
const migration = migrateToLatest()
// You'd create one of these when you start your app.
@@ -17,6 +17,15 @@ const db = new Kysely<Database>({
})
})
interface KillRecord {
server: string
attacker: number
victim: number
weapon: number
map: number
distance: number
date: Date
}
export async function CreateKillRecord({
server,
attacker,
@@ -25,10 +34,10 @@ export async function CreateKillRecord({
map,
distance,
date
}: KillTable) {
}: KillRecord) {
await db
.insertInto('kill')
.values({ server, attacker, victim, weapon, map, distance, date })
.values({ server, attacker, victim, weapon, map, distance })
.execute()
}
/*
@@ -56,7 +65,9 @@ async function demo() {
}
}
*/
export default async function ready(): Promise<Kysely<Database>> {
export async function dbReady(): Promise<Kysely<Database>> {
await migration
return db
}
export default db
+28 -28
View File
@@ -1,43 +1,43 @@
import { Generated } from "kysely";
import { ColumnType, Generated } from 'kysely'
export interface KillTable {
id: Generated<number>;
server: string;
attacker: number;
victim: number;
weapon: string;
map: string;
distance: number;
date: Date;
id: Generated<number>
server: string
attacker: number
victim: number
weapon: string
map: string
distance: number
date: ColumnType<Date, string | Date | undefined, never>
}
interface EntityTable {
id: number;
name: string;
id: number
name: string
}
interface WeaponTable {
id: string;
name: string;
description: string;
image: string;
id: string
name: string
description: string
image: string
}
interface MapTable {
id: string;
name: string;
description: string;
image: string;
id: string
name: string
description: string
image: string
}
interface ServerTable {
id: string;
name: string;
description: string;
id: string
name: string
description: string
}
interface Database {
kill: KillTable;
entity: EntityTable;
weapon: WeaponTable;
maps: MapTable;
server: ServerTable;
kill: KillTable
entity: EntityTable
weapon: WeaponTable
maps: MapTable
server: ServerTable
}
export default Database;
export default Database
+7 -6
View File
@@ -2,11 +2,10 @@ import * as dotenv from 'dotenv'
dotenv.config()
import express from 'express'
import client from './client'
import db from './db/db'
import { dbReady } from './db/db'
import server from './server'
console.log('dotenv')
console.log(db)
const app = express()
const port = 3000
@@ -15,9 +14,11 @@ app.get('/', (req, res) => {
res.send('Hello World!')
})
app.use('/register', server)
app.use('/api', client)
app.use('/v1/', server)
app.use('/v1/', client)
app.listen(port, () => {
console.log(`Example app listening on port ${port}`)
dbReady().then((e) => {
app.listen(port, () => {
console.log(`Example app listening on port ${port}`)
})
})
+16 -3
View File
@@ -1,10 +1,23 @@
import { Router } from 'express'
import { CreateKillRecord } from './db/db'
import { body } from 'express-validator'
const router = Router()
//auth middleware
router.post('/*', (req, res, next) => {
next()
})
router.post('/*', (req, res, next) => {
next()
})
router.post(
'/severs/:serverId/kills',
body('server').isString(),
body('attacker').isInt(),
body('victim').isInt(),
body('weapon').isString(),
body('map').isString(),
body('distance').isInt(),
(req, res, next) => {
//CreateKillRecord({ server, attacker, victim, weapon, map, distance })
res.send(400)
}
)
export default router