2024-03-15 18:41:08 +01:00
|
|
|
import { MemberRepo } from "../repositories/MemberRepo"
|
|
|
|
import MemberModel from "../models/MemberModel"
|
2024-03-15 23:20:11 +01:00
|
|
|
import { Database } from "bun:sqlite";
|
2023-09-05 20:34:33 +02:00
|
|
|
|
2024-03-15 18:41:08 +01:00
|
|
|
async function colorMemberChange(userId: string, args: string[], database: Database){
|
|
|
|
const memberRepo = new MemberRepo(database);
|
2023-09-07 15:18:21 +02:00
|
|
|
const regexHex = /^#[0-9A-F]{6}$/i;
|
|
|
|
|
|
|
|
if (args.length == 2 && regexHex.test(args[1])){
|
2023-09-05 20:34:33 +02:00
|
|
|
const alterName = args[0];
|
|
|
|
const alterColor = args[1];
|
|
|
|
|
2024-03-17 17:13:51 +01:00
|
|
|
const alters: MemberModel[] = memberRepo.getAltersByUserId(userId) // fetching alters from user.
|
2024-01-08 13:43:05 +01:00
|
|
|
if (alters.length == 0) return "This user has no Members." // checking if returned array is at least not 0, if len 0, then return.
|
2023-09-07 15:18:21 +02:00
|
|
|
|
2024-03-15 18:41:08 +01:00
|
|
|
let alterToEdit: MemberModel;
|
2023-09-07 15:18:21 +02:00
|
|
|
alters.forEach( alter => {
|
|
|
|
if (alter.name == alterName) {
|
|
|
|
alterToEdit = alter;
|
|
|
|
}
|
|
|
|
})
|
|
|
|
|
|
|
|
alterToEdit.color = alterColor;
|
2024-03-15 18:41:08 +01:00
|
|
|
memberRepo.editAlter(alterToEdit)
|
2023-09-05 20:34:33 +02:00
|
|
|
|
2024-01-08 13:43:05 +01:00
|
|
|
return "The Member's colour has been changed."
|
2023-09-05 20:34:33 +02:00
|
|
|
}
|
2023-09-07 15:18:21 +02:00
|
|
|
|
|
|
|
return "Error: Insufficent Arguments"
|
2023-09-05 20:34:33 +02:00
|
|
|
}
|
2024-03-15 18:41:08 +01:00
|
|
|
|
|
|
|
export default colorMemberChange
|