aslna-sdk
v1.0.1
Published
Supabase SDK query patterns for Aslna frontend
Readme
aslna-sdk
Supabase SDK query patterns for the Aslna frontend — an Algerian cultural heritage platform.
Installation
npm install aslna-sdkSetup
import { getSupabaseClient } from 'aslna-sdk'
const supabase = getSupabaseClient(
process.env.SUPABASE_URL,
process.env.SUPABASE_ANON_KEY
)Available Functions
Memories
import { getMemoryPins, submitMemory } from 'aslna-sdk'
// Load approved memory pins for the map
const pins = await getMemoryPins(supabase)
// Filter by pin type: 'artisan' | 'story' | 'music' | 'craft'
const artisanPins = await getMemoryPins(supabase, 'artisan')
// Submit a new memory with media files
const memory = await submitMemory(supabase, {
pin_type: 'artisan',
reporter_id: user.id,
subject_name: 'Ahmed',
subject_age: 72,
subject_origin_id: 'wilaya-uuid',
domain: 'music',
description_paragraph: '...',
coordinates: { lat: 36.7, lng: 3.0 }
}, mediaFiles)Posts
import { submitPost, getCommunityFeed } from 'aslna-sdk'
// Get community feed (60/40 rotation)
const posts = await getCommunityFeed(supabase, user.id)
// Submit a post with media
const post = await submitPost(supabase, {
author_id: user.id,
content_text: '...',
wilaya_id: 'wilaya-uuid'
}, mediaFiles)Dashboard
import { getRarestWilayas, getDyingTraditions } from 'aslna-sdk'
const wilayas = await getRarestWilayas(supabase)
const traditions = await getDyingTraditions(supabase)Profile
import { getUserHistory, getSavedMemories, getArtisanProfile } from 'aslna-sdk'
const history = await getUserHistory(supabase, user.id)
const saved = await getSavedMemories(supabase, user.id)
const profile = await getArtisanProfile(supabase, user.id)Games
import { getGames, getUserGameProgress, updateGameLevel } from 'aslna-sdk'
const games = await getGames(supabase)
const progress = await getUserGameProgress(supabase, user.id)
await updateGameLevel(supabase, user.id, gameId, newLevel)Cultural Test
import { runCulturalTest, saveRecommendedInterests } from 'aslna-sdk'
const test = await runCulturalTest(supabase, user.id)
// test.questions → render quiz UI
await saveRecommendedInterests(supabase, user.id, test.recommended_interests)Spotify Diagnosis
import { runSpotifyDiagnosis, getSpotifyDiagnosis } from 'aslna-sdk'
// Call after OAuth redirect
const diagnosis = await runSpotifyDiagnosis(supabase, user.id, spotifyCode)
// diagnosis.algerian_ratio, diagnosis.missing_wilaya_ids, diagnosis.buried_content
// Fetch stored diagnosis
const stored = await getSpotifyDiagnosis(supabase, user.id)Admin
import { getModerationQueue, approveMemory, approvePost, getRarityHistory } from 'aslna-sdk'
const queue = await getModerationQueue(supabase)
await approveMemory(supabase, memoryId)
await approvePost(supabase, postId)
const history = await getRarityHistory(supabase)