29 lines
1.2 KiB
TypeScript
29 lines
1.2 KiB
TypeScript
import { characterData } from "../Classes/characterData.js";
|
|
import { DatabaseController } from "../Database/dbcontroller.js";
|
|
|
|
export class characters{
|
|
static async createCharacter(db: DatabaseController, userId : number){
|
|
await db.run('INSERT INTO characters (user_id) VALUES (?)', [userId]);
|
|
return await this.readCharacter(db, userId)
|
|
}
|
|
|
|
static async readCharacter(db: DatabaseController, userId : number): Promise<characterData>{
|
|
let player = await db.select(`SELECT * FROM characters WHERE user_id = ? LIMIT 1`, [userId])
|
|
if (player.length > 0){
|
|
let row = player[0]
|
|
return new characterData({
|
|
...row,
|
|
inventory: row.inventory ? JSON.parse(row.inventory) : undefined,
|
|
questBook: row.questBook ? JSON.parse(row.questBook) : undefined,
|
|
})
|
|
}
|
|
else{
|
|
return null
|
|
}
|
|
}
|
|
|
|
static async savePlayer(db: DatabaseController, data: characterData){
|
|
await db.run(`UPDATE characters SET (inventory, questBook) VALUES (?,?) WHERE id = ?`,
|
|
[JSON.stringify(data.inventory), JSON.stringify(data.questBook), data.id])
|
|
}
|
|
} |