import { FilterData, HistoryPostData, HistoryResponse, } from '../../interfaces/history.interface' import { Api } from '../api' export const HISTORY_API = '/service/history/element' const GET_HISTORY_ACCEPT_HEADER = 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9' export class History { api: Api constructor(api: Api) { this.api = api } async getHistory(elementHash: string, parameters: FilterData) { if (!parameters.actions?.length) delete parameters.actions if (!parameters.users?.length) delete parameters.users const params = { base64: btoa(JSON.stringify(parameters)) } const response = await this.api.apisauce.get( `${HISTORY_API}/${elementHash}`, { ...params }, { headers: { Accept: GET_HISTORY_ACCEPT_HEADER, }, }, ) return response } async postHistory(elementHash: string, data: HistoryPostData) { return this.api.apisauce.post( `${HISTORY_API}/${elementHash}`, data, ) } async archiveHistory(elementHash: string, commentId: string) { return this.api.apisauce.delete( `${HISTORY_API}/${elementHash}/${commentId}`, ) } }