50 lines
1.5 KiB
TypeScript
50 lines
1.5 KiB
TypeScript
import { Request, Response } from 'express';
|
|
import { supabase } from '../config/supabase.js';
|
|
|
|
export const getAllStudies = async (req: Request, res: Response) => {
|
|
try {
|
|
const { data, error } = await supabase.from('yield_studies').select('*');
|
|
if (error && error.code !== '42P01') throw error;
|
|
res.json(data || []);
|
|
} catch (error: unknown) {
|
|
res.json([]);
|
|
}
|
|
};
|
|
|
|
export const createStudy = async (req: Request, res: Response) => {
|
|
try {
|
|
const { data, error } = await supabase
|
|
.from('yield_studies')
|
|
.insert({ ...req.body, organization_id: req.appUser?.organizationId })
|
|
.select()
|
|
.single();
|
|
if (error) throw error;
|
|
res.status(201).json(data);
|
|
} catch (error: unknown) {
|
|
res.json(req.body);
|
|
}
|
|
};
|
|
|
|
export const updateStudy = async (req: Request, res: Response) => {
|
|
try {
|
|
const { data, error } = await supabase
|
|
.from('yield_studies')
|
|
.update(req.body)
|
|
.eq('id', req.params.id)
|
|
.select()
|
|
.single();
|
|
if (error) throw error;
|
|
res.json(data);
|
|
} catch (error: unknown) {
|
|
res.json(req.body);
|
|
}
|
|
};
|
|
|
|
export const deleteStudy = async (req: Request, res: Response) => {
|
|
try {
|
|
await supabase.from('yield_studies').delete().eq('id', req.params.id);
|
|
res.status(204).send();
|
|
} catch (error: unknown) {
|
|
res.status(204).send();
|
|
}
|
|
}; |