kpiplus
Version:
KPI+
1 lines • 1.92 kB
JavaScript
var form=require("../../models/form"),lienhe=require("../../models/lienhe"),label=require("../../models/label"),formvalue=require("../../models/formvalue"),_=require("underscore");module.exports=function(e){e.route("/form/:id").get(function(e,i,t){let l=e.params.id;form.findOne({_id:l}).lean().exec((t,n)=>{n?(e.query.cid?globalEvents.emit("forms_opened_"+e.query.cid+"_"+n._id,n):globalEvents.emit("forms_opened_"+n._id,n),i.send(n)):i.status(400).send(t||"Không tìm thấy form "+l)})}),e.route("/form/:id").post(function(e,i,t){let l=e.params.id,n=e.body;if(!n||!n.id_app||!n.fields)return i.status(400).send("Dữ liệu không phù hợp");delete n._id,n.id_form=l,n.cid=e.query.cid,new formvalue(n).save((t,d)=>{if(d=d.toObject(),t)return i.status(400).send(t);let r={id_app:n.id_app},o=_.find(n.fields,e=>"email"==e.type.toString()),s=_.find(n.fields,e=>"dien_thoai"==e.type.toString()),a=_.find(n.fields,e=>"ten_lien_he"==e.type.toString())||o||s;if(!a)return e.query.cid?globalEvents.emit("forms_submitted_"+e.query.cid+"_"+l,d):globalEvents.emit("forms_submitted_"+l,d),i.send(d);r.email=o?o.value:"",r.dien_thoai=s?s.value:"",r.ten_lien_he=a.value;let m=_.find(n.fields,e=>"dia_chi"==e.type.toString());m&&(r.dia_chi=m.value),r.exfields=d;let u={id_app:n.id_app,label_name:n.name,label_type:"LIENHE"};label.findOneAndUpdate(u,u,{upsert:!0,new:!0},(t,n)=>{if(t||!n)return e.query.cid?globalEvents.emit("forms_submitted_"+e.query.cid+"_"+l,d):globalEvents.emit("forms_submitted_"+l,d),i.send(d);lienhe.findOneAndUpdate({id_app:r.id_app,ten_lien_he:r.ten_lien_he,email:r.email,dien_thoai:r.dien_thoai},r,{upsert:!0,new:!0},(t,n)=>{t&&console.log("create lienhe",t),n.labels.push(u.label_name),n.save((t,n)=>(t&&console.log("update lienhe",t),d.lienhe=n?n.toObject():null,e.query.cid?globalEvents.emit("forms_submitted_"+e.query.cid+"_"+l,d):globalEvents.emit("forms_submitted_"+l,d),i.send(d)))})})})})};