/**
 * Slack API Docs: https://api.slack.com/reference/block-kit/blocks#image
 */
import { IGenericImage } from '../../../generic/types'; 
import { ISlackImage } from '../../types';
import { transformTextObject } from './helpers/transform-text-object';

export const transformImage = ({
  image_url,
  alt_text,
  title,
  block_id
}: ISlackImage): IGenericImage => {
  const res: IGenericImage = {
    type: 'image',
    props: {
      url: image_url
    }
  };

  if (alt_text) {
    res.props.alt = alt_text;
  }

  if (title || block_id) {
    res.props.slack = {};
  }
  
  if (title) {
    res.props.title = transformTextObject(title).value;
    res.props.slack.title_type = title.type;
    res.props.slack.title_emoji = title.emoji;
    res.props.slack.title_verbatim = title.verbatim;
  }

  if (block_id) {
    res.props.slack.block_id = block_id;
  }

  return res;
};