Spaces:
No application file
No application file
| namespace MauticPlugin\MauticCrmBundle\Api; | |
| use Mautic\PluginBundle\Exception\ApiErrorException; | |
| class VtigerApi extends CrmApi | |
| { | |
| protected $element = 'Leads'; | |
| protected function request($operation, $element, $elementData = [], $method = 'GET') | |
| { | |
| $tokenData = $this->integration->getKeys(); | |
| $request_url = $this->integration->getApiUrl(); | |
| $parameters = [ | |
| 'operation' => $operation, | |
| 'sessionName' => $tokenData['sessionName'], | |
| 'elementType' => $element, | |
| ]; | |
| if (!empty($elementData)) { | |
| $parameters['element'] = json_encode($elementData); | |
| } | |
| $response = $this->integration->makeRequest($request_url, $parameters, $method); | |
| if (!empty($response['error'])) { | |
| $error = $response['error']['message']; | |
| throw new ApiErrorException($error); | |
| } | |
| return $response['result']; | |
| } | |
| /** | |
| * List types. | |
| * | |
| * @return mixed | |
| */ | |
| public function listTypes() | |
| { | |
| return $this->request('listtypes', $this->element); | |
| } | |
| /** | |
| * List leads. | |
| * | |
| * @return mixed | |
| */ | |
| public function getLeadFields($object) | |
| { | |
| if ('company' === $object) { | |
| $object = 'Accounts'; | |
| } else { | |
| $object = $this->element; | |
| } | |
| return $this->request('describe', $object); | |
| } | |
| /** | |
| * @return mixed | |
| */ | |
| public function createLead(array $data) | |
| { | |
| return $this->request('create', $this->element, $data, 'POST'); | |
| } | |
| } | |