mirror of
				https://github.com/lingble/chatwoot.git
				synced 2025-11-04 04:57:51 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			47 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
const allElementsString = arr => {
 | 
						|
  return arr.every(elem => typeof elem === 'string');
 | 
						|
};
 | 
						|
 | 
						|
const allElementsNumbers = arr => {
 | 
						|
  return arr.every(elem => typeof elem === 'number');
 | 
						|
};
 | 
						|
 | 
						|
const formatArray = params => {
 | 
						|
  if (params.length <= 0) {
 | 
						|
    params = [];
 | 
						|
  } else if (allElementsString(params) || allElementsNumbers(params)) {
 | 
						|
    params = [...params];
 | 
						|
  } else {
 | 
						|
    params = params.map(val => val.id);
 | 
						|
  }
 | 
						|
  return params;
 | 
						|
};
 | 
						|
 | 
						|
const generatePayloadForObject = item => {
 | 
						|
  if (item.action_params.id) {
 | 
						|
    item.action_params = [item.action_params.id];
 | 
						|
  } else {
 | 
						|
    item.action_params = [item.action_params];
 | 
						|
  }
 | 
						|
  return item.action_params;
 | 
						|
};
 | 
						|
 | 
						|
const generatePayload = data => {
 | 
						|
  const actions = JSON.parse(JSON.stringify(data));
 | 
						|
  let payload = actions.map(item => {
 | 
						|
    if (Array.isArray(item.action_params)) {
 | 
						|
      item.action_params = formatArray(item.action_params);
 | 
						|
    } else if (typeof item.action_params === 'object') {
 | 
						|
      item.action_params = generatePayloadForObject(item);
 | 
						|
    } else if (!item.action_params) {
 | 
						|
      item.action_params = [];
 | 
						|
    } else {
 | 
						|
      item.action_params = [item.action_params];
 | 
						|
    }
 | 
						|
    return item;
 | 
						|
  });
 | 
						|
  return payload;
 | 
						|
};
 | 
						|
 | 
						|
export default generatePayload;
 |