Skip to content

Commit 30817e2

Browse files
committed
Introduce pre request variables in request node
1 parent 58e3087 commit 30817e2

File tree

3 files changed

+36
-26
lines changed

3 files changed

+36
-26
lines changed

src/components/molecules/flow/graph/compute/requestnode.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ const formulateRequest = (node, finalUrl, variablesDict, auth, logs) => {
5050

5151
export const computeRequestNode = async (node, prevNodeOutputData, env, auth, logs) => {
5252
// step1 evaluate variables of this node
53-
const evalVariables = computeNodeVariables(node.data.variables, prevNodeOutputData);
53+
const evalVariables = computeNodeVariables(node.data.preReqVars, prevNodeOutputData);
5454

5555
const variablesDict = {
5656
...env?.variables,

src/components/molecules/flow/nodes/RequestNode.js

Lines changed: 25 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -10,22 +10,22 @@ import useCanvasStore from 'stores/CanvasStore';
1010

1111
const RequestNode = ({ id, data }) => {
1212
const setRequestNodeUrl = useCanvasStore((state) => state.setRequestNodeUrl);
13-
const requestNodeAddVariable = useCanvasStore((state) => state.requestNodeAddVariable);
14-
const requestNodeDeleteVariable = useCanvasStore((state) => state.requestNodeDeleteVariable);
15-
const requestNodeChangeVariable = useCanvasStore((state) => state.requestNodeChangeVariable);
13+
const requestNodeAddPreRequestVar = useCanvasStore((state) => state.requestNodeAddPreRequestVar);
14+
const requestNodeDeletePreRequestVar = useCanvasStore((state) => state.requestNodeDeletePreRequestVar);
15+
const requestNodeChangePreRequestVar = useCanvasStore((state) => state.requestNodeChangePreRequestVar);
1616

1717
const [variableDialogOpen, setVariableDialogOpen] = useState(false);
1818

1919
const handleAddVariable = (name, type) => {
20-
requestNodeAddVariable(id, name, type);
20+
requestNodeAddPreRequestVar(id, name, type);
2121
};
2222

2323
const handleDeleteVariable = (event, vId) => {
24-
requestNodeDeleteVariable(id, vId);
24+
requestNodeDeletePreRequestVar(id, vId);
2525
};
2626

2727
const handleVariableChange = (event, vId) => {
28-
requestNodeChangeVariable(id, vId, event.target.value);
28+
requestNodeChangePreRequestVar(id, vId, event.target.value);
2929
};
3030

3131
const handleUrlInputChange = (event) => {
@@ -35,33 +35,33 @@ const RequestNode = ({ id, data }) => {
3535
const renderVariables = () => {
3636
return (
3737
<>
38-
{data.variables &&
39-
Object.keys(data.variables).map((id) => (
38+
{data.preReqVars &&
39+
Object.keys(data.preReqVars).map((id) => (
4040
<div className='flex items-center justify-between pb-2' key={id}>
4141
<div className='flex items-center justify-between text-sm border rounded-md border-neutral-500 text-neutral-500 outline-0 focus:ring-0'>
4242
<label className='px-4 py-2 border-r rounded-bl-md rounded-tl-md border-r-neutral-500'>{id}</label>
43-
{data.variables[id].type === 'Boolean' ? (
43+
{data.preReqVars[id].type === 'Boolean' ? (
4444
<select
4545
onChange={(e) => handleVariableChange(e, id)}
4646
name='boolean-val'
4747
className='nodrag h-9 w-full rounded-br-md rounded-tr-md p-2.5 px-1 '
48-
value={data.variables[id].value}
48+
value={data.preReqVars[id].value}
4949
>
5050
<option value='true'>True</option>
5151
<option value='false'>False</option>
5252
</select>
5353
) : (
5454
<input
55-
type={getInputType(data.variables[id].type)}
55+
type={getInputType(data.preReqVars[id].type)}
5656
className='nodrag nowheel block h-9 w-full rounded-bl-md rounded-tl-md p-2.5'
5757
name='variable-value'
58-
data-type={getInputType(data.variables[id].type)}
58+
data-type={getInputType(data.preReqVars[id].type)}
5959
onChange={(e) => handleVariableChange(e, id)}
60-
value={data.variables[id].value}
60+
value={data.preReqVars[id].value}
6161
/>
6262
)}
6363
<div className='px-4 py-2 border-l rounded-br-md rounded-tr-md border-l-neutral-500'>
64-
{data.variables[id].type}
64+
{data.preReqVars[id].type}
6565
</div>
6666
</div>
6767
<div onClick={(e) => handleDeleteVariable(e, id)} className='p-2 text-neutral-500'>
@@ -96,11 +96,21 @@ const RequestNode = ({ id, data }) => {
9696
<div className='border-t border-neutral-300 bg-slate-100'>
9797
<div className='flex items-center justify-between px-2 py-4 font-medium'>
9898
<h3>Variables</h3>
99+
</div>
100+
<div>
101+
Pre Request
102+
<button className='p-2' onClick={() => setVariableDialogOpen(true)}>
103+
<PlusIcon className='w-4 h-4' />
104+
</button>
105+
<div className='p-2 pt-4 border-t border-neutral-300 bg-slate-50'>{renderVariables()}</div>
106+
</div>
107+
<div>
108+
Post Response
99109
<button className='p-2' onClick={() => setVariableDialogOpen(true)}>
100110
<PlusIcon className='w-4 h-4' />
101111
</button>
112+
<div className='p-2 pt-4 border-t border-neutral-300 bg-slate-50'>{renderVariables()}</div>
102113
</div>
103-
<div className='p-2 pt-4 border-t border-neutral-300 bg-slate-50'>{renderVariables()}</div>
104114
</div>
105115
</div>
106116
<AddVariableModal

src/stores/CanvasStore.js

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ const useCanvasStore = create((set, get) => ({
9595
}),
9696
});
9797
},
98-
requestNodeAddVariable: (nodeId, name, type) => {
98+
requestNodeAddPreRequestVar: (nodeId, name, type) => {
9999
set({
100100
nodes: get().nodes.map((node) => {
101101
if (node.id === nodeId) {
@@ -107,8 +107,8 @@ const useCanvasStore = create((set, get) => ({
107107
};
108108
node.data = {
109109
...node.data,
110-
variables: {
111-
...node.data.variables,
110+
preReqVars: {
111+
...node.data.preReqVars,
112112
[newId]: newVar,
113113
},
114114
};
@@ -118,37 +118,37 @@ const useCanvasStore = create((set, get) => ({
118118
}),
119119
});
120120
},
121-
requestNodeDeleteVariable: (nodeId, id) => {
121+
requestNodeDeletePreRequestVar: (nodeId, id) => {
122122
set({
123123
nodes: get().nodes.map((node) => {
124124
if (node.id === nodeId) {
125125
// it's important to create a new object here, to inform React Flow about the cahnges
126-
const { [id]: _, ...newVariables } = node.data.variables;
126+
const { [id]: _, ...newVariables } = node.data.preReqVars;
127127

128128
node.data = {
129129
...node.data,
130-
variables: newVariables,
130+
preReqVars: newVariables,
131131
};
132132
}
133133

134134
return node;
135135
}),
136136
});
137137
},
138-
requestNodeChangeVariable: (nodeId, id, value) => {
138+
requestNodeChangePreRequestVar: (nodeId, id, value) => {
139139
set({
140140
nodes: get().nodes.map((node) => {
141141
if (node.id === nodeId) {
142142
// it's important to create a new object here, to inform React Flow about the cahnges
143143
const updateVar = {
144-
type: node.data.variables[id].type,
144+
type: node.data.preReqVars[id].type,
145145
value,
146146
};
147147

148148
node.data = {
149149
...node.data,
150-
variables: {
151-
...node.data.variables,
150+
preReqVars: {
151+
...node.data.preReqVars,
152152
[id]: updateVar,
153153
},
154154
};

0 commit comments

Comments
 (0)