From a696c33bca543f8376e686b64c174e0c2a72bb9b Mon Sep 17 00:00:00 2001 From: yubathom Date: Fri, 30 Aug 2019 12:11:45 -0300 Subject: [PATCH 1/2] Bind history state and query params of requests --- pages/index.vue | 38 ++++++++++++++++++++++++++++++++++---- 1 file changed, 34 insertions(+), 4 deletions(-) diff --git a/pages/index.vue b/pages/index.vue index d782a9b0b..0b84b3806 100644 --- a/pages/index.vue +++ b/pages/index.vue @@ -532,9 +532,24 @@ } } }, + setRouteQuerieState () { + const flat = key => this[key] !== '' ? `${key}=${this[key]}&` : '' + const deep = key => { + const haveItems = [...this[key]].length + if(haveItems && this[key]['value'] !== '') { + return `${key}=${JSON.stringify(this[key])}&` + } + else return '' + } + let flats = [ 'method', 'url', 'path', 'auth', 'httpUser', 'httpPassword', 'bearerToken','contentType'].map(item => flat(item)) + let deeps = ['headers', 'params', 'bodyParams'].map(item => deep(item)) + this.$router.replace('/?'+ flats.concat(deeps).join('').slice(0,-1)) + }, setRouteQueries(queries) { + if(typeof(queries) !== 'object') throw new Error('Route query parameters must be a Object') for (const key in queries) { - if (this[key]) this[key] = queries[key]; + if(key === 'headers' || key === 'params' || key ==='bodyParams') this[key] = JSON.parse(queries[key]) + else if (typeof(this[key]) === 'string') this[key] = queries[key]; } }, observeRequestButton() { @@ -549,11 +564,26 @@ observer.observe(requestElement); } }, - created() { - if (Object.keys(this.$route.query).length) this.setRouteQueries(this.$route.query); - }, mounted() { this.observeRequestButton(); + }, + created() { + if (Object.keys(this.$route.query).length) this.setRouteQueries(this.$route.query); + this.$watch(vm => [ + vm.method, + vm.url, + vm.auth, + vm.path, + vm.httpUser, + vm.httpPassword, + vm.bearerToken, + vm.headers, + vm.params, + vm.bodyParams, + vm.contentType + ], val => { + this.setRouteQuerieState() + }) } } From 19a57e8ecf1289119049ab10c73a9cf313e52d0a Mon Sep 17 00:00:00 2001 From: yubathom Date: Sat, 31 Aug 2019 07:35:40 -0300 Subject: [PATCH 2/2] Spelling correction --- pages/index.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pages/index.vue b/pages/index.vue index 0b84b3806..6fc6c8b0b 100644 --- a/pages/index.vue +++ b/pages/index.vue @@ -532,7 +532,7 @@ } } }, - setRouteQuerieState () { + setRouteQueryState () { const flat = key => this[key] !== '' ? `${key}=${this[key]}&` : '' const deep = key => { const haveItems = [...this[key]].length @@ -582,7 +582,7 @@ vm.bodyParams, vm.contentType ], val => { - this.setRouteQuerieState() + this.setRouteQueryState() }) } }