Skip to content

Commit 028ebb8

Browse files
committed
support PATCH type of request
1 parent 5290d0a commit 028ebb8

3 files changed

Lines changed: 55 additions & 48 deletions

File tree

src/components/molecules/flow/AddNodes.js

Lines changed: 1 addition & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -8,30 +8,7 @@ import { ChevronDownIcon } from '@heroicons/react/20/solid';
88
import useCollectionStore from 'stores/CollectionStore';
99
import { orderNodesByTags } from './utils';
1010
import HorizontalDivider from 'components/atoms/common/HorizontalDivider';
11-
12-
// ToDo: Move these constants to constants file/folder
13-
const requestNodes = [
14-
{
15-
requestType: 'GET',
16-
description: 'GET is used to request data from a specified resource.',
17-
type: 'requestNode',
18-
},
19-
{
20-
requestType: 'POST',
21-
description: 'POST is used to send data to a server to create/update a resource.',
22-
type: 'requestNode',
23-
},
24-
{
25-
requestType: 'PUT',
26-
description: 'PUT is used to send data to a server to create/update a resource. PUT requests are idempotent.',
27-
type: 'requestNode',
28-
},
29-
{
30-
requestType: 'DELETE',
31-
description: 'The DELETE method deletes the specified resource.',
32-
type: 'requestNode',
33-
},
34-
];
11+
import requestNodes from './constants/requestNodes';
3512

3613
const outputNode = {
3714
description: 'Displays any data received.',
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
const requestNodes = [
2+
{
3+
requestType: 'GET',
4+
description: 'GET is used to request data from a specified resource.',
5+
type: 'requestNode',
6+
},
7+
{
8+
requestType: 'POST',
9+
description: 'POST is used to send data to a server to create/update a resource.',
10+
type: 'requestNode',
11+
},
12+
{
13+
requestType: 'PUT',
14+
description: 'PUT is used to send data to a server to create/update a resource. PUT requests are idempotent.',
15+
type: 'requestNode',
16+
},
17+
{
18+
requestType: 'DELETE',
19+
description: 'DELETE is used to delete the specified resource.',
20+
type: 'requestNode',
21+
},
22+
{
23+
requestType: 'PATCH',
24+
description: 'PATCH is used for making partial changes to an existing resource.',
25+
type: 'requestNode',
26+
},
27+
];
28+
29+
export default requestNodes;

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

Lines changed: 25 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import TextInput from 'components/atoms/common/TextInput';
1111
import NodeHorizontalDivider from 'components/atoms/flow/NodeHorizontalDivider';
1212
import { Listbox, Transition } from '@headlessui/react';
1313
import { CheckIcon, ChevronUpDownIcon } from '@heroicons/react/20/solid';
14+
import requestNodes from '../constants/requestNodes';
1415

1516
const RequestNode = ({ id, data }) => {
1617
const setRequestNodeUrl = useCanvasStore((state) => state.setRequestNodeUrl);
@@ -103,8 +104,6 @@ const RequestNode = ({ id, data }) => {
103104
);
104105
};
105106

106-
const requestTypes = ['GET', 'PUT', 'POST', 'DELETE'];
107-
108107
return (
109108
<FlowNode
110109
title={data.requestType + ' Request'}
@@ -135,28 +134,30 @@ const RequestNode = ({ id, data }) => {
135134
leaveTo='opacity-0'
136135
>
137136
<Listbox.Options className='absolute z-50 w-full py-1 mt-1 overflow-auto text-base bg-white max-h-60 focus:outline-none'>
138-
{requestTypes.map((reqType) => (
139-
<Listbox.Option
140-
key={reqType}
141-
className={({ active }) =>
142-
`relative cursor-default select-none py-2 pl-7 pr-4 hover:font-semibold ${
143-
active ? 'bg-background-light text-slate-900' : ''
144-
}`
145-
}
146-
value={reqType}
147-
>
148-
{({ selected }) => (
149-
<>
150-
<span className={`block`}>{reqType}</span>
151-
{selected ? (
152-
<span className='absolute inset-y-0 left-0 flex items-center pl-1 font-semibold'>
153-
<CheckIcon className='w-5 h-5' aria-hidden='true' />
154-
</span>
155-
) : null}
156-
</>
157-
)}
158-
</Listbox.Option>
159-
))}
137+
{requestNodes
138+
.map((el) => el.requestType)
139+
.map((reqType) => (
140+
<Listbox.Option
141+
key={reqType}
142+
className={({ active }) =>
143+
`relative cursor-default select-none py-2 pl-7 pr-4 hover:font-semibold ${
144+
active ? 'bg-background-light text-slate-900' : ''
145+
}`
146+
}
147+
value={reqType}
148+
>
149+
{({ selected }) => (
150+
<>
151+
<span className={`block`}>{reqType}</span>
152+
{selected ? (
153+
<span className='absolute inset-y-0 left-0 flex items-center pl-1 font-semibold'>
154+
<CheckIcon className='w-5 h-5' aria-hidden='true' />
155+
</span>
156+
) : null}
157+
</>
158+
)}
159+
</Listbox.Option>
160+
))}
160161
</Listbox.Options>
161162
</Transition>
162163
</div>

0 commit comments

Comments
 (0)