felicity-lims/webapp/stores/audit_log.ts
2023-04-07 17:52:19 +02:00

38 lines
1.1 KiB
TypeScript

import { defineStore } from 'pinia'
import { useApiUtil } from '../composables'
const { withClientQuery } = useApiUtil()
import {
GET_AUDIT_LOG_FOR_TARGET
} from '../graphql/_queries';
export const useAuditLogStore = defineStore('auditlog', {
state: () => {
return {
auditLogs: [] as any as any[],
fetchingAudits: false,
}
},
getters: {
getAuditLogs: (state) => state.auditLogs,
},
actions: {
async fetchAuditLogs(params){
this.fetchingAudits = true;
await withClientQuery(GET_AUDIT_LOG_FOR_TARGET, params, "auditLogsFilter")
.then(payload => {
this.fetchingAudits = false
this.auditLogs = payload?.map(logs => {
logs.stateAfter = typeof logs?.stateAfter === "string" ? JSON.parse(logs?.stateAfter) : logs?.stateAfter
logs.stateBefore = typeof logs?.stateBefore === "string" ? JSON.parse(logs?.stateBefore) : logs?.stateBefore
return logs
})
}).catch(err => this.fetchingAudits = false)
},
async restLogs(){
this.auditLogs = [];
},
}
})