import { BlockDocumentResponse } from '@/models/api/BlockDocumentResponse' import { BlockTypeResponse } from '@/models/api/BlockTypeResponse' import { BlockDocument } from '@/models/BlockDocument' import { BlockType } from '@/models/BlockType' import { BlockTypesFilter } from '@/models/Filters' import { mapper } from '@/services/Mapper' import { WorkspaceApi } from '@/services/WorkspaceApi' export class WorkspaceBlockTypesApi extends WorkspaceApi { protected override routePrefix = '/block_types' public async getBlockType(blockTypeId: string): Promise { const { data } = await this.get(`/${blockTypeId}`) return mapper.map('BlockTypeResponse', data, 'BlockType') } public async getBlockTypeBySlug(blockTypeSlug: string): Promise { const { data } = await this.get(`/slug/${blockTypeSlug}`) return mapper.map('BlockTypeResponse', data, 'BlockType') } public async getBlockTypes(filter: BlockTypesFilter = {}): Promise { const request = mapper.map('BlockTypesFilter', filter, 'BlockTypesFilterRequest') const { data } = await this.post('/filter', request) return mapper.map('BlockTypeResponse', data, 'BlockType') } public async getBlockDocumentsByBlockTypeSlug(blockTypeSlug: string): Promise { const { data } = await this.get(`/slug/${blockTypeSlug}/block_documents`) return mapper.map('BlockDocumentResponse', data, 'BlockDocument') } }