import { IResponse } from '@kontent-ai/core-sdk'; import { SpaceContracts } from '../contracts'; import { SpaceModels } from '../models'; import { SpaceResponses } from '../responses'; import { BaseMapper } from './base-mapper'; export class SpacesMapper extends BaseMapper { mapListingSpacesResponse( response: IResponse ): SpaceResponses.SpacesListResponse { const items = response.data.map((m) => this.mapSpace(m)); return new SpaceResponses.SpacesListResponse(super.mapResponseDebug(response), response.data, items); } mapViewSpaceResponse(response: IResponse): SpaceResponses.ViewSpaceResponse { return new SpaceResponses.ViewSpaceResponse( super.mapResponseDebug(response), response.data, this.mapSpace(response.data) ); } mapAddSpaceResponse( response: IResponse ): SpaceResponses.AddSpaceResponse { return new SpaceResponses.AddSpaceResponse( super.mapResponseDebug(response), response.data, this.mapSpace(response.data) ); } mapModifySpaceResponse( response: IResponse ): SpaceResponses.ModifySpaceResponse { return new SpaceResponses.ModifySpaceResponse( super.mapResponseDebug(response), response.data, this.mapSpace(response.data) ); } mapSpace(rawItem: SpaceContracts.ISpaceContract): SpaceModels.Space { return new SpaceModels.Space({ codename: rawItem.codename, id: rawItem.id, name: rawItem.name, webSpotlightRootItem: rawItem.web_spotlight_root_item, collections: rawItem.collections, _raw: rawItem }); } } export const spacesMapper = new SpacesMapper();