67 lines
1.8 KiB
TypeScript
67 lines
1.8 KiB
TypeScript
import apiClient from '../client'
|
|
import type {
|
|
AnnotationItem,
|
|
CreateAnnotationRequest,
|
|
AnnotationOverrideRequest,
|
|
} from '../types'
|
|
|
|
export const annotationsApi = {
|
|
list: async (documentId: string): Promise<AnnotationItem[]> => {
|
|
const { data } = await apiClient.get(
|
|
`/api/v1/admin/documents/${documentId}/annotations`
|
|
)
|
|
return data.annotations
|
|
},
|
|
|
|
create: async (
|
|
documentId: string,
|
|
annotation: CreateAnnotationRequest
|
|
): Promise<AnnotationItem> => {
|
|
const { data } = await apiClient.post(
|
|
`/api/v1/admin/documents/${documentId}/annotations`,
|
|
annotation
|
|
)
|
|
return data
|
|
},
|
|
|
|
update: async (
|
|
documentId: string,
|
|
annotationId: string,
|
|
updates: Partial<CreateAnnotationRequest>
|
|
): Promise<AnnotationItem> => {
|
|
const { data } = await apiClient.patch(
|
|
`/api/v1/admin/documents/${documentId}/annotations/${annotationId}`,
|
|
updates
|
|
)
|
|
return data
|
|
},
|
|
|
|
delete: async (documentId: string, annotationId: string): Promise<void> => {
|
|
await apiClient.delete(
|
|
`/api/v1/admin/documents/${documentId}/annotations/${annotationId}`
|
|
)
|
|
},
|
|
|
|
verify: async (
|
|
documentId: string,
|
|
annotationId: string
|
|
): Promise<{ annotation_id: string; is_verified: boolean; message: string }> => {
|
|
const { data } = await apiClient.post(
|
|
`/api/v1/admin/documents/${documentId}/annotations/${annotationId}/verify`
|
|
)
|
|
return data
|
|
},
|
|
|
|
override: async (
|
|
documentId: string,
|
|
annotationId: string,
|
|
overrideData: AnnotationOverrideRequest
|
|
): Promise<{ annotation_id: string; source: string; message: string }> => {
|
|
const { data } = await apiClient.patch(
|
|
`/api/v1/admin/documents/${documentId}/annotations/${annotationId}/override`,
|
|
overrideData
|
|
)
|
|
return data
|
|
},
|
|
}
|