mirror of
https://github.com/usebruno/bruno.git
synced 2026-06-23 04:35:40 +00:00
refactor: replace decoder with type in WebSocket message handling
This commit is contained in:
@@ -41,12 +41,31 @@ const SingleWSMessage = ({
|
||||
const { name, content, decoder } = message;
|
||||
const [messageFormat, setMessageFormat] = useState(autoDetectLang(content));
|
||||
|
||||
const onUpdateMessageType = mode => {
|
||||
setMessageFormat(mode)
|
||||
|
||||
const currentMessages = [...(body.ws || [])];
|
||||
|
||||
currentMessages[index] = {
|
||||
...currentMessages[index],
|
||||
type: DECODER_BY_TYPE[messageFormat],
|
||||
};
|
||||
|
||||
dispatch(
|
||||
updateRequestBody({
|
||||
content: currentMessages,
|
||||
itemUid: item.uid,
|
||||
collectionUid: collection.uid
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
const onEdit = (value) => {
|
||||
const currentMessages = [...(body.ws || [])];
|
||||
|
||||
currentMessages[index] = {
|
||||
name: name ? name : `message ${index + 1}`,
|
||||
decoder: DECODER_BY_TYPE[messageFormat],
|
||||
type: DECODER_BY_TYPE[messageFormat],
|
||||
content: value
|
||||
};
|
||||
|
||||
@@ -153,7 +172,7 @@ const SingleWSMessage = ({
|
||||
)}
|
||||
</div>
|
||||
<div className="flex items-center gap-2" onClick={(e) => e.stopPropagation()}>
|
||||
<WSRequestBodyMode mode={messageFormat} onModeChange={setMessageFormat} />
|
||||
<WSRequestBodyMode mode={messageFormat} onModeChange={onUpdateMessageType} />
|
||||
<ToolHint text="Prettify" toolhintId={`prettify-msg-${index}`}>
|
||||
<button
|
||||
onClick={onPrettify}
|
||||
|
||||
@@ -666,9 +666,9 @@ export const transformRequestToSaveToFilesystem = (item) => {
|
||||
if (itemToSave.request.body.mode === 'ws') {
|
||||
itemToSave.request.body = {
|
||||
...itemToSave.request.body,
|
||||
ws: itemToSave.request.body.ws.map(({ name, content, decoder }, index) => ({
|
||||
ws: itemToSave.request.body.ws.map(({ name, content, type }, index) => ({
|
||||
name: name ? name : `message ${index + 1}`,
|
||||
decoder,
|
||||
type,
|
||||
content: replaceTabsWithSpaces(content)
|
||||
}))
|
||||
};
|
||||
|
||||
@@ -1011,11 +1011,11 @@ const sem = grammar.createSemantics().addAttribute('ast', {
|
||||
const pairs = mapPairListToKeyValPairs(dictionary.ast, false);
|
||||
const namePair = _.find(pairs, { name: 'name' });
|
||||
const contentPair = _.find(pairs, { name: 'content' });
|
||||
const decoderPair = _.find(pairs, { name: 'decoder' });
|
||||
const typePair = _.find(pairs, { name: 'type' });
|
||||
|
||||
const messageName = namePair ? namePair.value : '';
|
||||
const messageContent = contentPair ? contentPair.value : '';
|
||||
const decoderContent = decoderPair ? decoderPair.value : '';
|
||||
const messageTypeContent = typePair ? typePair.value : '';
|
||||
|
||||
return {
|
||||
body: {
|
||||
@@ -1023,7 +1023,7 @@ const sem = grammar.createSemantics().addAttribute('ast', {
|
||||
ws: [
|
||||
{
|
||||
name: messageName,
|
||||
decoder: decoderContent,
|
||||
type: messageTypeContent,
|
||||
content: messageContent
|
||||
}
|
||||
]
|
||||
|
||||
@@ -635,13 +635,13 @@ ${indentString(body.sparql)}
|
||||
// Convert each ws message to a separate body:ws block
|
||||
if (Array.isArray(body.ws)) {
|
||||
body.ws.forEach((m) => {
|
||||
const { name, content, decoder = "" } = m;
|
||||
const { name, content, type = "" } = m;
|
||||
|
||||
bru += `body:ws {\n`;
|
||||
|
||||
bru += `${indentString(`name: ${getValueString(name)}`)}\n`;
|
||||
if(decoder.length){
|
||||
bru += `${indentString(`decoder: ${getValueString(decoder)}`)}\n`;
|
||||
if(type.length){
|
||||
bru += `${indentString(`type: ${getValueString(type)}`)}\n`;
|
||||
}
|
||||
|
||||
// Convert content to JSON string if it's an object
|
||||
|
||||
@@ -389,7 +389,7 @@ const wsRequestSchema = Yup.object({
|
||||
.of(
|
||||
Yup.object({
|
||||
name: Yup.string().nullable(),
|
||||
decoder: Yup.string().nullable(),
|
||||
type: Yup.string().nullable(),
|
||||
content: Yup.string().nullable()
|
||||
})
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user