refactor: migrate completely to urql

This commit is contained in:
Andrew Bastin
2022-02-02 00:33:34 +05:30
parent eae94e3dbf
commit 2df1c1c6ed
26 changed files with 748 additions and 1677 deletions

View File

@@ -59,6 +59,7 @@
<script setup lang="ts">
import { reactive, ref, watch } from "@nuxtjs/composition-api"
import * as E from "fp-ts/Either"
import { HoppGQLRequest, isHoppRESTRequest } from "@hoppscotch/data"
import cloneDeep from "lodash/cloneDeep"
import {
@@ -73,9 +74,12 @@ import {
setRESTSaveContext,
useRESTRequestName,
} from "~/newstore/RESTSession"
import * as teamUtils from "~/helpers/teams/utils"
import { apolloClient } from "~/helpers/apollo"
import { useI18n, useToast } from "~/helpers/utils/composables"
import { runMutation } from "~/helpers/backend/GQLClient"
import {
CreateRequestInCollectionDocument,
UpdateRequestDocument,
} from "~/helpers/backend/graphql"
const t = useI18n()
@@ -270,20 +274,20 @@ const saveRequestAs = async () => {
if (collectionsType.value.type !== "team-collections")
throw new Error("Collections Type mismatch")
teamUtils
.overwriteRequestTeams(
apolloClient,
JSON.stringify(requestUpdated),
requestUpdated.name,
picked.value.requestID
)
.then(() => {
requestSaved()
})
.catch((error) => {
runMutation(UpdateRequestDocument, {
requestID: picked.value.requestID,
data: {
request: JSON.stringify(requestUpdated),
title: requestUpdated.name,
},
})().then((result) => {
if (E.isLeft(result)) {
toast.error(`${t("profile.no_permission")}`)
throw new Error(error)
})
throw new Error(`${result.left}`)
} else {
requestSaved()
}
})
setRESTSaveContext({
originLocation: "team-collection",
@@ -296,28 +300,27 @@ const saveRequestAs = async () => {
if (collectionsType.value.type !== "team-collections")
throw new Error("Collections Type mismatch")
try {
const req = await teamUtils.saveRequestAsTeams(
apolloClient,
JSON.stringify(requestUpdated),
requestUpdated.name,
collectionsType.value.selectedTeam.id,
picked.value.folderID
)
const result = await runMutation(CreateRequestInCollectionDocument, {
collectionID: picked.value.folderID,
data: {
request: JSON.stringify(requestUpdated),
teamID: collectionsType.value.selectedTeam.id,
title: requestUpdated.name,
},
})()
if (req && req.id) {
setRESTSaveContext({
originLocation: "team-collection",
requestID: req.id,
teamID: collectionsType.value.selectedTeam.id,
collectionID: picked.value.folderID,
})
}
if (E.isLeft(result)) {
toast.error(`${t("profile.no_permission")}`)
console.error(result.left)
} else {
setRESTSaveContext({
originLocation: "team-collection",
requestID: result.right.createRequestInCollection.id,
teamID: collectionsType.value.selectedTeam.id,
collectionID: picked.value.folderID,
})
requestSaved()
} catch (error) {
toast.error(`${t("profile.no_permission")}`)
console.error(error)
}
} else if (picked.value.pickedType === "teams-collection") {
if (!isHoppRESTRequest(requestUpdated))
@@ -326,28 +329,27 @@ const saveRequestAs = async () => {
if (collectionsType.value.type !== "team-collections")
throw new Error("Collections Type mismatch")
try {
const req = await teamUtils.saveRequestAsTeams(
apolloClient,
JSON.stringify(requestUpdated),
requestUpdated.name,
collectionsType.value.selectedTeam.id,
picked.value.collectionID
)
const result = await runMutation(CreateRequestInCollectionDocument, {
collectionID: picked.value.collectionID,
data: {
title: requestUpdated.name,
request: JSON.stringify(requestUpdated),
teamID: collectionsType.value.selectedTeam.id,
},
})()
if (req && req.id) {
setRESTSaveContext({
originLocation: "team-collection",
requestID: req.id,
teamID: collectionsType.value.selectedTeam.id,
collectionID: picked.value.collectionID,
})
}
if (E.isLeft(result)) {
toast.error(`${t("profile.no_permission")}`)
console.error(result.left)
} else {
setRESTSaveContext({
originLocation: "team-collection",
requestID: result.right.createRequestInCollection.id,
teamID: collectionsType.value.selectedTeam.id,
collectionID: picked.value.collectionID,
})
requestSaved()
} catch (error) {
toast.error(`${t("profile.no_permission")}`)
console.error(error)
}
} else if (picked.value.pickedType === "gql-my-request") {
// TODO: Check for GQL request ?