refactor: add safety coersion for loading rest requests from external source
This commit is contained in:
@@ -151,9 +151,13 @@
|
|||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { defineComponent, ref } from "@nuxtjs/composition-api"
|
import { defineComponent, ref } from "@nuxtjs/composition-api"
|
||||||
import { translateToNewRequest } from "@hoppscotch/data"
|
import {
|
||||||
|
safelyExtractRESTRequest,
|
||||||
|
translateToNewRequest,
|
||||||
|
} from "@hoppscotch/data"
|
||||||
import { useReadonlyStream } from "~/helpers/utils/composables"
|
import { useReadonlyStream } from "~/helpers/utils/composables"
|
||||||
import {
|
import {
|
||||||
|
getDefaultRESTRequest,
|
||||||
restSaveContext$,
|
restSaveContext$,
|
||||||
setRESTRequest,
|
setRESTRequest,
|
||||||
setRESTSaveContext,
|
setRESTSaveContext,
|
||||||
@@ -229,11 +233,17 @@ export default defineComponent({
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
else {
|
else {
|
||||||
setRESTRequest(translateToNewRequest(this.request), {
|
setRESTRequest(
|
||||||
originLocation: "user-collection",
|
safelyExtractRESTRequest(
|
||||||
folderPath: this.folderPath,
|
translateToNewRequest(this.request),
|
||||||
requestIndex: this.requestIndex,
|
getDefaultRESTRequest()
|
||||||
})
|
),
|
||||||
|
{
|
||||||
|
originLocation: "user-collection",
|
||||||
|
folderPath: this.folderPath,
|
||||||
|
requestIndex: this.requestIndex,
|
||||||
|
}
|
||||||
|
)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
dragStart({ dataTransfer }) {
|
dragStart({ dataTransfer }) {
|
||||||
|
|||||||
@@ -147,9 +147,13 @@
|
|||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { defineComponent, ref } from "@nuxtjs/composition-api"
|
import { defineComponent, ref } from "@nuxtjs/composition-api"
|
||||||
import { translateToNewRequest } from "@hoppscotch/data"
|
import {
|
||||||
|
safelyExtractRESTRequest,
|
||||||
|
translateToNewRequest,
|
||||||
|
} from "@hoppscotch/data"
|
||||||
import { useReadonlyStream } from "~/helpers/utils/composables"
|
import { useReadonlyStream } from "~/helpers/utils/composables"
|
||||||
import {
|
import {
|
||||||
|
getDefaultRESTRequest,
|
||||||
restSaveContext$,
|
restSaveContext$,
|
||||||
setRESTRequest,
|
setRESTRequest,
|
||||||
setRESTSaveContext,
|
setRESTSaveContext,
|
||||||
@@ -220,10 +224,16 @@ export default defineComponent({
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
else
|
else
|
||||||
setRESTRequest(translateToNewRequest(this.request), {
|
setRESTRequest(
|
||||||
originLocation: "team-collection",
|
safelyExtractRESTRequest(
|
||||||
requestID: this.requestIndex as string,
|
translateToNewRequest(this.request),
|
||||||
})
|
getDefaultRESTRequest()
|
||||||
|
),
|
||||||
|
{
|
||||||
|
originLocation: "team-collection",
|
||||||
|
requestID: this.requestIndex as string,
|
||||||
|
}
|
||||||
|
)
|
||||||
},
|
},
|
||||||
dragStart({ dataTransfer }) {
|
dragStart({ dataTransfer }) {
|
||||||
this.dragging = !this.dragging
|
this.dragging = !this.dragging
|
||||||
|
|||||||
@@ -103,6 +103,7 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { computed, ref } from "@nuxtjs/composition-api"
|
import { computed, ref } from "@nuxtjs/composition-api"
|
||||||
import * as timeago from "timeago.js"
|
import * as timeago from "timeago.js"
|
||||||
|
import { safelyExtractRESTRequest } from "~/../hoppscotch-data/dist"
|
||||||
import {
|
import {
|
||||||
useI18n,
|
useI18n,
|
||||||
useReadonlyStream,
|
useReadonlyStream,
|
||||||
@@ -120,7 +121,7 @@ import {
|
|||||||
RESTHistoryEntry,
|
RESTHistoryEntry,
|
||||||
GQLHistoryEntry,
|
GQLHistoryEntry,
|
||||||
} from "~/newstore/history"
|
} from "~/newstore/history"
|
||||||
import { setRESTRequest } from "~/newstore/RESTSession"
|
import { getDefaultRESTRequest, setRESTRequest } from "~/newstore/RESTSession"
|
||||||
|
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
page: "rest" | "graphql"
|
page: "rest" | "graphql"
|
||||||
@@ -174,7 +175,10 @@ const clearHistory = () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const useHistory = (entry: any) => {
|
const useHistory = (entry: any) => {
|
||||||
if (props.page === "rest") setRESTRequest(entry.request)
|
if (props.page === "rest")
|
||||||
|
setRESTRequest(
|
||||||
|
safelyExtractRESTRequest(entry.request, getDefaultRESTRequest())
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
const deleteBattleHistoryEntry = (entries: number[]) => {
|
const deleteBattleHistoryEntry = (entries: number[]) => {
|
||||||
|
|||||||
@@ -5,7 +5,10 @@ import assign from "lodash/assign"
|
|||||||
import isEmpty from "lodash/isEmpty"
|
import isEmpty from "lodash/isEmpty"
|
||||||
import * as O from "fp-ts/Option"
|
import * as O from "fp-ts/Option"
|
||||||
import { pipe } from "fp-ts/function"
|
import { pipe } from "fp-ts/function"
|
||||||
import { translateToNewRequest } from "@hoppscotch/data"
|
import {
|
||||||
|
safelyExtractRESTRequest,
|
||||||
|
translateToNewRequest,
|
||||||
|
} from "@hoppscotch/data"
|
||||||
import { cloneDeep } from "lodash"
|
import { cloneDeep } from "lodash"
|
||||||
import {
|
import {
|
||||||
settingsStore,
|
settingsStore,
|
||||||
@@ -41,7 +44,11 @@ import {
|
|||||||
selectedEnvIndex$,
|
selectedEnvIndex$,
|
||||||
setCurrentEnvironment,
|
setCurrentEnvironment,
|
||||||
} from "./environments"
|
} from "./environments"
|
||||||
import { restRequest$, setRESTRequest } from "./RESTSession"
|
import {
|
||||||
|
getDefaultRESTRequest,
|
||||||
|
restRequest$,
|
||||||
|
setRESTRequest,
|
||||||
|
} from "./RESTSession"
|
||||||
import { WSRequest$, setWSRequest } from "./WebSocketSession"
|
import { WSRequest$, setWSRequest } from "./WebSocketSession"
|
||||||
import { SIORequest$, setSIORequest } from "./SocketIOSession"
|
import { SIORequest$, setSIORequest } from "./SocketIOSession"
|
||||||
import { SSERequest$, setSSERequest } from "./SSESession"
|
import { SSERequest$, setSSERequest } from "./SSESession"
|
||||||
@@ -281,7 +288,9 @@ function setupRequestPersistence() {
|
|||||||
|
|
||||||
if (localRequest) {
|
if (localRequest) {
|
||||||
const parsedLocal = translateToNewRequest(localRequest)
|
const parsedLocal = translateToNewRequest(localRequest)
|
||||||
setRESTRequest(parsedLocal)
|
setRESTRequest(
|
||||||
|
safelyExtractRESTRequest(parsedLocal, getDefaultRESTRequest())
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
restRequest$.subscribe((req) => {
|
restRequest$.subscribe((req) => {
|
||||||
|
|||||||
@@ -127,7 +127,11 @@ import "splitpanes/dist/splitpanes.css"
|
|||||||
import { map } from "rxjs/operators"
|
import { map } from "rxjs/operators"
|
||||||
import { Subscription } from "rxjs"
|
import { Subscription } from "rxjs"
|
||||||
import isEqual from "lodash/isEqual"
|
import isEqual from "lodash/isEqual"
|
||||||
import { HoppRESTRequest, HoppRESTAuthOAuth2 } from "@hoppscotch/data"
|
import {
|
||||||
|
HoppRESTRequest,
|
||||||
|
HoppRESTAuthOAuth2,
|
||||||
|
safelyExtractRESTRequest,
|
||||||
|
} from "@hoppscotch/data"
|
||||||
import { useSetting } from "~/newstore/settings"
|
import { useSetting } from "~/newstore/settings"
|
||||||
import {
|
import {
|
||||||
restActiveParamsCount$,
|
restActiveParamsCount$,
|
||||||
@@ -138,6 +142,7 @@ import {
|
|||||||
restAuth$,
|
restAuth$,
|
||||||
useTestScript,
|
useTestScript,
|
||||||
usePreRequestScript,
|
usePreRequestScript,
|
||||||
|
getDefaultRESTRequest,
|
||||||
} from "~/newstore/RESTSession"
|
} from "~/newstore/RESTSession"
|
||||||
import { translateExtURLParams } from "~/helpers/RESTExtURLParams"
|
import { translateExtURLParams } from "~/helpers/RESTExtURLParams"
|
||||||
import {
|
import {
|
||||||
@@ -158,7 +163,12 @@ function bindRequestToURLParams() {
|
|||||||
// If query params are empty, or contains code or error param (these are from Oauth Redirect)
|
// If query params are empty, or contains code or error param (these are from Oauth Redirect)
|
||||||
// We skip URL params parsing
|
// We skip URL params parsing
|
||||||
if (Object.keys(query).length === 0 || query.code || query.error) return
|
if (Object.keys(query).length === 0 || query.code || query.error) return
|
||||||
setRESTRequest(translateExtURLParams(query))
|
setRESTRequest(
|
||||||
|
safelyExtractRESTRequest(
|
||||||
|
translateExtURLParams(query),
|
||||||
|
getDefaultRESTRequest()
|
||||||
|
)
|
||||||
|
)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -226,7 +236,9 @@ export default defineComponent({
|
|||||||
const confirmSync = ref(false)
|
const confirmSync = ref(false)
|
||||||
|
|
||||||
const syncRequest = () => {
|
const syncRequest = () => {
|
||||||
setRESTRequest(requestForSync.value!)
|
setRESTRequest(
|
||||||
|
safelyExtractRESTRequest(requestForSync.value!, getDefaultRESTRequest())
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
setupRequestSync(confirmSync, requestForSync)
|
setupRequestSync(confirmSync, requestForSync)
|
||||||
|
|||||||
@@ -63,14 +63,14 @@ import {
|
|||||||
watch,
|
watch,
|
||||||
} from "@nuxtjs/composition-api"
|
} from "@nuxtjs/composition-api"
|
||||||
import * as E from "fp-ts/Either"
|
import * as E from "fp-ts/Either"
|
||||||
import { makeRESTRequest } from "@hoppscotch/data"
|
import { safelyExtractRESTRequest } from "@hoppscotch/data"
|
||||||
import { useGQLQuery } from "~/helpers/backend/GQLClient"
|
import { useGQLQuery } from "~/helpers/backend/GQLClient"
|
||||||
import {
|
import {
|
||||||
ResolveShortcodeDocument,
|
ResolveShortcodeDocument,
|
||||||
ResolveShortcodeQuery,
|
ResolveShortcodeQuery,
|
||||||
ResolveShortcodeQueryVariables,
|
ResolveShortcodeQueryVariables,
|
||||||
} from "~/helpers/backend/graphql"
|
} from "~/helpers/backend/graphql"
|
||||||
import { setRESTRequest } from "~/newstore/RESTSession"
|
import { getDefaultRESTRequest, setRESTRequest } from "~/newstore/RESTSession"
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
setup() {
|
setup() {
|
||||||
@@ -97,9 +97,14 @@ export default defineComponent({
|
|||||||
const data = shortcodeDetails.data
|
const data = shortcodeDetails.data
|
||||||
|
|
||||||
if (E.isRight(data)) {
|
if (E.isRight(data)) {
|
||||||
const request = JSON.parse(data.right.shortcode?.request as string)
|
const request: unknown = JSON.parse(
|
||||||
|
data.right.shortcode?.request as string
|
||||||
|
)
|
||||||
|
|
||||||
|
setRESTRequest(
|
||||||
|
safelyExtractRESTRequest(request, getDefaultRESTRequest())
|
||||||
|
)
|
||||||
|
|
||||||
setRESTRequest(makeRESTRequest(request))
|
|
||||||
router.push({ path: localePath("/") })
|
router.push({ path: localePath("/") })
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user