import { getKeyValue } from '../../../helpers/get-key-value';
import { getErrorObject } from '../../../helpers/get-error-object';
import { transformText } from './items/text';
import { transformImage } from './items/image';
import { transformFileUpload } from './items/attachments';
import { transformZendeskMessage } from './items/message';
import { transformLocation } from './items/location';

export const methods: {[key: string]: Function} = {
   text: transformText,
   image: transformImage,
   file: transformFileUpload,
   location: transformLocation,
   message: transformZendeskMessage
};

export const getMethods = (type: string): Function => {
    return getKeyValue(methods)(type) || getErrorObject({ type, message: 'Generic to Zendesk' });
};