2024-03-15 23:20:11 +01:00
|
|
|
import { Database } from 'bun:sqlite';
|
2024-03-15 18:41:08 +01:00
|
|
|
import MemberModel from '../models/MemberModel';
|
2023-09-02 23:21:55 +02:00
|
|
|
|
2024-03-15 18:41:08 +01:00
|
|
|
export class MemberRepo {
|
2023-09-02 23:21:55 +02:00
|
|
|
db : Database
|
2024-03-15 18:41:08 +01:00
|
|
|
|
|
|
|
constructor(database_instance: Database) {
|
|
|
|
this.db = database_instance;
|
2023-09-02 23:21:55 +02:00
|
|
|
}
|
|
|
|
|
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[] {
|
2024-03-15 23:20:11 +01:00
|
|
|
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,
|
2024-03-15 23:20:11 +01:00
|
|
|
"name": row.name,
|
|
|
|
"prefix": row.prefix,
|
|
|
|
"owner": row.owner,
|
|
|
|
"profile_pic_url": row.profile_pic_url
|
|
|
|
}
|
|
|
|
return mapped_row
|
2023-09-02 23:21:55 +02:00
|
|
|
})
|
|
|
|
return result
|
|
|
|
}
|
|
|
|
|
2024-03-15 18:41:08 +01:00
|
|
|
addAlterForUser(alter: MemberModel){
|
2024-03-15 23:20:11 +01:00
|
|
|
this.db.query("INSERT INTO members (owner, prefix, name, profile_pic_url) VALUES(?, ?, ?, ?)")
|
|
|
|
.run(alter.owner, alter.prefix, alter.name, alter.profile_pic_url)
|
2023-09-02 23:21:55 +02:00
|
|
|
}
|
|
|
|
|
2024-03-15 18:41:08 +01:00
|
|
|
editAlter(alter: MemberModel){
|
2024-03-15 23:20:11 +01:00
|
|
|
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)
|
2023-09-02 23:21:55 +02:00
|
|
|
}
|
|
|
|
|
2024-03-15 18:41:08 +01:00
|
|
|
delete(alterId: number) {
|
2024-03-15 23:20:11 +01:00
|
|
|
this.db.query("DELETE FROM members WHERE members.id=?").run(alterId)
|
2023-09-02 23:21:55 +02:00
|
|
|
}
|
|
|
|
}
|