Commit 1dcd93ed authored by Amit Sharma's avatar Amit Sharma
Browse files

Hasura Submission,

Jump workflow
Showing with 26 additions and 25 deletions
+26 -25
......@@ -2,7 +2,7 @@ const GITPOD_URL = process.env.REACT_APP_GITPOD_WORKSPACE_URL
const makeHasuraCalls = async (query) => {
// const userData = getCookie("userData");
return fetch(`${GITPOD_URL.slice(0, GITPOD_URL.indexOf('/') + 2) + "8080-" + GITPOD_URL.slice(GITPOD_URL.indexOf('/') + 2)}`, {
return fetch(`${GITPOD_URL.slice(0, GITPOD_URL.indexOf('/') + 2) + "8080-" + GITPOD_URL.slice(GITPOD_URL.indexOf('/') + 2)}/v1/graphql`, {
method: "POST",
headers: {
Accept: "application/json",
......
import React, { useState, useEffect } from 'react';
import React, { useState, useEffect, useRef } from 'react';
import styles from './index.module.css';
import beautify from "xml-beautifier";
import { saveFormSubmission } from '../../api';
......@@ -18,7 +18,7 @@ const GenericForm = (props) => {
}
const getFormURI = (form, ofsd, prefillSpec) => {
console.log(form, ofsd, prefillSpec);
// console.log(form, ofsd, prefillSpec);
// return encodeURIComponent(`https://3006-samagradevelop-workflow-gkbrz650idv.ws-us89b.gitpod.io/prefill?form=${form}&onFormSuccessData=${encodeFunction(ofsd)}&prefillSpec=${encodeFunction(prefillSpec)}`);
return encodeURIComponent(`${GITPOD_URL.slice(0, GITPOD_URL.indexOf('/') + 2) + "3006-" + GITPOD_URL.slice(GITPOD_URL.indexOf('/') + 2)}/prefill?form=${form}&onFormSuccessData=${encodeFunction(ofsd)}&prefillSpec=${encodeFunction(prefillSpec)}`);
}
......@@ -29,6 +29,7 @@ const GenericForm = (props) => {
const [onFormSuccessData, setOnFormSuccessData] = useState(undefined);
const [onFormFailureData, setOnFormFailureData] = useState(undefined);
const [encodedFormURI, setEncodedFormURI] = useState(getFormURI(formId, formSpec.forms[formId].onFormSuccess, formSpec.forms[formId].prefill));
const formSubmitted = useRef(false);
useEffect(() => {
// Manage onNext
......@@ -36,17 +37,21 @@ const GenericForm = (props) => {
const data = typeof e.data === "string" ? JSON.parse(e.data) : e.data;
try {
const { nextForm, formData, onSuccessData, onFailureData } = data;
// console.log({ nextForm, formData, onSuccessData, onFailureData });
if (formData) {
// console.log("data--->", data)
if (data?.state != "ON_FORM_SUCCESS_COMPLETED" && formData) {
setFormData(beautify(formData))
let jsonRes = await parseFormData(formData);
if (jsonRes) setFormDataJSON(JSON.stringify(jsonRes.data, null, 2));
if (jsonRes) setFormDataJSON(JSON.stringify(jsonRes, null, 2));
}
if (data?.state == "ON_FORM_SUCCESS_COMPLETED" && selectedFlow.submitToHasura) {
saveFormSubmission({
if (data?.state == "ON_FORM_SUCCESS_COMPLETED" && selectedFlow.submitToHasura && !formSubmitted.current) {
formSubmitted.current = true;
await saveFormSubmission({
form_data: formData,
form_name: formSpec.startingForm,
});
formSubmitted.current = false;
}
if (nextForm.type === 'form') {
setFormId(nextForm.id);
......@@ -57,9 +62,10 @@ const GenericForm = (props) => {
} else {
window.location.href = nextForm.url;
}
}
catch (e) {
// console.log(e)
console.log(e)
}
});
}, []);
......@@ -86,7 +92,6 @@ const GenericForm = (props) => {
return jsonRes?.data;
}
return (
<div className={styles.container}>
<div className={styles.header}>
......
......@@ -22,15 +22,11 @@
"onSuccess": {
"notificationMessage": "Form submitted successfully",
"sideEffect": "async (formData) => { console.log(formData); }",
"message": "Form submitted successfully"
},
"nextFormOnSuccess": {
"type": "form",
"id": "jumping_form_2"
},
"nextFormOnFailure": {
"type": "url",
"id": "https://google.com"
"message": "Form submitted successfully",
"next": {
"type": "form",
"id": "jumping_form_2"
}
}
},
"jumping_form_2": {
......@@ -39,17 +35,17 @@
"name": " Jumping Form Second",
"isSuccess": "async (formData) => { console.log('From isSuccess', formData.getElementsByTagName('reg_no')[0].textContent); return formData.getElementsByTagName('reg_no')[0].textContent === 'registration123'; }",
"messageOnFailure": "Form submission failed",
"messageOnSuccess": "Form submitted successfully or Maybe you are already registered",
"messageOnSuccess": "Form submitted successfully",
"onFormSuccess": "async (formData) => { return JSON.parse(decodeURIComponent('%7B%0A%20%20%20%20%20%20%20%20%22name%22%3A%20%22DEVA%22%2C%0A%20%20%20%20%20%20%20%20%22batch%22%3A%20%222021-2023%22%2C%0A%20%20%20%20%20%20%20%20%22id%22%3A%208%2C%0A%20%20%20%20%20%20%20%20%22DOB%22%3A%20%222005-03-04%22%2C%0A%20%20%20%20%20%20%20%20%22affiliationType%22%3A%20%22NCVT%22%2C%0A%20%20%20%20%20%20%20%20%22registrationNumber%22%3A%20%22ICA211021569832%22%2C%0A%20%20%20%20%20%20%20%20%22tradeName%22%3A%20%22Electrician%22%2C%0A%20%20%20%20%20%20%20%20%22iti%22%3A%207%2C%0A%20%20%20%20%20%20%20%20%22industry%22%3A%201%2C%0A%20%20%20%20%20%20%20%20%22itiByIti%22%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%22id%22%3A%207%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22name%22%3A%20%22GITI%20Nagina%22%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%22industryByIndustry%22%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%22id%22%3A%201%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22name%22%3A%20%22Kaushal%20Bhawan%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22latitude%22%3A%2030.695753%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22longitude%22%3A%2076.872025%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22schedules%22%3A%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22is_industry%22%3A%20true%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D')); }",
"onFormFailure": "async (formData) => { console.log(formData); }",
"onSuccess": {
"notificationMessage": "Form submitted successfully",
"sideEffect": "async (formData) => { console.log(formData); }",
"message": "Form submitted successfully"
},
"nextFormOnFailure": {
"type": "url",
"id": "https://google.com"
"message": "Form submitted successfully",
"next": {
"type": "url",
"url": "https://google.com"
}
}
}
},
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment