18 lines
812 B
TypeScript
18 lines
812 B
TypeScript
import { requireStageTwoUser, stageTwoApiError, stageTwoDatabase } from '~/server/utils/stage-two-supabase'
|
|
|
|
export default defineEventHandler(async (event) => {
|
|
try {
|
|
const user = await requireStageTwoUser(event)
|
|
const memberships = await stageTwoDatabase<Array<{ campaign_id: string }>>(
|
|
`campaign_members?select=campaign_id&user_id=eq.${user.id}&active=eq.true`,
|
|
)
|
|
const filters = [`owner_id.eq.${user.id}`, ...memberships.map(item => `id.eq.${item.campaign_id}`)]
|
|
const campaigns = await stageTwoDatabase<Array<Record<string, unknown>>>(
|
|
`campaigns?select=id,world_id,owner_id,title,current_scene,next_prompt,status,created_at,updated_at&or=(${filters.join(',')})&order=updated_at.desc`,
|
|
)
|
|
return { campaigns }
|
|
} catch (error) {
|
|
stageTwoApiError(error)
|
|
}
|
|
})
|