diff --git a/src/libs/reviews.ts b/src/libs/reviews.ts index 72560fe..0d51cca 100644 --- a/src/libs/reviews.ts +++ b/src/libs/reviews.ts @@ -1,10 +1,28 @@ import directus from "./directus"; -import { readItems } from "@directus/sdk"; +import { readItems, type Query } from "@directus/sdk"; +import type { DirectusSchema, Review } from "../types/codyops-reviews"; + +const isDev = import.meta.env.DEV; // Astro's way to check for development mode export const reviews = await directus.request( - readItems("codyops_reviews", { - fields: ['*', 'user_created.*'] - } + readItems>("codyops_reviews", { + fields: [ + 'stars', + 'date_created', + 'course_id', + 'feedback', + { + user_created: [ + 'first_name', + 'last_name', + 'avatar' + ] + }, + ], + filter: { + status: isDev ? { '_neq': 'archived' } : { '_eq': 'published' } + }, + } ) ); diff --git a/src/types/codyops-reviews.ts b/src/types/codyops-reviews.ts new file mode 100644 index 0000000..06fffc9 --- /dev/null +++ b/src/types/codyops-reviews.ts @@ -0,0 +1,17 @@ +import type { Users } from "./codyops-users"; + +export interface Review { + slug: string; + status: string; + user_created?: Partial; + user_updated: string | null; + date_created: string | null; + date_updated: string | null; + stars: number; + course_id: number; + feedback: string; +} + +export interface DirectusSchema { + codyops_reviews: Review[]; +}