import { Jargon } from '../jargon' import { ResourceId, ResourceResponse, Session, SessionHighlight, SessionReport, SessionReportTimelineItem, SessionStream, SessionTranscript } from '../models' import { FetchStreamsParams } from './sessions' export class SessionReports { constructor(private jargon: Jargon) { } public fetch(reportId: ResourceId): ResourceResponse { return this.jargon.request({ method: 'GET', url: `/session_reports/${reportId}`, }) } public list(): ResourceResponse { return this.jargon.request({ method: 'GET', url: `/session_reports`, }) } public update(reportId: ResourceId, payload: Partial): ResourceResponse { return this.jargon.request({ method: 'PUT', url: `/session_reports/${reportId}`, data: { sessionReport: payload, }, }) } // related models public fetchHighlights(reportId: ResourceId): ResourceResponse { return this.jargon.request({ method: 'GET', url: `session_reports/${reportId}/highlights`, }) } public fetchTranscript(reportId: ResourceId): ResourceResponse { return this.jargon.request({ method: 'GET', url: `session_reports/${reportId}/transcript`, }) } public fetchSession(reportId: ResourceId): ResourceResponse { return this.jargon.request({ method: 'GET', url: `session_reports/${reportId}/session`, }) } public fetchStreams(reportId: ResourceId, params?: FetchStreamsParams): ResourceResponse { return this.jargon.request({ method: 'GET', url: `session_reports/${reportId}/streams`, params, }) } public fetchTimeline(reportId: ResourceId): ResourceResponse { return this.jargon.request({ method: 'GET', url: `session_reports/${reportId}/timeline`, }) } }