import { IGenericAttachments } from "../../../generic/types";
import { IRWCAnswerComponent, IRWCMedia } from '../../types';

export const transformMedias = (medias: Array<IRWCMedia>): IGenericAttachments => {  
  const result: IGenericAttachments = {
    type: 'attachments',
    props: {
      value: {
        staticValue: medias.map(media => {
          const result: any = {
            text: media.location,
            size: media.size
          };

          // eslint-disable-next-line no-prototype-builtins
          if (media.hasOwnProperty('isPrivate')) {
            result.isPrivate = media.isPrivate;
          }

          if (media.type) result.type = media.type;
          
          return result;
        })
      }
    }
  };

  return result;
};

export const transformRWCMedias = (msg: IRWCAnswerComponent | Array<IRWCMedia> ): IGenericAttachments => {
  const data = Array.isArray(msg) ? msg : msg.vBind.medias;

  return transformMedias(data);
};
