Adds proxying support into Pi-Hole widgets (#391)

This commit is contained in:
Alicia Sykes 2021-12-30 21:20:35 +00:00
parent 25fa6ebae8
commit d2ff1438e2
3 changed files with 20 additions and 28 deletions

View File

@ -18,7 +18,7 @@
</template>
<script>
import axios from 'axios';
// import axios from 'axios';
import WidgetMixin from '@/mixins/WidgetMixin';
import ChartingMixin from '@/mixins/ChartingMixin';
import { capitalize } from '@/utils/MiscHelpers';
@ -55,15 +55,9 @@ export default {
methods: {
/* Make GET request to local pi-hole instance */
fetchData() {
axios.get(this.endpoint)
this.makeRequest(this.endpoint)
.then((response) => {
this.processData(response.data);
})
.catch((dataFetchError) => {
this.error('Unable to fetch data', dataFetchError);
})
.finally(() => {
this.finishLoading();
this.processData(response);
});
},
/* Assign data variables to the returned data */

View File

@ -11,7 +11,6 @@
</template>
<script>
import axios from 'axios';
import WidgetMixin from '@/mixins/WidgetMixin';
import { showNumAsThousand } from '@/utils/MiscHelpers';
@ -46,19 +45,13 @@ export default {
methods: {
/* Make GET request to local pi-hole instance */
fetchData() {
axios.get(this.endpoint)
this.makeRequest(this.endpoint)
.then((response) => {
if (Array.isArray(response.data)) {
if (Array.isArray(response)) {
this.error('Got success, but found no results, possible authorization error');
} else {
this.processData(response.data);
this.processData(response);
}
})
.catch((dataFetchError) => {
this.error('Unable to fetch data', dataFetchError);
})
.finally(() => {
this.finishLoading();
});
},
/* Assign data variables to the returned data */

View File

@ -3,7 +3,6 @@
</template>
<script>
import axios from 'axios';
import WidgetMixin from '@/mixins/WidgetMixin';
import ChartingMixin from '@/mixins/ChartingMixin';
@ -31,17 +30,23 @@ export default {
methods: {
/* Make GET request to local pi-hole instance */
fetchData() {
axios.get(this.endpoint)
this.makeRequest(this.endpoint)
.then((response) => {
this.processData(response.data);
})
.catch((dataFetchError) => {
this.error('Unable to fetch data', dataFetchError);
})
.finally(() => {
this.finishLoading();
if (this.validate(response)) {
this.processData(response);
}
});
},
validate(response) {
if (!response.ads_over_time || !response.domains_over_time) {
this.error('Expected data was not returned from Pi-Hole');
return false;
} else if (response.ads_over_time.length < 1) {
this.error('Request completed succesfully, but no data in Pi-Hole yet');
return false;
}
return true;
},
/* Assign data variables to the returned data */
processData(data) {
const timeData = [];