Files
GPI/src/server/controllers/dataSheetController.ts

71 lines
2.2 KiB
TypeScript

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' });
}
};