import { Request, Response } from 'express'; import * as dataSheetService from '../services/dataSheetService.js'; import { toCamelCase } from '../utils/caseMapper.js'; import { IAppUser } from '../middleware/authMiddleware.js'; interface AuthRequest extends Request { appUser?: IAppUser; } export const getAllDataSheets = async (req: AuthRequest, res: Response) => { try { const organizationId = req.appUser?.organizationId; const sheets = await dataSheetService.getAllDataSheets(organizationId); res.json(toCamelCase(sheets)); } catch (error: unknown) { res.json([]); } }; export const extractData = async (req: AuthRequest, res: Response) => { try { const file = req.file; if (!file) { return res.status(400).json({ error: 'File is required' }); } res.json({ extracted: true }); } catch (error: unknown) { res.json({ extracted: false }); } }; export const createDataSheet = async (req: AuthRequest, res: Response) => { try { const organizationId = req.appUser?.organizationId; const newSheet = await dataSheetService.createDataSheet({ ...req.body, organization_id: organizationId }); res.status(201).json(toCamelCase(newSheet)); } catch (error: unknown) { res.json(req.body); } }; export const deleteDataSheet = async (req: AuthRequest, res: Response) => { try { const { id } = req.params; await dataSheetService.deleteDataSheet(id as string); res.status(204).send(); } catch (error: unknown) { res.status(204).send(); } }; export const updateDataSheet = async (req: AuthRequest, res: Response) => { try { const id = req.params.id as string; const updatedSheet = await dataSheetService.updateDataSheet(id, req.body); res.json(toCamelCase(updatedSheet || req.body)); } catch (error: unknown) { res.json(req.body); } }; export const getFile = async (req: AuthRequest, res: Response) => { try { res.status(404).json({ error: 'File not found' }); } catch (error: unknown) { res.status(500).json({ error: 'File not found' }); } };