Revolt-Bot/src/repositories/MemberRepo.ts

80 lines
2.1 KiB
TypeScript
Raw Normal View History

import { Database } from 'bun:sqlite';
2024-03-15 18:41:08 +01:00
import MemberModel from '../models/MemberModel';
2024-03-15 18:41:08 +01:00
export class MemberRepo {
db : Database
2024-03-15 18:41:08 +01:00
constructor(database_instance: Database) {
this.db = database_instance;
}
2024-03-17 17:13:51 +01:00
getById(member_id: number): MemberModel {
const row: any = this.db.query("SELECT * FROM members WHERE members.id=?")
.get(member_id)
const mapped_row: MemberModel = {
"id": row.id,
"name": row.name,
"prefix": row.prefix,
"owner": row.owner,
"profile_pic_url": row.profile_pic_url
}
return mapped_row
}
getByName(name: string, user_id: string) {
if (name == null || user_id == null) {return null}
const query = this.db.query(`
SELECT *
FROM members
WHERE members.name=?
AND members.owner=?
`)
const row: any = query.get(name, user_id)
if (row == null) {return null}
const mapped_row: MemberModel = {
"id": row.id,
"name": row.name,
"prefix": row.prefix,
"owner": row.owner,
"profile_pic_url": row.profile_pic_url
}
return mapped_row
}
getAltersByUserId(userId : string) : MemberModel[] {
const query = this.db.query("SELECT * FROM members WHERE members.owner=?")
let result: MemberModel[] = query.all(userId).map( (row: any) => {
const mapped_row: MemberModel = {
2024-03-17 17:13:51 +01:00
"id": row.id,
"name": row.name,
"prefix": row.prefix,
"owner": row.owner,
"profile_pic_url": row.profile_pic_url
}
return mapped_row
})
return result
}
2024-03-15 18:41:08 +01:00
addAlterForUser(alter: MemberModel){
this.db.query("INSERT INTO members (owner, prefix, name, profile_pic_url) VALUES(?, ?, ?, ?)")
.run(alter.owner, alter.prefix, alter.name, alter.profile_pic_url)
}
2024-03-15 18:41:08 +01:00
editAlter(alter: MemberModel){
this.db.query("UPDATE members SET owner=?, prefix=?, name=?, profile_pic_url=?, color=? WHERE members.id=?")
.run(alter.owner, alter.prefix, alter.name, alter.profile_pic_url, alter.color, alter.id)
}
2024-03-15 18:41:08 +01:00
delete(alterId: number) {
this.db.query("DELETE FROM members WHERE members.id=?").run(alterId)
}
}