@@ -2,25 +2,30 @@ import { json } from '@sveltejs/kit';
22import type { RequestHandler } from './$types' ;
33import { getCurrentUser , slugify , generateId } from '$lib/server/auth' ;
44
5- export const GET : RequestHandler = async ( { platform, cookies } ) => {
5+ export const GET : RequestHandler = async ( { platform, cookies, request } ) => {
66 const env = platform ?. env ;
77 if ( ! env ) return json ( { error : 'Platform env not available' } , { status : 500 } ) ;
88
9- const user = await getCurrentUser ( cookies , env . DB , env . JWT_SECRET ) ;
9+ const user = await getCurrentUser ( request , cookies , env . DB , env . JWT_SECRET ) ;
1010 if ( ! user ) return json ( { error : 'Unauthorized' } , { status : 401 } ) ;
1111
12- const { results } = await env . DB . prepare ( 'SELECT id, slug, name, description, base_preset, is_public, alias, updated_at FROM configs WHERE user_id = ? ORDER BY updated_at DESC' )
12+ const { results } = await env . DB . prepare ( 'SELECT id, slug, name, description, base_preset, is_public, alias, updated_at, snapshot, snapshot_at FROM configs WHERE user_id = ? ORDER BY updated_at DESC' )
1313 . bind ( user . id )
1414 . all ( ) ;
1515
16- return json ( { configs : results , username : user . username } ) ;
16+ const configs = results . map ( ( config : any ) => ( {
17+ ...config ,
18+ snapshot : config . snapshot ? JSON . parse ( config . snapshot ) : null
19+ } ) ) ;
20+
21+ return json ( { configs, username : user . username } ) ;
1722} ;
1823
1924export const POST : RequestHandler = async ( { platform, cookies, request } ) => {
2025 const env = platform ?. env ;
2126 if ( ! env ) return json ( { error : 'Platform env not available' } , { status : 500 } ) ;
2227
23- const user = await getCurrentUser ( cookies , env . DB , env . JWT_SECRET ) ;
28+ const user = await getCurrentUser ( request , cookies , env . DB , env . JWT_SECRET ) ;
2429 if ( ! user ) return json ( { error : 'Unauthorized' } , { status : 401 } ) ;
2530
2631 let body ;
@@ -30,7 +35,7 @@ export const POST: RequestHandler = async ({ platform, cookies, request }) => {
3035 return json ( { error : 'Invalid request body' } , { status : 400 } ) ;
3136 }
3237
33- const { name, description, base_preset, packages, custom_script, is_public, alias, dotfiles_repo } = body ;
38+ const { name, description, base_preset, packages, custom_script, is_public, alias, dotfiles_repo, snapshot , snapshot_at } = body ;
3439
3540 if ( ! name ) return json ( { error : 'Name is required' } , { status : 400 } ) ;
3641
@@ -64,11 +69,11 @@ export const POST: RequestHandler = async ({ platform, cookies, request }) => {
6469 try {
6570 await env . DB . prepare (
6671 `
67- INSERT INTO configs (id, user_id, slug, name, description, base_preset, packages, custom_script, is_public, alias, dotfiles_repo)
68- VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
72+ INSERT INTO configs (id, user_id, slug, name, description, base_preset, packages, custom_script, is_public, alias, dotfiles_repo, snapshot, snapshot_at )
73+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )
6974 `
7075 )
71- . bind ( id , user . id , slug , name , description || '' , base_preset || 'developer' , JSON . stringify ( packages || [ ] ) , custom_script || '' , is_public !== false ? 1 : 0 , cleanAlias , dotfiles_repo || '' )
76+ . bind ( id , user . id , slug , name , description || '' , base_preset || 'developer' , JSON . stringify ( packages || [ ] ) , custom_script || '' , is_public !== false ? 1 : 0 , cleanAlias , dotfiles_repo || '' , snapshot ? JSON . stringify ( snapshot ) : null , snapshot_at || null )
7277 . run ( ) ;
7378 } catch ( e ) {
7479 return json ( { error : 'Database error: ' + ( e as Error ) . message } , { status : 500 } ) ;
0 commit comments