Showing posts with label FuseDesk API. Show all posts
Showing posts with label FuseDesk API. Show all posts

Tuesday, May 6, 2014

FuseDesk API Integration

FuseDesk PHP API Integration Class Wrapper.
Use the cases method to add, find and update cases.
see full documentation: https://fusedesk.com/help/api/cases/

Source Code:
<?php
class fusedesk_api
{
 public $fusedeskAppName = 'XXXXXXXX'; // Your fusedesk app name
 public $fusedeskApiKey  = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'; // Your fusedesk api key
 
 function _newcase($params)
 {
  $err = array();
  
  $args['repid']  = (!empty($params['repid']) ? $params['repid'] : ''); 
  $args['contactid']  = (!empty($params['contactid']) ? $params['contactid']: '');
  $args['status']  = (!empty($params['status']) ? $params['status']: '');
  $args['companyid']  = (!empty($params['companyid']) ? $params['companyid']: '');
  $args['date_assigned']  = (!empty($params['date_assigned']) ? $params['date_assigned']: '');
  $args['date_opened']  = (!empty($params['date_opened']) ? $params['date_opened']: '');
  $args['companyid']  = (!empty($params['companyid']) ? $params['companyid']: '');
  
  date_default_timezone_set('Australia/Sydney');
  $args['date_updated']  = date('Y-m-d H:i:s',time());  
  
  if(!empty($params['email'])){
   $args['email']      = $params['email']; 
  }
  
  if(!empty($params['depid'])){
   $args['depid']   = $params['depid'];   
  }else{
   $err[] = 'depid';
  }
  
  if(!empty($params['summary'])){
   $args['summary']  = $params['summary'];    
  }else{
   $err[] = 'summary';
  }

  if(!empty($params['details'])){
   $args['details']  = $params['details'];  
  }else{
   $err[] = 'details';
  }
  
  if(!empty($params['openedby'])){
   $args['openedby']  = $params['openedby']; 
  }else{
   $err[] = 'openedby';
  }

  if(empty($err)){
   $results =  json_encode($this->_apicall("/cases/", $args, 'POST'));
  }else{
   $results = json_encode(array('error' => 'Invalid submission! Please refresh the page and try again.'));
  }
  
  return $results;
 }
 
 function _apicall( $url, $args = array(), $type = 'GET' )
 {
     $fullurl = 'https://'.$this->fusedeskAppName.'.fusedesk.com/api/v1'.$url; 
     $ch = curl_init();
     curl_setopt($ch, CURLOPT_URL, $fullurl);
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
     curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-FuseDesk-API-Key: '.$this->fusedeskApiKey));

     if($type == 'POST') {
         curl_setopt($ch, CURLOPT_POST, true);
         curl_setopt($ch, CURLOPT_POSTFIELDS, $args);
     } else {
         curl_setopt($ch, CURLOPT_URL, $fullurl.'?'.http_build_query($args));
     }
 
  $result = json_decode(curl_exec($ch));
  curl_close($ch);
  
     return $result;
 }
}
?>

Sample Code:

<?php
$params['repid']   = (int) 1;
$params['depid']   = (int) 001;
$params['summary'] = 'Test API summary';
$params['details'] = 'Test API details';
$params['openedby'] = 'Juan Dela Cruz';

$payload = new fusedesk_api();
$cases = $payload->_newcase($params);
print_r($cases);

?>

Genesis Framework for WordPress