Contact.class.php 4.66 KB
<?php

class AC_Contact extends ActiveCampaign {

    public $version;
    public $url_base;
    public $url;
    public $api_key;

    function __construct($version, $url_base, $url, $api_key) {
        $this->version = $version;
        $this->url_base = $url_base;
        $this->url = $url;
        $this->api_key = $api_key;
    }

    function add($params, $post_data) {
        $request_url = "{$this->url}&api_action=contact_add&api_output={$this->output}";
        if ($params)
            $request_url .= "&{$params}";
        $response = $this->curl($request_url, $post_data);
        return $response;
    }

    function automation_list($params) {
        $request_url = "{$this->url}&api_action=contact_automation_list&api_output={$this->output}&{$params}";
        $response = $this->curl($request_url);
        return $response;
    }

    function delete_list($params) {
        $request_url = "{$this->url}&api_action=contact_delete_list&api_output={$this->output}&{$params}";
        $response = $this->curl($request_url);
        return $response;
    }

    function delete($params) {
        $request_url = "{$this->url}&api_action=contact_delete&api_output={$this->output}&{$params}";
        $response = $this->curl($request_url);
        return $response;
    }

    function edit($params, $post_data) {
        $request_url = "{$this->url}&api_action=contact_edit&api_output={$this->output}&{$params}&overwrite=0";
        $response = $this->curl($request_url, $post_data);
        return $response;
    }

    function list_($params) {
        if ($this->version == 1) {
            $request_url = "{$this->url}&api_action=contact_list&api_output={$this->output}&{$params}";
            $response = $this->curl($request_url);
        } elseif ($this->version == 2) {
            $request_url = "{$this->url_base}/contact/emails";
            // $params example: offset=0&limit=1000&listid=4
            $response = $this->curl($request_url, $params, "GET", "contact_list");
        }
        return $response;
    }

    function note_add($params, $post_data) {
        $request_url = "{$this->url}&api_action=contact_note_add&api_output={$this->output}&{$params}";
        $response = $this->curl($request_url, $post_data);
        return $response;
    }

    function note_edit($params, $post_data) {
        $request_url = "{$this->url}&api_action=contact_note_edit&api_output={$this->output}&{$params}";
        $response = $this->curl($request_url, $post_data);
        return $response;
    }

    function note_delete($params) {
        $request_url = "{$this->url}&api_action=contact_note_delete&api_output={$this->output}&{$params}";
        $response = $this->curl($request_url);
        return $response;
    }

    function paginator($params) {
        $request_url = "{$this->url}&api_action=contact_paginator&api_output={$this->output}&{$params}";
        $response = $this->curl($request_url);
        return $response;
    }

    function sync($params, $post_data) {
        $request_url = "{$this->url}&api_action=contact_sync&api_output={$this->output}";
        if ($params)
            $request_url .= "&{$params}";
        $response = $this->curl($request_url, $post_data);
        return $response;
    }

    function fgc_sync($params, $post_data) {
        $request_url = "{$this->url}&api_action=contact_sync&api_output={$this->output}";
        if ($params)
            $request_url .= "&{$params}";
        $response = $this->curl($request_url, $post_data, '', '', true);
        return $response;
    }

    function tag_add($params, $post_data) {
        $request_url = "{$this->url}&api_action=contact_tag_add&api_output={$this->output}";
        if ($params)
            $request_url .= "&{$params}";
        $response = $this->curl($request_url, $post_data);
        return $response;
    }

    function tag_remove($params, $post_data) {
        $request_url = "{$this->url}&api_action=contact_tag_remove&api_output={$this->output}";
        if ($params)
            $request_url .= "&{$params}";
        $response = $this->curl($request_url, $post_data);
        return $response;
    }

    function view($params) {
        // can be a contact ID, email, or hash
        if (preg_match("/^email=/", $params)) {
            $action = "contact_view_email";
        } elseif (preg_match("/^hash=/", $params)) {
            $action = "contact_view_hash";
        } elseif (preg_match("/^id=/", $params)) {
            $action = "contact_view";
        } else {
            // default
            $action = "contact_view";
        }
        $request_url = "{$this->url}&api_action={$action}&api_output={$this->output}&{$params}";
        $response = $this->curl($request_url);
        return $response;
    }

}

?>