このコミットが含まれているのは:
@@ -1,7 +1,6 @@
|
||||
import {
|
||||
apiGet,
|
||||
isApiError,
|
||||
apiPatch,
|
||||
apiPost,
|
||||
apiPut,
|
||||
} from '@/lib/api'
|
||||
@@ -10,6 +9,7 @@ import type {
|
||||
Material,
|
||||
FetchMaterialsParams,
|
||||
MaterialFilter,
|
||||
MaterialSyncSuppression,
|
||||
MaterialSidebarTag,
|
||||
MaterialTagTree,
|
||||
} from '@/types'
|
||||
@@ -24,6 +24,10 @@ export type MaterialIndexResponse = {
|
||||
count: number
|
||||
}
|
||||
|
||||
export type MaterialSyncSuppressionResponse = {
|
||||
suppressions: MaterialSyncSuppression[]
|
||||
}
|
||||
|
||||
const MATERIAL_FILTERS: MaterialFilter[] = ['present', 'missing', 'any']
|
||||
|
||||
|
||||
@@ -36,13 +40,13 @@ export const parseMaterialFilter = (
|
||||
|
||||
|
||||
export const fetchMaterials = async (
|
||||
{ q, tagState, mediaKind, suppression, createdFrom, createdTo,
|
||||
updatedFrom, updatedTo, sort, direction, page, limit }: FetchMaterialsParams): Promise<MaterialIndexResponse> =>
|
||||
{ q, tagState, mediaKind, createdFrom, createdTo,
|
||||
updatedFrom, updatedTo, sort, direction, page,
|
||||
limit }: FetchMaterialsParams): Promise<MaterialIndexResponse> =>
|
||||
await apiGet ('/materials', { params: {
|
||||
...(q && { q }),
|
||||
tag_state: tagState,
|
||||
media_kind: mediaKind,
|
||||
suppression,
|
||||
...(createdFrom && { created_from: createdFrom }),
|
||||
...(createdTo && { created_to: createdTo }),
|
||||
...(updatedFrom && { updated_from: updatedFrom }),
|
||||
@@ -101,7 +105,22 @@ export const updateMaterial = async (
|
||||
await apiPut (`/materials/${ id }`, formData)
|
||||
|
||||
|
||||
export const suppressMaterialFile = async (
|
||||
id: string,
|
||||
payload: { reason: string; purge?: boolean }): Promise<Material> =>
|
||||
await apiPatch (`/materials/${ id }/suppress_file`, payload)
|
||||
export const fetchMaterialSyncSuppressions =
|
||||
async (): Promise<MaterialSyncSuppressionResponse> =>
|
||||
await apiGet ('/materials/suppressions')
|
||||
|
||||
|
||||
export const createMaterialSyncSuppression = async (
|
||||
payload: {
|
||||
sourceKind: string
|
||||
sourceUri?: string
|
||||
drivePath?: string
|
||||
driveFileId?: string
|
||||
reason: string
|
||||
}): Promise<MaterialSyncSuppression> =>
|
||||
await apiPost ('/materials/suppressions', {
|
||||
source_kind: payload.sourceKind,
|
||||
source_uri: payload.sourceUri,
|
||||
drive_path: payload.drivePath,
|
||||
drive_file_id: payload.driveFileId,
|
||||
reason: payload.reason})
|
||||
|
||||
新しい課題から参照
ユーザをブロックする