2024-07-23 20:15:27 +00:00
|
|
|
"use server";
|
|
|
|
|
|
|
|
import { getAuth } from "@/auth/queries/getauth";
|
2024-08-02 01:42:14 +00:00
|
|
|
import { supportedVersionNumber } from "@/lib/helpers";
|
|
|
|
import { artemis } from "@/lib/prisma";
|
2024-07-23 20:15:27 +00:00
|
|
|
|
2024-07-25 03:25:01 +00:00
|
|
|
export async function getCurrentAvatarParts() {
|
|
|
|
const { user } = await getAuth();
|
|
|
|
|
|
|
|
if (!user || !user.accessCode) {
|
|
|
|
throw new Error("User is not authenticated or accessCode is missing");
|
|
|
|
}
|
|
|
|
|
2024-07-28 05:16:27 +00:00
|
|
|
const CurrentAvatarParts = await artemis.chuni_profile_data.findMany({
|
2024-07-25 03:25:01 +00:00
|
|
|
where: {
|
|
|
|
user: user.UserId,
|
2024-08-02 01:42:14 +00:00
|
|
|
version: supportedVersionNumber, // TODO: eventually change this so the user can set their own version
|
2024-07-25 03:25:01 +00:00
|
|
|
},
|
|
|
|
select: {
|
|
|
|
avatarSkin: true,
|
|
|
|
avatarBack: true,
|
|
|
|
avatarFace: true,
|
|
|
|
avatarFront: true,
|
|
|
|
avatarHead: true,
|
|
|
|
avatarItem: true,
|
|
|
|
avatarWear: true,
|
|
|
|
},
|
|
|
|
});
|
2024-07-28 05:16:27 +00:00
|
|
|
return CurrentAvatarParts;
|
2024-07-25 03:25:01 +00:00
|
|
|
}
|
2024-08-02 01:42:14 +00:00
|
|
|
export async function updateAvatarParts(
|
|
|
|
avatarHead?: number,
|
|
|
|
avatarFace?: number,
|
|
|
|
avatarBack?: number,
|
|
|
|
avatarWear?: number,
|
|
|
|
avatarItem?: number,
|
|
|
|
) {
|
|
|
|
const { user } = await getAuth();
|
|
|
|
|
|
|
|
if (!user || !user.accessCode) {
|
|
|
|
throw new Error("User is not authenticated or accessCode is missing");
|
|
|
|
}
|
2024-07-23 20:15:27 +00:00
|
|
|
|
2024-08-02 01:42:14 +00:00
|
|
|
try {
|
|
|
|
// only including the values that aren't undefined i.e 0
|
|
|
|
const AvatarPartData: any = {};
|
|
|
|
if (avatarHead !== undefined) AvatarPartData.avatarHead = avatarHead;
|
|
|
|
if (avatarFace !== undefined) AvatarPartData.avatarFace = avatarFace;
|
|
|
|
if (avatarBack !== undefined) AvatarPartData.avatarBack = avatarBack;
|
|
|
|
if (avatarWear !== undefined) AvatarPartData.avatarWear = avatarWear;
|
|
|
|
if (avatarItem !== undefined) AvatarPartData.avatarItem = avatarItem;
|
|
|
|
|
|
|
|
const UpdateAvatarHead = await artemis.chuni_profile_data.update({
|
|
|
|
where: {
|
|
|
|
user_version: {
|
|
|
|
user: user.UserId,
|
|
|
|
version: supportedVersionNumber,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
data: AvatarPartData,
|
|
|
|
});
|
|
|
|
|
|
|
|
console.log(UpdateAvatarHead);
|
|
|
|
|
|
|
|
return UpdateAvatarHead;
|
|
|
|
} catch (error) {
|
|
|
|
console.error("Error updating avatar parts:", error);
|
|
|
|
throw error;
|
|
|
|
}
|
|
|
|
}
|
2024-07-23 20:15:27 +00:00
|
|
|
export async function getAllAvatarParts(category: number) {
|
2024-07-25 03:25:01 +00:00
|
|
|
const { user } = await getAuth();
|
|
|
|
|
|
|
|
if (!user || !user.accessCode) {
|
|
|
|
throw new Error("User is not authenticated or accessCode is missing");
|
|
|
|
}
|
|
|
|
|
2024-07-28 05:16:27 +00:00
|
|
|
const AllAvatarParts = await artemis.chuni_static_avatar.findMany({
|
2024-07-25 03:25:01 +00:00
|
|
|
where: {
|
|
|
|
category: category,
|
|
|
|
},
|
|
|
|
select: {
|
|
|
|
id: true,
|
|
|
|
name: true,
|
|
|
|
avatarAccessoryId: true,
|
|
|
|
category: true,
|
|
|
|
version: true,
|
|
|
|
iconPath: true,
|
|
|
|
texturePath: true,
|
|
|
|
},
|
|
|
|
});
|
2024-07-28 05:16:27 +00:00
|
|
|
return AllAvatarParts;
|
2024-07-25 03:25:01 +00:00
|
|
|
}
|