From ba6eceefcbd233fe7548428aa5860140447e87a4 Mon Sep 17 00:00:00 2001 From: Oliver Gwyther Date: Fri, 15 Aug 2025 22:38:56 +0100 Subject: [PATCH] Refactor Dockerfile to enhance mock API structure by consolidating and expanding mock database and API files. Updated mock implementations for auth, scripts, ratings, analytics, collections, and users to include additional functionalities and improve overall API consistency for frontend-only builds. --- Dockerfile | 67 ++++++++++++++++-------------------------------------- 1 file changed, 19 insertions(+), 48 deletions(-) diff --git a/Dockerfile b/Dockerfile index 651d761..294fac6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -31,60 +31,31 @@ RUN rm -rf src/lib/db || true # Create mock API layer for frontend demo RUN mkdir -p src/lib/api src/lib/db -RUN echo "export const db = {}; export * from './mock';" > src/lib/db/index.ts -RUN echo "export const users = {}; export const scripts = {};" > src/lib/db/schema.ts -RUN echo "export * from './mock';" > src/lib/api/index.ts -# Create mock API files -RUN cat > src/lib/api/auth.ts << 'EOF' -export const authApi = { - login: async () => ({ token: 'demo', user: { id: '1', username: 'demo' } }), - register: async () => ({ token: 'demo', user: { id: '1', username: 'demo' } }), -}; -EOF +# Create mock database files +RUN echo "export const db = {};" > src/lib/db/index.ts +RUN echo "export const users = {}; export const scripts = {}; export const ratings = {}; export const scriptVersions = {}; export const scriptAnalytics = {}; export const scriptCollections = {}; export const collectionScripts = {};" > src/lib/db/schema.ts -RUN cat > src/lib/api/scripts.ts << 'EOF' -export const scriptsApi = { - getScripts: async () => ({ scripts: [], total: 0 }), - getScript: async () => null, - createScript: async () => ({}), - updateScript: async () => ({}), - deleteScript: async () => ({}), - moderateScript: async () => ({}), -}; -EOF +# Create mock API index +RUN echo "export const generateId = () => 'mock-id'; export class ApiError extends Error { constructor(message, status) { super(message); this.status = status; } }" > src/lib/api/index.ts -RUN cat > src/lib/api/ratings.ts << 'EOF' -export const ratingsApi = { - submitRating: async () => ({}), - getUserRating: async () => null, - getScriptRatingStats: async () => ({ averageRating: 0, totalRatings: 0 }), -}; -EOF +# Create mock auth API +RUN echo "export const authApi = { login: async () => ({ token: 'demo', user: { id: '1', username: 'demo' } }), register: async () => ({ token: 'demo', user: { id: '1', username: 'demo' } }), changePassword: async () => ({}), refreshToken: async () => ({ token: 'demo' }) };" > src/lib/api/auth.ts -RUN cat > src/lib/api/analytics.ts << 'EOF' -export const analyticsApi = { - trackEvent: async () => ({}), - getAnalytics: async () => ({ views: [], downloads: [] }), -}; -EOF +# Create mock scripts API +RUN echo "export const scriptsApi = { getScripts: async () => ({ scripts: [], total: 0 }), getScript: async () => null, createScript: async () => ({}), updateScript: async () => ({}), deleteScript: async () => ({}), moderateScript: async () => ({}) };" > src/lib/api/scripts.ts -RUN cat > src/lib/api/collections.ts << 'EOF' -export const collectionsApi = { - getCollections: async () => [], - createCollection: async () => ({}), - updateCollection: async () => ({}), - deleteCollection: async () => ({}), -}; -EOF +# Create mock ratings API +RUN echo "export const ratingsApi = { submitRating: async () => ({}), getUserRating: async () => null, getScriptRatingStats: async () => ({ averageRating: 0, totalRatings: 0, distribution: {} }) };" > src/lib/api/ratings.ts -RUN cat > src/lib/api/users.ts << 'EOF' -export const usersApi = { - getUser: async () => null, - updateUser: async () => ({}), - updateUserPermissions: async () => ({}), -}; -EOF +# Create mock analytics API +RUN echo "export const analyticsApi = { trackEvent: async () => ({}), getAnalytics: async () => ({ views: [], downloads: [], topScripts: [], userGrowth: [] }) };" > src/lib/api/analytics.ts + +# Create mock collections API +RUN echo "export const collectionsApi = { getCollections: async () => [], createCollection: async () => ({}), updateCollection: async () => ({}), deleteCollection: async () => ({}), addScriptToCollection: async () => ({}), removeScriptFromCollection: async () => ({}) };" > src/lib/api/collections.ts + +# Create mock users API +RUN echo "export const usersApi = { getUser: async () => null, updateUser: async () => ({}), updateUserPermissions: async () => ({}), getAllUsers: async () => ([]), searchUsers: async () => ([]) };" > src/lib/api/users.ts # Build the application (frontend only with mocks) RUN npm run build