Skip to content

Commit 4c0587b

Browse files
Implementation: Form Submission(without s3) - Farm Pond
1 parent 53bd7a7 commit 4c0587b

File tree

3 files changed

+152
-3
lines changed

3 files changed

+152
-3
lines changed

controllers/landformData.controller.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ exports.postLandformData = asyncHandler(async (req, res) => {
6565
safe(landformData.basicDetails.toiletAvailability),
6666
safe(landformData.basicDetails.toiletCondition),
6767
safe(landformData.basicDetails.education),
68-
safe(landformData.id),
68+
safe(landformData.user_id),
6969
safe(today),
7070
safe(landformData.landDevelopment.latitude),
7171
safe(landformData.landDevelopment.longitude),
@@ -94,7 +94,7 @@ exports.postLandformData = asyncHandler(async (req, res) => {
9494
safe(landformData.landDevelopment.soilTypeCombined),
9595
safe(landformData.landDevelopment.landBenefit),
9696
safe(landformData.landDevelopment.proposalArea),
97-
safe(landformData.landDevelopment.workTypeCombined),
97+
safe(landformData.landDevelopment.workType),
9898
safe(landformData.landDevelopment.otherWorks),
9999
safe(landformData.landDevelopment.pradanContribution),
100100
safe(landformData.landDevelopment.farmerContribution),
@@ -103,7 +103,7 @@ exports.postLandformData = asyncHandler(async (req, res) => {
103103
safe(today)
104104
]);
105105

106-
console.log("form id:", form_id);
106+
//console.log("form id:", form_id);
107107

108108
// Insert bank details
109109
await connection.execute(postLandformData_bankdetails_sql, [
Lines changed: 147 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,147 @@
1+
//const mysql = require("mysql2/promise");
2+
const db = require("../configs/mysql_config");
3+
const asyncHandler = require("../middlewares/asyncHandler");
4+
5+
const postPondformData_basicdetails_sql = `INSERT INTO forms (
6+
farmer_name, age, mobile, district, block, panchayat, hamlet,
7+
id_type, id_number, gender, spouse, type_of_households, h_members,
8+
hh_occupation, special_catog, caste, house_owner, type_of_house,
9+
drinking_water, potability, domestic_water, toilet_avail, toilet_cond,
10+
household_education, user_id, created_at, lat, lon, status, form_type
11+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`;
12+
13+
const postPondformData_farm_pond_details_sql = `INSERT INTO farm_pond_details (
14+
form_id, ownership, well_irrigation, area_irrigated, irrigated_lands,
15+
patta, total_area, taluk, firka, revenue, crop_season, livestocks,
16+
sf_number, soil_type, land_to_benefit, date_of_ins, length, breadth,
17+
depth, volume, p_contribution, f_contribution, total_est, area_benefited,
18+
field_insp, date_of_app
19+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`;
20+
21+
const postLandformData_bankdetails_sql = `INSERT INTO bank_details (
22+
form_id, account_holder_name, account_number, bank_name,
23+
branch, ifsc_code, farmer_ack
24+
) VALUES (?, ?, ?, ?, ?, ?, ?)`;
25+
26+
const postLandformData_files_sql = `INSERT INTO files (
27+
form_id, identity, geotag, patta, fmb, photo, passbook
28+
) VALUES (?, ?, ?, ?, ?, ?, ?)`;
29+
30+
exports.postPondformData = asyncHandler(async (req, res) => {
31+
const connection = await db.getConnection();
32+
await connection.beginTransaction(); // 🚀 Start transaction
33+
34+
try {
35+
const pondformData = req.body;
36+
const date = new Date();
37+
const today = new Date(date.getFullYear(), date.getMonth(), date.getDate()).toLocaleDateString('en-CA');
38+
// console.log("Received landform data:", pondformData);
39+
40+
const safe = (value) => value === undefined ? null : value;
41+
42+
// Insert basic details
43+
const [formResult] = await connection.execute(postPondformData_basicdetails_sql, [
44+
safe(pondformData.basicDetails.name),
45+
safe(pondformData.basicDetails.age),
46+
safe(pondformData.basicDetails.mobile),
47+
safe(pondformData.basicDetails.district),
48+
safe(pondformData.basicDetails.block),
49+
safe(pondformData.basicDetails.panchayat),
50+
safe(pondformData.basicDetails.hamlet),
51+
safe(pondformData.basicDetails.idCardType),
52+
safe(pondformData.basicDetails.idCardNumber),
53+
safe(pondformData.basicDetails.gender),
54+
safe(pondformData.basicDetails.fatherSpouse),
55+
safe(pondformData.basicDetails.householdType),
56+
safe(pondformData.basicDetails.hhcombined),
57+
safe(pondformData.basicDetails.occupationCombined),
58+
safe(pondformData.basicDetails.specialCategoryNumber),
59+
safe(pondformData.basicDetails.caste),
60+
safe(pondformData.basicDetails.houseOwnership),
61+
safe(pondformData.basicDetails.houseType),
62+
safe(pondformData.basicDetails.drinkingWaterCombined),
63+
safe(pondformData.basicDetails.potabilityCombined),
64+
safe(pondformData.basicDetails.domesticWaterCombined),
65+
safe(pondformData.basicDetails.toiletAvailability),
66+
safe(pondformData.basicDetails.toiletCondition),
67+
safe(pondformData.basicDetails.education),
68+
safe(pondformData.user_id),
69+
safe(today),
70+
safe(pondformData.landDevelopment.latitude),
71+
safe(pondformData.landDevelopment.longitude),
72+
1,
73+
2
74+
]);
75+
76+
const form_id = formResult.insertId;
77+
console.log("Form ID:", form_id);
78+
79+
// Insert farm pond details
80+
await connection.execute(postPondformData_farm_pond_details_sql, [
81+
safe(form_id),
82+
safe(pondformData.landOwnership.landOwnershipType),
83+
safe(pondformData.landOwnership.hasWell),
84+
safe(pondformData.landOwnership.areaIrrigated),
85+
safe(pondformData.landOwnership.irrigatedLandCombined),
86+
safe(pondformData.landOwnership.pattaNumber),
87+
safe(pondformData.landOwnership.totalArea),
88+
safe(pondformData.landOwnership.taluk),
89+
safe(pondformData.landOwnership.firka),
90+
safe(pondformData.landOwnership.revenueVillage),
91+
safe(pondformData.landOwnership.cropSeasonCombined),
92+
safe(pondformData.landOwnership.livestockCombined),
93+
safe(pondformData.landDevelopment.sfNumber),
94+
safe(pondformData.landDevelopment.soilTypeCombined),
95+
safe(pondformData.landDevelopment.landBenefit),
96+
safe(today),
97+
safe(pondformData.landDevelopment.length),
98+
safe(pondformData.landDevelopment.breadth),
99+
safe(pondformData.landDevelopment.depth),
100+
safe(pondformData.landDevelopment.volume),
101+
safe(pondformData.landDevelopment.pradanContribution),
102+
safe(pondformData.landDevelopment.farmerContribution),
103+
safe(pondformData.landDevelopment.totalEstimate),
104+
safe(pondformData.landDevelopment.landBenefit),
105+
safe(today),
106+
safe(today)
107+
]);
108+
109+
//console.log("form id:", form_id);
110+
111+
// Insert bank details
112+
await connection.execute(postLandformData_bankdetails_sql, [
113+
safe(form_id),
114+
safe(pondformData.bankDetails.accountHolderName),
115+
safe(pondformData.bankDetails.accountNumber),
116+
safe(pondformData.bankDetails.bankName),
117+
safe(pondformData.bankDetails.branch),
118+
safe(pondformData.bankDetails.ifscCode),
119+
safe(pondformData.bankDetails.farmerAgreed),
120+
]);
121+
122+
// Optional: Insert files if present
123+
// if (pondformData.files) {
124+
// await connection.execute(postLandformData_files_sql, [
125+
// safe(form_id),
126+
// safe(pondformData.files.identity),
127+
// safe(pondformData.files.geotag),
128+
// safe(pondformData.files.patta),
129+
// safe(pondformData.files.fmb),
130+
// safe(pondformData.files.photo),
131+
// safe(pondformData.files.passbook),
132+
// ]);
133+
// }
134+
135+
// Commit transaction
136+
await connection.commit();
137+
res.status(201).json({ message: "Form data submitted successfully", form_id });
138+
139+
} catch (error) {
140+
await connection.rollback();
141+
console.error("Error during transaction:", error);
142+
res.status(500).json({ error: "Failed to submit form data" });
143+
} finally {
144+
connection.release(); // Always release
145+
}
146+
});
147+

routes/formData.route.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
const express = require("express");
22
const router = express.Router();
33
const {postLandformData} = require("../controllers/landformData.controller");
4+
const {postPondformData} = require("../controllers/pondformData.controller");
45

56
router.route('/postLandformData').post(postLandformData);
7+
router.route('/postPondformData').post(postPondformData);
68

79
module.exports = router;

0 commit comments

Comments
 (0)