Merge pull request #920 from AndrewBastin/feat/gql-result-download

This commit is contained in:
Liyas Thomas
2020-06-03 10:07:19 +05:30
committed by GitHub

View File

@@ -118,8 +118,8 @@
</button> </button>
<button <button
class="icon" class="icon"
@click="downloadResponse" @click="downloadSchema"
ref="downloadResponse" ref="downloadSchema"
v-tooltip="$t('download_file')" v-tooltip="$t('download_file')"
> >
<i class="material-icons">get_app</i> <i class="material-icons">get_app</i>
@@ -221,6 +221,14 @@
<div class="flex-wrap"> <div class="flex-wrap">
<label for="responseField">{{ $t("response") }}</label> <label for="responseField">{{ $t("response") }}</label>
<div> <div>
<button
class="icon"
@click="downloadResponse"
ref="downloadResponse"
v-tooltip="$t('download_file')"
>
<i class="material-icons">get_app</i>
</button>
<button <button
class="icon" class="icon"
@click="copyResponse" @click="copyResponse"
@@ -667,12 +675,12 @@ export default {
this.responseBodyMaxLines = this.responseBodyMaxLines == Infinity ? 16 : Infinity this.responseBodyMaxLines = this.responseBodyMaxLines == Infinity ? 16 : Infinity
}, },
downloadResponse() { downloadResponse() {
const dataToWrite = JSON.stringify(this.schema, null, 2) const dataToWrite = this.response
const file = new Blob([dataToWrite], { type: "application/json" }) const file = new Blob([dataToWrite], { type: "application/json" })
const a = document.createElement("a") const a = document.createElement("a")
const url = URL.createObjectURL(file) const url = URL.createObjectURL(file)
a.href = url a.href = url
a.download = `${this.url} on ${Date()}.graphql`.replace(/\./g, "[dot]") a.download = `Response ${this.url} on ${Date()}.json`.replace(/\./g, "[dot]")
document.body.appendChild(a) document.body.appendChild(a)
a.click() a.click()
this.$refs.downloadResponse.innerHTML = this.doneButton this.$refs.downloadResponse.innerHTML = this.doneButton
@@ -685,6 +693,25 @@ export default {
this.$refs.downloadResponse.innerHTML = this.downloadButton this.$refs.downloadResponse.innerHTML = this.downloadButton
}, 1000) }, 1000)
}, },
downloadSchema() {
const dataToWrite = JSON.stringify(this.schema, null, 2)
const file = new Blob([dataToWrite], { type: "application/json" })
const a = document.createElement("a")
const url = URL.createObjectURL(file)
a.href = url
a.download = `${this.url} on ${Date()}.graphql`.replace(/\./g, "[dot]")
document.body.appendChild(a)
a.click()
this.$refs.downloadSchema.innerHTML = this.doneButton
this.$toast.success(this.$t("download_started"), {
icon: "done",
})
setTimeout(() => {
document.body.removeChild(a)
window.URL.revokeObjectURL(url)
this.$refs.downloadSchema.innerHTML = this.downloadButton
}, 1000)
},
addRequestHeader(index) { addRequestHeader(index) {
this.$store.commit("addGQLHeader", { this.$store.commit("addGQLHeader", {
key: "", key: "",