Files
release11-tools/Frontend/src/components/mock/HistoryRecords.vue
Adam Bem ea83e95a00 Created convention file for frontend and adjusted current project files (#277)
Reviewed-on: #277
Reviewed-by: Mikolaj Widla <widlam@noreply.example.com>
Co-authored-by: Adam Bem <adam.bem@zoho.eu>
Co-committed-by: Adam Bem <adam.bem@zoho.eu>
2024-01-04 08:17:44 +01:00

69 lines
2.2 KiB
Vue

<script setup lang="ts">
import {ref, type Ref } from 'vue';
const emit = defineEmits([
'click:showHeaders',
'click:showBody',
])
interface historyRecord {
clientUUID : String,
dateTimeStamp: String,
headers : Headers ,
httpMethod: String,
requestBody: String
}
interface Headers {
'content-type': String,
[propName: string]: any;
}
const clientUUID = localStorage.getItem("clientUUID")
const fetchLink = window.location.protocol + "//" + window.location.hostname + "/mock/api/event";
const historyRecords : Ref<Array<historyRecord>> = ref([]);
fetch(fetchLink+"/"+clientUUID).then(response => response.json()).then(data => { historyRecords.value = data });
function parseTimeStamp(timestamp : String){
return timestamp.substring(10,19).replace("T"," ");
}
function showHeaders(headers: Object, index : number){
emit('click:showHeaders',headers, index)
}
function showBody(body: String , index : number, contentType: String){
emit('click:showBody',body, index, contentType )
}
function refreshHistory(){
fetch(fetchLink+"/"+clientUUID).then(response => response.json()).then(data => { historyRecords.value = data });
}
</script>
<template>
<div class="h-28 text-center text-grey-900 dark:text-white">
<table class="w-full">
<tr>
<th>Time</th>
<th>Request <br>HTTP Method</th>
<th>Request Headers</th>
<th>Request Body</th>
<th class="text-2xl"><button @click="refreshHistory()"></button></th>
</tr>
<tr v-for="(item , index) in historyRecords" :key="index">
<td> {{ parseTimeStamp(item.dateTimeStamp) }} </td>
<td> {{ item.httpMethod }} </td>
<td> <button @click="showHeaders(item.headers, index)" class="underline">Show Headers</button> </td>
<td>
<button v-if="item.requestBody.length != 0" @click="showBody(item.requestBody, index, item.headers['content-type'])" class="underline">Show Body</button>
<span v-else>Empty</span>
</td>
</tr>
</table>
</div>
</template>