Files
rc-compat/setup-api-layer.sh
T

111 lines
2.9 KiB
Bash
Executable File

#!/bin/zsh
echo "📡 Creating API Layer for RC Compatibility App..."
BASE="src/app/api"
#############################################
# CREATE DIRECTORY STRUCTURE
#############################################
mkdir -p "$BASE/models"
mkdir -p "$BASE/models/[id]"
mkdir -p "$BASE/parts"
mkdir -p "$BASE/parts/[id]"
mkdir -p "$BASE/compatibility/model/[id]"
mkdir -p "$BASE/compatibility/part/[id]"
#############################################
# MODELS → /api/models
#############################################
cat > "$BASE/models/route.js" << 'EOF'
import { MODELS } from "@/src/lib/data/models";
export async function GET() {
return Response.json(MODELS);
}
EOF
#############################################
# MODEL BY ID → /api/models/[id]
#############################################
cat > "$BASE/models/[id]/route.js" << 'EOF'
import { MODELS } from "@/src/lib/data/models";
export async function GET(request, { params }) {
const model = MODELS.find(m => m.id === params.id);
if (!model) {
return Response.json({ error: "Model not found" }, { status: 404 });
}
return Response.json(model);
}
EOF
#############################################
# PARTS → /api/parts
#############################################
cat > "$BASE/parts/route.js" << 'EOF'
import { PARTS } from "@/src/lib/data/parts";
export async function GET() {
return Response.json(PARTS);
}
EOF
#############################################
# PART BY ID → /api/parts/[id]
#############################################
cat > "$BASE/parts/[id]/route.js" << 'EOF'
import { PARTS } from "@/src/lib/data/parts";
export async function GET(request, { params }) {
const part = PARTS.find(p => p.id === params.id);
if (!part) {
return Response.json({ error: "Part not found" }, { status: 404 });
}
return Response.json(part);
}
EOF
#############################################
# MODEL COMPATIBILITY → /api/compatibility/model/[id]
#############################################
cat > "$BASE/compatibility/model/[id]/route.js" << 'EOF'
import { getCompatibleParts } from "@/src/lib/compatibility/engine";
export async function GET(request, { params }) {
const results = getCompatibleParts(params.id);
if (!results.length) {
return Response.json({ error: "No compatible parts or model not found" }, { status: 404 });
}
return Response.json(results);
}
EOF
#############################################
# PART COMPATIBILITY → /api/compatibility/part/[id]
#############################################
cat > "$BASE/compatibility/part/[id]/route.js" << 'EOF'
import { getCrossCompatibleModels } from "@/src/lib/compatibility/engine";
export async function GET(request, { params }) {
const results = getCrossCompatibleModels(params.id);
if (!results.length) {
return Response.json({ error: "No compatible models or part not found" }, { status: 404 });
}
return Response.json(results);
}
EOF
echo "🎉 API Layer created successfully!"