<?php
/**
* Copyright 2013 HubSpot, Inc.
*
* Licensed under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
* either express or implied. See the License for the specific
* language governing permissions and limitations under the
* License.
*/
require_once('class.baseclient.php');
class HubSpot_Properties extends HubSpot_Baseclient{
protected $API_PATH = 'contacts';
protected $API_VERSION = 'v1';
/**
* Get all Properties
*
*
* @return Array of all properties in portal
*
* @throws HubSpot_Exception
**/
public function get_all_properties(){
$endpoint = 'properties';
try{
return json_decode($this->execute_get_request($this->get_request_url($endpoint,null)));
}
catch(HubSpot_Exception $e){
print_r('Unable to retrieve properties: '.$e);
}
}
/**
* Create a new Property
*
*@param name: Name for the new property
* params: Array of info for the new property. Example of fields to include:
*
* "name": "newcustomproperty",
* "label": "A New Custom Property",
* "description": "A new property for you",
* "groupName": "contactinformation",
* "type": "string",
* "fieldType": "text",
* "formField": true,
* "displayOrder": 6,
* "options": []
*
*
* @return Response body from HTTP PUT request
*
* @throws HubSpot_Exception
**/
public function create_property($name,$params){
$endpoint = 'properties/'.$name;
try{
return json_decode($this->execute_put_request($this->get_request_url($endpoint,null),json_encode($params)));
}
catch(HubSpot_Exception $e){
print_r('Unable to create property: '.$e);
}
}
/**
* Update a Property
*
*@param name: Name for the new property
* params: Array of info for the property. Example of fields to include:
*
* "name": "newcustomproperty",
* "label": "A New Custom Property",
* "description": "A new property for you",
* "groupName": "contactinformation",
* "type": "string",
* "fieldType": "text",
* "formField": true,
* "displayOrder": 6,
* "options": []
*
*
* @return Response body of HTTP POST request
*
* @throws HubSpot_Exception
**/
public function update_property($name,$params){
$endpoint = 'properties/'.$name;
try{
return json_decode($this->execute_JSON_post_request($this->get_request_url($endpoint,null),json_encode($params)));
}
catch(HubSpot_Exception $e){
print_r('Unable to update property: '.$e);
}
}
/**
* Delete a Property
*
* @param name: Name of property to delete
*
* @return Response body from HTTP DELETE request
*
* @throws HubSpot_Exception
**/
public function delete_property($name){
$endpoint = 'properties/'.$name;
try{
return $this->new_execute_delete_request($this->get_request_url($endpoint,null));
}
catch(HubSpot_Exception $e){
print_r('Unable to delete property: '.$e);
}
}
/**
* Get all Properties Groups
*
*
* @return Array of all property groups in portal
*
* @throws HubSpot_Exception
**/
public function get_property_groups(){
$endpoint = 'groups';
try{
return json_decode($this->execute_get_request($this->get_request_url($endpoint,null)));
}
catch(HubSpot_Exception $e){
print_r('Unable to retrieve property groups: '.$e);
}
}
/**
* Get specific Property Group
*
*@param name: Name of property group to retrieve
*
* @return Array containing requested property group
*
* @throws HubSpot_Exception
**/
public function get_property_group($name){
$endpoint = 'groups/'.$name;
try{
return json_decode($this->execute_get_request($this->get_request_url($endpoint,null)));
}
catch(HubSpot_Exception $e){
print_r('Unable to retrieve property group: '.$e);
}
}
/**
* Create a Property Group
*
*@param name: Name of property group to retrieve
* params: Array for the fields to create the Group. Ex:
* {
* "name": "newcustomgroup",
* "displayName": "A New Custom Group",
* "displayOrder": 5
* }
*
* @return Array containing requested property group
*
* @throws HubSpot_Exception
**/
public function create_property_group($name,$params){
$endpoint = 'groups/'.$name;
try{
return json_decode($this->execute_put_request($this->get_request_url($endpoint,null),json_encode($params)));
}
catch(HubSpot_Exception $e){
print_r('Unable to create property group: '.$e);
}
}
/**
* Update a Property Group
*
*@param name: Name of property group to retrieve
* params: Array for the fields to create the Group. Ex:
* {
* "name": "newcustomgroup",
* "displayName": "A New Custom Group",
* "displayOrder": 5
* }
*
* @return Array containing requested property group
*
* @throws HubSpot_Exception
**/
public function update_property_group($name,$params){
$endpoint = 'groups/'.$name;
try{
return json_decode($this->execute_JSON_post_request($this->get_request_url($endpoint,null),json_encode($params)));
}
catch(HubSpot_Exception $e){
print_r('Unable to update property group: '.$e);
}
}
/**
* Delete a Property Group
*
*@param name: Name of property group to retrieve
*
* @return Array containing requested property group
*
* @throws HubSpot_Exception
**/
public function delete_property_group($name){
$endpoint = 'groups/'.$name;
try{
return json_decode($this->execute_delete_request($this->get_request_url($endpoint,null),null));
}
catch(HubSpot_Exception $e){
print_r('Unable to delete property group: '.$e);
}
}
}
?>