'use server'; import { revalidatePath, revalidateTag } from 'next/cache' import { Bucket, Post, PostBucket, User, dbSync } from "@/model/Models"; import { Attributes, where } from "@sequelize/core"; import { cookies } from 'next/headers'; import { getCookieAuth, userIsAdmin } from '../actions'; import { ActionResult } from '../ActionResult'; import { PostAttributesWithBuckets } from '@/model/Post'; export async function deletePost(postID: number): Promise> { await dbSync; // revalidatePath("/admin/man-post","page") if(! await userIsAdmin()) return {error:"Unauthorized, not deleting Post", result: false} const destroy = await Post.destroy({ where: { id: postID } }); return {result: true}; } export async function getPostsWithBuckets(): Promise> { await dbSync; if(! await userIsAdmin()) return {error:"Unauthorized, not fetching Posts."} const posts = await Post.findAll({include: {association: Post.associations.buckets, include: Bucket.associations.attachments}},); return {result:JSON.parse(JSON.stringify(posts))}; } export async function getPosts(): Promise[]>> { await dbSync; if(! await userIsAdmin()) return {error:"Unauthorized, not fetching Posts."} const posts = await Post.findAll(); return {result:JSON.parse(JSON.stringify(posts))}; } export async function updatePost(postAttributes: Partial>): Promise[]>> { await dbSync; if(! await userIsAdmin()) return {error:"Unauthorized, not updating Post."} const post = await Post.update(postAttributes, {where:{id:postAttributes.id}}); return {result:JSON.parse(JSON.stringify(post))}; }