Files
concord/concord-server/src/services/instanceService.ts

57 lines
1.5 KiB
TypeScript
Raw Normal View History

2025-09-27 21:01:52 -04:00
import { PrismaClient } from "@prisma/client";
import { CreateInstanceRequest } from "../validators/instanceValidator";
import { getUserCredentials, getUserInformation } from "./userService";
const prisma = new PrismaClient();
export async function createInstance(data: CreateInstanceRequest) {
try {
const creds = await getUserCredentials(data.requestingUserId);
const user = await getUserInformation(data.requestingUserId);
if (!creds
|| creds.token != data.requestingUserToken
|| !user
|| !user.admin) {
return null;
}
const newInstance = await prisma.instance.create({
data: {
name: data.name,
icon: data.icon
}
});
return {
success: true,
data: newInstance
};
} catch (error) {
console.error("Error creating instance:", error);
return {
success: false,
error: "Failed to create instance"
};
}
}
export async function getAllInstances() {
try {
const instances = await prisma.instance.findMany({
orderBy: {
createdAt: 'desc'
}
});
return {
success: true,
data: instances
};
} catch (error) {
console.error("Error fetching instances:", error);
return {
success: false,
error: "Failed to fetch instances"
};
}
}