import { IResponse } from '@kontent-ai/core-sdk'; import { AssetRenditionContracts } from '../contracts'; import { AssetRenditionModels } from '../models'; import { AssetRenditionResponses } from '../responses'; import { BaseMapper } from './base-mapper'; export class AssetRenditionMapper extends BaseMapper { mapListAssetRenditionsResponse( response: IResponse ): AssetRenditionResponses.AssetRenditionsListResponse { return new AssetRenditionResponses.AssetRenditionsListResponse( super.mapResponseDebug(response), response.data, { items: response.data.asset_renditions.map((m) => this.mapAssetRendition(m)), pagination: super.mapPagination(response.data.pagination) } ); } mapViewAssetRenditionResponse( response: IResponse ): AssetRenditionResponses.ViewAssetRenditionResponse { return new AssetRenditionResponses.ViewAssetRenditionResponse( super.mapResponseDebug(response), response.data, this.mapAssetRendition(response.data) ); } mapModifyAssetRenditionResponse( response: IResponse ): AssetRenditionResponses.ModifyAssetRenditionResponse { return new AssetRenditionResponses.ModifyAssetRenditionResponse( super.mapResponseDebug(response), response.data, this.mapAssetRendition(response.data) ); } mapAddAssetRenditionResponse( response: IResponse ): AssetRenditionResponses.AddAssetRenditionResponse { return new AssetRenditionResponses.AddAssetRenditionResponse( super.mapResponseDebug(response), response.data, this.mapAssetRendition(response.data) ); } mapAssetRendition(raw: AssetRenditionContracts.IAssetRenditionContract): AssetRenditionModels.AssetRendition { return new AssetRenditionModels.AssetRendition({ assetId: raw.asset_id, externalId: raw.external_id, lastModified: new Date(raw.last_modified), renditionId: raw.rendition_id, transformation: { fit: raw.transformation.fit, height: raw.transformation.height, mode: raw.transformation.mode, width: raw.transformation.width, x: raw.transformation.x, y: raw.transformation.y, customHeight: raw.transformation.custom_height, customWidth: raw.transformation.custom_width }, _raw: raw }); } } export const assetRenditionMapper = new AssetRenditionMapper();