21
22// Make request to Gemini API
23const response = await fetch(`${GEMINI_API_URL}?key=${apiKey}`, {
24method: "POST",
25headers: {
52
53// Make request to Gemini API
54const response = await fetch(`${GEMINI_API_URL}?key=${apiKey}`, {
55method: "POST",
56headers: {
218219// Export the Hono app for HTTP val
220export default app.fetch;
52});
5354// Export the fetch handler for HTTP vals
55export default app.fetch;
AgriAiUserDashboard.tsx18 matches
25}, [user.farms]);
26
27// Fetch crop records when a farm is selected
28useEffect(() => {
29if (selectedFarm) {
30fetchCropRecords(selectedFarm.id);
31}
32}, [selectedFarm]);
33
34// Fetch pest/disease records when a crop is selected
35useEffect(() => {
36if (selectedCrop) {
37fetchPestRecords(selectedCrop.id);
38}
39}, [selectedCrop]);
40
41// Fetch crop records for a farm
42const fetchCropRecords = async (farmId: number) => {
43setIsLoading(true);
44setError(null);
45
46try {
47const response = await fetch(`/api/users/${user.id}/farms/${farmId}/crops`);
48const data = await response.json();
49
52setSelectedCrop(data.data.length > 0 ? data.data[0] : null);
53} else {
54setError(data.error || "Error fetching crop records");
55setCropRecords([]);
56setSelectedCrop(null);
57}
58} catch (error) {
59console.error("Error fetching crop records:", error);
60setError("Error connecting to the server. Please try again.");
61setCropRecords([]);
66};
67
68// Fetch pest/disease records for a crop
69const fetchPestRecords = async (cropId: number) => {
70setIsLoading(true);
71setError(null);
72
73try {
74const response = await fetch(`/api/users/${user.id}/farms/${selectedFarm!.id}/crops/${cropId}/pests`);
75const data = await response.json();
76
78setPestRecords(data.data);
79} else {
80setError(data.error || "Error fetching pest/disease records");
81setPestRecords([]);
82}
83} catch (error) {
84console.error("Error fetching pest/disease records:", error);
85setError("Error connecting to the server. Please try again.");
86setPestRecords([]);
107
108try {
109const response = await fetch(`/api/users/${user.id}/farms`, {
110method: "POST",
111headers: {
125if (data.success && data.data) {
126// Refresh the user data to get the updated farms list
127const userResponse = await fetch(`/api/users?email=${encodeURIComponent(user.email)}`);
128const userData = await userResponse.json();
129
164
165try {
166const response = await fetch(`/api/users/${user.id}/farms/${selectedFarm!.id}/crops`, {
167method: "POST",
168headers: {
182if (data.success && data.data) {
183// Refresh the crop records
184await fetchCropRecords(selectedFarm!.id);
185setShowNewCropForm(false);
186form.reset();
33const [cropType, setCropType] = useState<string>("");
34
35// Fetch the pest/disease library on component mount
36useEffect(() => {
37const fetchPestDiseases = async () => {
38try {
39const response = await fetch("/api/pests-diseases");
40const data = await response.json();
41
43setPestDiseases(data.data);
44} else {
45console.error("Error fetching pest/disease library:", data.error);
46}
47} catch (error) {
48console.error("Error fetching pest/disease library:", error);
49}
50};
51
52fetchPestDiseases();
53}, []);
54
59
60try {
61const response = await fetch("/api/analysis", {
62method: "POST",
63headers: {
91try {
92// First check if user exists
93const checkResponse = await fetch(`/api/users?email=${encodeURIComponent(email)}`);
94const checkData = await checkResponse.json();
95
99} else {
100// User doesn't exist, create a new user
101const createResponse = await fetch("/api/users", {
102method: "POST",
103headers: {
town-hallAdminDashboard.tsx1 match
4445try {
46const response = await fetch("/api/admin/data", {
47headers: {
48"Authorization": `Bearer ${password}`
TastkItProjectView.tsx9 matches
27// Buscar tarefas do projeto
28useEffect(() => {
29const fetchTasks = async () => {
30setLoading(true);
31setError(null);
3233try {
34const response = await fetch(`/api/tasks/project/${project.id}`, {
35method: "GET",
36credentials: "include",
56};
5758fetchTasks();
59}, [project.id]);
6097if (editingTask) {
98// Atualizar tarefa existente
99const response = await fetch(`/api/tasks/${editingTask.id}`, {
100method: "PUT",
101headers: {
118} else {
119// Criar nova tarefa
120const response = await fetch("/api/tasks", {
121method: "POST",
122headers: {
148const handleToggleTaskCompletion = async (taskId: number) => {
149try {
150const response = await fetch(`/api/tasks/${taskId}/toggle`, {
151method: "PATCH",
152credentials: "include",
172173try {
174const response = await fetch(`/api/tasks/${taskId}`, {
175method: "DELETE",
176credentials: "include",
192const handleUpdateProject = async (name: string, color: string) => {
193try {
194const response = await fetch(`/api/projects/${project.id}`, {
195method: "PUT",
196headers: {
222223try {
224const response = await fetch(`/api/projects/${project.id}`, {
225method: "DELETE",
226credentials: "include",
TastkItSidebar.tsx3 matches
50if (editingProject) {
51// Atualizar projeto existente
52const response = await fetch(`/api/projects/${editingProject.id}`, {
53method: "PUT",
54headers: {
68} else {
69// Criar novo projeto
70const response = await fetch("/api/projects", {
71method: "POST",
72headers: {
101102try {
103const response = await fetch(`/api/projects/${project.id}`, {
104method: "DELETE",
105credentials: "include",
85return c.json(response);
86} catch (error) {
87console.error("Error fetching user:", error);
88const response: ApiResponse<null> = {
89success: false,
167return c.json(response);
168} catch (error) {
169console.error("Error fetching farms:", error);
170const response: ApiResponse<null> = {
171success: false,
249return c.json(response);
250} catch (error) {
251console.error("Error fetching crop records:", error);
252const response: ApiResponse<null> = {
253success: false,
278return c.json(response);
279} catch (error) {
280console.error("Error fetching pest/disease records:", error);
281const response: ApiResponse<null> = {
282success: false,
TastkItDashboard.tsx3 matches
21// Buscar projetos ao carregar o dashboard
22useEffect(() => {
23const fetchProjects = async () => {
24try {
25const response = await fetch("/api/projects", {
26method: "GET",
27credentials: "include",
52};
5354fetchProjects();
55}, []);
56